Skip to content

Commit 8bc3cdb

Browse files
Shivs11claude
andauthored
docs: add Helm ownership labeling step to CRD migration guide (#245)
## Summary - Adds a required `kubectl label` + `kubectl annotate` step to the CRD migration instructions - Without this, `helm install` of the new CRDs chart fails with "cannot be imported into the current release: invalid ownership metadata" - Discovered during demo setup when migrating from previously-installed CRDs to the new charts format Extracted from #217 per [this comment](https://github.com/temporalio/temporal-worker-controller/pull/217/changes/BASE..d6d8f7ce7f5651529c7cdf216fe1a8b4fbecbe1a#r2986526435) — this needs to land independently in the chart version where CRDs are first split out. ## Test plan - [ ] Verify the migration steps work on a cluster with pre-existing CRDs installed via the old `crds/` directory 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 5ab9bf7 commit 8bc3cdb

1 file changed

Lines changed: 17 additions & 2 deletions

File tree

docs/crd-management.md

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,23 @@ helm upgrade temporal-worker-controller \
125125
--version <new-version> \
126126
--namespace temporal-system
127127

128-
# Step 2: Install the CRDs chart to take Helm ownership of the existing CRDs
129-
# kubectl apply reconciles any changes; same-version CRDs are a no-op on the cluster
128+
# Step 2: Stamp Helm ownership labels/annotations onto the existing CRDs.
129+
# CRDs installed via the old `crds/` directory have no Helm tracking metadata.
130+
# Without this step, `helm install` in step 3 fails with "cannot be imported into
131+
# the current release: invalid ownership metadata".
132+
kubectl label crd \
133+
temporalconnections.temporal.io \
134+
temporalworkerdeployments.temporal.io \
135+
app.kubernetes.io/managed-by=Helm --overwrite
136+
137+
kubectl annotate crd \
138+
temporalconnections.temporal.io \
139+
temporalworkerdeployments.temporal.io \
140+
meta.helm.sh/release-name=temporal-worker-controller-crds \
141+
meta.helm.sh/release-namespace=temporal-system --overwrite
142+
143+
# Step 3: Install the CRDs chart to take Helm ownership of the existing CRDs.
144+
# Same-version CRDs are a no-op on the cluster.
130145
helm install temporal-worker-controller-crds \
131146
oci://docker.io/temporalio/temporal-worker-controller-crds \
132147
--version <new-version> \

0 commit comments

Comments
 (0)