Explain the two ways to upgrade CRDs with Helm - #2908
Open
caseydavenport wants to merge 1 commit into
Open
Conversation
Users hit this when the operator chart stopped shipping CRDs.
✅ Deploy Preview succeeded!Built without sensitive environment variables
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for calico-docs-preview-next ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the Helm upgrade documentation to explicitly explain the two available approaches for CRD upgrades now that the tigera-operator chart no longer ships CRDs, helping users understand how manageCRDs: true affects upgrade flow and how to support GitOps workflows.
Changes:
- Adds guidance describing the two CRD-upgrade approaches (manual apply vs. operator-managed via
manageCRDs: true) and why manual apply is recommended. - Adds a
helm template … | kubectl apply …option for applying CRDs (useful for GitOps pipelines). - Updates Calico Enterprise Helm upgrade docs to clarify CRD scope and note that Prometheus/ECK CRDs are still manual.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| calico/operations/upgrading/kubernetes-upgrade.mdx | Documents the two CRD upgrade options and adds Helm templating as an alternative to applying the raw CRD manifest. |
| calico-enterprise/getting-started/upgrading/upgrading-enterprise/kubernetes-upgrade-tsee/helm.mdx | Adds explanation of CRD upgrade approaches and clarifies manageCRDs limitations for Prometheus/ECK CRDs. |
| calico_versioned_docs/version-3.32/operations/upgrading/kubernetes-upgrade.mdx | Backports the two-option CRD upgrade guidance and Helm templating option to the 3.32 versioned docs. |
Comment on lines
+60
to
66
| Or, using the CRD chart: | ||
|
|
||
| ```bash | ||
| helm template calico-crds projectcalico/crd.projectcalico.org.v1 --version $[releaseTitle] | kubectl apply --server-side --force-conflicts -f - | ||
| ``` | ||
|
|
||
| 1. Run the Helm upgrade: |
electricjesus
approved these changes
Aug 8, 2026
Collaborator
|
LGTM, feel free to merge. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

The
tigera-operatorchart no longer ships the CRDs, and the upgrade docs only showed the manual apply. That leaves users withmanageCRDs: truein their values wondering whether the manual step is still needed, and users on GitOps tooling wondering whether they need a second HelmRelease. Came up in Slack.Adds a short section to the Helm upgrade instructions covering both options and why we recommend applying the CRDs yourself: the new CRDs land before the new operator starts, so new configuration can be set ahead of the upgrade. Also adds the
helm templateform of the CRD apply next to the raw manifest URL, which is easier to wire into GitOps tooling.Applied to Calico latest, Calico 3.32, and Calico Enterprise. The Enterprise version also notes that
manageCRDsdoes not cover the Prometheus and ECK CRDs.