Skip to content

Commit 0a6f43d

Browse files
committed
🤖 feat: replace WorkspaceProxy with CoderWorkspaceProxy
Remove the unreleased WorkspaceProxy legacy kind/controller path and keep CoderWorkspaceProxy as the single workspace-proxy API surface. - add CoderWorkspaceProxy API type, CRD, docs, sample, and controller/tests - remove WorkspaceProxy API roots, CRD, docs, sample, and controller/tests - update controller wiring, RBAC, and scheme tests to reference only the new kind --- _Generated with [`mux`](https://github.com/coder/mux) • Model: `openai:gpt-5.3-codex` • Thinking: `xhigh` • Cost: `$0.62`_ <!-- mux-attribution: model=openai:gpt-5.3-codex thinking=xhigh costs=0.62 -->
1 parent 6adb4be commit 0a6f43d

13 files changed

Lines changed: 152 additions & 149 deletions

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
`coder-k8s` is a Go-based Kubernetes control-plane project with two app modes:
66

77
- A `controller-runtime` operator for managing `CoderControlPlane` and
8-
`WorkspaceProxy` resources (`coder.com/v1alpha1`).
8+
`CoderWorkspaceProxy` resources (`coder.com/v1alpha1`).
99
- An aggregated API server for `CoderWorkspace` and `CoderTemplate` resources
1010
(`aggregation.coder.com/v1alpha1`).
1111

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package v1alpha1
2+
3+
import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
4+
5+
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
6+
// +kubebuilder:object:root=true
7+
// +kubebuilder:resource:path=coderworkspaceproxies,scope=Namespaced
8+
// +kubebuilder:subresource:status
9+
10+
// CoderWorkspaceProxy is the schema for Coder workspace proxy resources.
11+
type CoderWorkspaceProxy struct {
12+
metav1.TypeMeta `json:",inline"`
13+
metav1.ObjectMeta `json:"metadata,omitempty"`
14+
15+
Spec WorkspaceProxySpec `json:"spec,omitempty"`
16+
Status WorkspaceProxyStatus `json:"status,omitempty"`
17+
}
18+
19+
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
20+
// +kubebuilder:object:root=true
21+
22+
// CoderWorkspaceProxyList contains a list of CoderWorkspaceProxy objects.
23+
type CoderWorkspaceProxyList struct {
24+
metav1.TypeMeta `json:",inline"`
25+
metav1.ListMeta `json:"metadata,omitempty"`
26+
Items []CoderWorkspaceProxy `json:"items"`
27+
}
28+
29+
func init() {
30+
SchemeBuilder.Register(&CoderWorkspaceProxy{}, &CoderWorkspaceProxyList{})
31+
}

‎api/v1alpha1/workspaceproxy_types.go‎

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -68,31 +68,3 @@ type WorkspaceProxyStatus struct {
6868
// Conditions are Kubernetes-standard conditions for this resource.
6969
Conditions []metav1.Condition `json:"conditions,omitempty"`
7070
}
71-
72-
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
73-
// +kubebuilder:object:root=true
74-
// +kubebuilder:resource:scope=Namespaced
75-
// +kubebuilder:subresource:status
76-
77-
// WorkspaceProxy is the schema for Coder workspace proxy resources.
78-
type WorkspaceProxy struct {
79-
metav1.TypeMeta `json:",inline"`
80-
metav1.ObjectMeta `json:"metadata,omitempty"`
81-
82-
Spec WorkspaceProxySpec `json:"spec,omitempty"`
83-
Status WorkspaceProxyStatus `json:"status,omitempty"`
84-
}
85-
86-
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
87-
// +kubebuilder:object:root=true
88-
89-
// WorkspaceProxyList contains a list of WorkspaceProxy objects.
90-
type WorkspaceProxyList struct {
91-
metav1.TypeMeta `json:",inline"`
92-
metav1.ListMeta `json:"metadata,omitempty"`
93-
Items []WorkspaceProxy `json:"items"`
94-
}
95-
96-
func init() {
97-
SchemeBuilder.Register(&WorkspaceProxy{}, &WorkspaceProxyList{})
98-
}

‎api/v1alpha1/zz_generated.deepcopy.go‎

Lines changed: 59 additions & 59 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/coder.com_workspaceproxies.yaml renamed to config/crd/bases/coder.com_coderworkspaceproxies.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,20 @@ kind: CustomResourceDefinition
44
metadata:
55
annotations:
66
controller-gen.kubebuilder.io/version: v0.20.0
7-
name: workspaceproxies.coder.com
7+
name: coderworkspaceproxies.coder.com
88
spec:
99
group: coder.com
1010
names:
11-
kind: WorkspaceProxy
12-
listKind: WorkspaceProxyList
13-
plural: workspaceproxies
14-
singular: workspaceproxy
11+
kind: CoderWorkspaceProxy
12+
listKind: CoderWorkspaceProxyList
13+
plural: coderworkspaceproxies
14+
singular: coderworkspaceproxy
1515
scope: Namespaced
1616
versions:
1717
- name: v1alpha1
1818
schema:
1919
openAPIV3Schema:
20-
description: WorkspaceProxy is the schema for Coder workspace proxy resources.
20+
description: CoderWorkspaceProxy is the schema for Coder workspace proxy resources.
2121
properties:
2222
apiVersion:
2323
description: |-

‎config/rbac/role.yaml‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ rules:
7171
resources:
7272
- codercontrolplanes
7373
- coderprovisioners
74-
- workspaceproxies
74+
- coderworkspaceproxies
7575
verbs:
7676
- create
7777
- delete
@@ -85,15 +85,15 @@ rules:
8585
resources:
8686
- codercontrolplanes/finalizers
8787
- coderprovisioners/finalizers
88-
- workspaceproxies/finalizers
88+
- coderworkspaceproxies/finalizers
8989
verbs:
9090
- update
9191
- apiGroups:
9292
- coder.com
9393
resources:
9494
- codercontrolplanes/status
9595
- coderprovisioners/status
96-
- workspaceproxies/status
96+
- coderworkspaceproxies/status
9797
verbs:
9898
- get
9999
- patch
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
apiVersion: coder.com/v1alpha1
2-
kind: WorkspaceProxy
2+
kind: CoderWorkspaceProxy
33
metadata:
4-
name: workspaceproxy-sample
4+
name: coderworkspaceproxy-sample
55
namespace: default
66
spec:
77
image: "ghcr.io/coder/coder:latest"
88
primaryAccessURL: "https://coder.example.com"
99
proxySessionTokenSecretRef:
10-
name: workspaceproxy-token
10+
name: coderworkspaceproxy-token
1111
key: token
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<!-- Code generated by hack/update-reference-docs.sh using github.com/elastic/crd-ref-docs. DO NOT EDIT. -->
22

3-
# `WorkspaceProxy`
3+
# `CoderWorkspaceProxy`
44

55
## API identity
66

77
- Group/version: `coder.com/v1alpha1`
8-
- Kind: `WorkspaceProxy`
9-
- Resource: `workspaceproxies`
8+
- Kind: `CoderWorkspaceProxy`
9+
- Resource: `coderworkspaceproxies`
1010
- Scope: namespaced
1111

1212
## Spec
@@ -53,5 +53,5 @@
5353

5454
## Source
5555

56-
- Go type: `api/v1alpha1/workspaceproxy_types.go`
57-
- Generated CRD: `config/crd/bases/coder.com_workspaceproxies.yaml`
56+
- Go type: `api/v1alpha1/coderworkspaceproxy_types.go`
57+
- Generated CRD: `config/crd/bases/coder.com_coderworkspaceproxies.yaml`

‎internal/app/controllerapp/controllerapp.go‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,13 @@ func SetupControllers(mgr manager.Manager) error {
9595
return fmt.Errorf("unable to create controller: %w", err)
9696
}
9797

98-
workspaceProxyReconciler := &controller.WorkspaceProxyReconciler{
98+
coderWorkspaceProxyReconciler := &controller.CoderWorkspaceProxyReconciler{
9999
Client: client,
100100
Scheme: managerScheme,
101101
BootstrapClient: coderbootstrap.NewSDKClient(),
102102
}
103-
if err := workspaceProxyReconciler.SetupWithManager(mgr); err != nil {
104-
return fmt.Errorf("unable to create workspace proxy controller: %w", err)
103+
if err := coderWorkspaceProxyReconciler.SetupWithManager(mgr); err != nil {
104+
return fmt.Errorf("unable to create coder workspace proxy controller: %w", err)
105105
}
106106

107107
provisionerReconciler := &controller.CoderProvisionerReconciler{

0 commit comments

Comments
 (0)