You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
π€ feat: apply CoderControlPlane licenses from Secret
Add licenseSecretRef support on CoderControlPlane and reconcile Enterprise
license uploads after control-plane/operator readiness. Track successful
applies with licenseLastApplied and licenseLastAppliedHash to avoid duplicate
uploads, and handle Secret rotation.
Also adds Secret field indexing/watch wiring for referenced license Secrets,
pluggable SDK-backed license uploader, generated CRD/docs updates, sample
manifest updates, and controller tests for pending/apply/idempotency/rotation
and NotSupported behavior.
---
_Generated with `mux` β’ Model: `openai:gpt-5.3-codex` β’ Thinking: `xhigh` β’ Cost: `.21`_
<!-- mux-attribution: model=openai:gpt-5.3-codex thinking=xhigh costs=1.21 -->
Copy file name to clipboardExpand all lines: docs/reference/api/codercontrolplane.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,6 +26,9 @@
26
26
|`operatorAccess`|`OperatorAccessSpec`| OperatorAccess configures bootstrap API access to the coderd instance. |
27
27
| ββ `disabled`|`bool`| Disabled turns off creation and management of the `coder-k8s-operator` user and API token. |
28
28
| ββ `generatedTokenSecretName`|`string`| GeneratedTokenSecretName stores the generated operator API token. |
29
+
|`licenseSecretRef`|`SecretKeySelector`| LicenseSecretRef references a Secret key containing a Coder Enterprise license JWT. When set, the controller uploads the license after the control plane is ready and re-uploads when the Secret value changes. |
30
+
| ββ `name`|`string`| Name is the Kubernetes Secret name. |
31
+
| ββ `key`|`string`| Key is the key inside the Secret data map. |
29
32
30
33
## Status
31
34
@@ -38,6 +41,8 @@
38
41
| ββ `name`|`string`| Name is the Kubernetes Secret name. |
39
42
| ββ `key`|`string`| Key is the key inside the Secret data map. |
40
43
|`operatorAccessReady`|`bool`| OperatorAccessReady reports whether operator API access bootstrap succeeded. |
44
+
|`licenseLastApplied`|`metav1.Time`| LicenseLastApplied is the timestamp of the most recent successful operator-managed license upload. |
45
+
|`licenseLastAppliedHash`|`string`| LicenseLastAppliedHash is the SHA-256 hex hash of the trimmed license JWT that LicenseLastApplied refers to. |
41
46
|`phase`|`string`| Phase is a high-level readiness indicator. |
42
47
|`conditions`|`[]metav1.Condition`| Conditions are Kubernetes-standard conditions for this resource. |
0 commit comments