v0.0.9
Bugfix release — makes cluster registration idempotent so a transient status-write conflict during a successful registration no longer pins the Cluster to Error. Surfaced during Rancher real-cluster validation.
Container image: docker.io/vworkspace/vworkspace-operator:v0.0.9
Install
Helm (operator + CRDs + RBAC):
helm upgrade --install vworkspace-operator \
https://github.com/vworkspace-io/vworkspace-operator/releases/download/v0.0.9/vworkspace-operator-0.0.9.tgz \
--version 0.0.9 \
-n vworkspace-system \
--create-namespacekubectl (no Helm — apply CRDs first):
kubectl apply -f https://github.com/vworkspace-io/vworkspace-operator/releases/download/v0.0.9/crds.yaml
kubectl apply -f https://github.com/vworkspace-io/vworkspace-operator/releases/download/v0.0.9/operator.yaml
kubectl -n vworkspace-system wait --for=condition=Available \
deployment/vworkspace-operator --timeout=300sInstall guide: docs/install/helm.md
Release assets
| File | Purpose |
|---|---|
vworkspace-operator-0.0.9.tgz |
Helm chart (operator, CRDs, RBAC) |
crds.yaml |
CRDs only — for kubectl or GitOps bootstrap |
operator.yaml |
Namespace + operator Deployment (CRDs excluded) |
SHA256SUMS |
Checksums for the files above |
What's changed
Fixed
- Cluster registration is now idempotent against existing bootstrap credentials. The reconciler treats a present, valid
vworkspace-agent-credentialsSecret as proof of registration and no longer re-exchanges the spent one-time token, and the post-registration status write retries on optimistic-concurrency conflicts. Previously a transientthe object has been modifiedconflict during a successful registration leftstatus.phaseunset, so the next reconcile re-exchanged the consumed token and pinned the Cluster toError(RegistrationTokenInvalid) until a new token was issued. A 401 with credentials already present is now treated as benign. Surfaced during Rancher real-cluster validation; tracked under hub golden-path task P4-T001. - CI: suppress the
SA1019staticcheck deprecation warning on the cluster-controller event recorder sogolangci-lintpasses onmain(#75).
Full changelog: CHANGELOG.md