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: reconcile CoderControlPlane licenses from Secret
Add CoderControlPlane license Secret support and operator-managed license
upload reconciliation with readiness/operator-access preconditions,
status tracking (`licenseLastApplied`, `licenseLastAppliedHash`),
idempotency hashing, Secret rotation handling, and license status conditions.
Also wire a codersdk-backed uploader, add referenced Secret field indexing
and watches, update controller app wiring, add focused controller tests, and
regenerate CRD/deepcopy/docs/sample artifacts. Includes docs reference
regeneration to align with CI output formatting.
---
_Generated with `mux` • Model: `openai:gpt-5.3-codex` • Thinking: `xhigh` • Cost: `$1.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
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,6 +20,7 @@
20
20
|`extraEnv`|[EnvVar](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#envvar-v1-core) array | ExtraEnv are injected into the Coder control plane container. |
21
21
|`imagePullSecrets`|[LocalObjectReference](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#localobjectreference-v1-core) array | ImagePullSecrets are used by the pod to pull private images. |
22
22
|`operatorAccess`|[OperatorAccessSpec](#operatoraccessspec)| OperatorAccess configures bootstrap API access to the coderd instance. |
23
+
|`licenseSecretRef`|[SecretKeySelector](#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. |
23
24
24
25
## Status
25
26
@@ -30,6 +31,8 @@
30
31
|`url`| string | URL is the in-cluster URL for the control plane service. |
31
32
|`operatorTokenSecretRef`|[SecretKeySelector](#secretkeyselector)| OperatorTokenSecretRef points to the Secret key containing the `coder-k8s-operator` API token. |
|`licenseLastApplied`|[Time](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#time-v1-meta)| LicenseLastApplied is the timestamp of the most recent successful operator-managed license upload. |
35
+
|`licenseLastAppliedHash`| string | LicenseLastAppliedHash is the SHA-256 hex hash of the trimmed license JWT that LicenseLastApplied refers to. |
33
36
|`phase`| string | Phase is a high-level readiness indicator. |
34
37
|`conditions`|[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#condition-v1-meta) array | Conditions are Kubernetes-standard conditions for this resource. |
0 commit comments