Skip to content

Use helm template + kubectl apply for CRD charts#2636

Open
caseydavenport wants to merge 1 commit intotigera:mainfrom
caseydavenport:casey-helm-crd-template
Open

Use helm template + kubectl apply for CRD charts#2636
caseydavenport wants to merge 1 commit intotigera:mainfrom
caseydavenport:casey-helm-crd-template

Conversation

@caseydavenport
Copy link
Copy Markdown
Member

The CRD Helm charts have grown large enough to exceed the 1MB Kubernetes Secret size limit that Helm uses for release tracking. Since CRDs don't actually need Helm release management, this switches to helm template piped to kubectl apply --server-side instead.

Also moves --create-namespace to the operator helm install step in the enterprise docs, since the CRD step no longer needs a namespace.

Fixes CORE-12633

The CRD Helm charts have grown large enough to exceed the 1MB Kubernetes
Secret size limit that Helm uses for release tracking. Since CRDs don't
need Helm release management, use helm template piped to kubectl apply
--server-side instead.

Fixes CORE-12633
@caseydavenport caseydavenport requested a review from a team as a code owner April 11, 2026 13:58
Copilot AI review requested due to automatic review settings April 11, 2026 13:58
@netlify
Copy link
Copy Markdown

netlify bot commented Apr 11, 2026

Deploy Preview for calico-docs-preview-next failed. Why did it fail? →

Name Link
🔨 Latest commit a4a4570
🔍 Latest deploy log https://app.netlify.com/projects/calico-docs-preview-next/deploys/69da5378235c5900089206ad

@netlify
Copy link
Copy Markdown

netlify bot commented Apr 11, 2026

Deploy Preview succeeded!

Built without sensitive environment variables

Name Link
🔨 Latest commit a4a4570
🔍 Latest deploy log https://app.netlify.com/projects/tigera/deploys/69da5377df05010008c25ba8
😎 Deploy Preview https://deploy-preview-2636--tigera.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 75 (🔴 down 13 from production)
Accessibility: 98 (no change from production)
Best Practices: 83 (no change from production)
SEO: 100 (no change from production)
PWA: -
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Calico and Calico Enterprise installation docs to avoid Helm release tracking for CRD-only charts (which can exceed Helm’s 1MB Secret limit) by switching to rendering manifests with helm template and applying them via kubectl apply --server-side.

Changes:

  • Replace helm install for CRD charts with helm template ... | kubectl apply --server-side -f -.
  • Move --create-namespace from the CRD step to the operator helm install step in Calico Enterprise docs.
  • Adjust step wording from “Create” CRDs to “Install” CRDs.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
calico/operations/native-v3-crds.mdx Switch v3 CRD installation to helm template + server-side apply.
calico/getting-started/kubernetes/helm.mdx Switch v1/v3 CRD installation to helm template + server-side apply; wording update.
calico-enterprise/operations/native-v3-crds.mdx Switch v3 CRD installation to helm template + server-side apply.
calico-enterprise/multicluster/.../create-a-management-cluster-helm.mdx Switch CRD install to templating+apply; move namespace creation to operator install.
calico-enterprise/multicluster/.../create-a-managed-cluster-helm.mdx Switch CRD install to templating+apply; move namespace creation to operator install.
calico-enterprise/getting-started/install-on-clusters/kubernetes/helm.mdx Switch CRD install to templating+apply; add --create-namespace to operator install.


```bash
helm install calico-crds projectcalico/projectcalico.org.v3 --version $[releaseTitle] --namespace tigera-operator
helm template calico-crds projectcalico/projectcalico.org.v3 --version $[releaseTitle] | kubectl apply --server-side -f -
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

helm template does not render resources from a chart’s crds/ directory unless --include-crds is specified. Since this step is intended to install CRDs, add --include-crds to the helm template command to ensure the CRDs are actually output (regardless of whether the chart stores CRDs under templates/ or crds/).

Suggested change
helm template calico-crds projectcalico/projectcalico.org.v3 --version $[releaseTitle] | kubectl apply --server-side -f -
helm template calico-crds projectcalico/projectcalico.org.v3 --version $[releaseTitle] --include-crds | kubectl apply --server-side -f -

Copilot uses AI. Check for mistakes.

```bash
helm install calico-crds projectcalico/crd.projectcalico.org.v1 --version $[releaseTitle] --namespace tigera-operator
helm template calico-crds projectcalico/crd.projectcalico.org.v1 --version $[releaseTitle] | kubectl apply --server-side -f -
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

helm template does not render resources from a chart’s crds/ directory unless --include-crds is specified. Since this step is intended to install CRDs, add --include-crds to the helm template command to ensure the CRDs are actually output.

Copilot uses AI. Check for mistakes.

```bash
helm install calico-crds projectcalico/projectcalico.org.v3 --version $[releaseTitle] --namespace tigera-operator
helm template calico-crds projectcalico/projectcalico.org.v3 --version $[releaseTitle] | kubectl apply --server-side -f -
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

helm template does not render resources from a chart’s crds/ directory unless --include-crds is specified. Since this step is intended to install CRDs, add --include-crds to the helm template command to ensure the CRDs are actually output.

Copilot uses AI. Check for mistakes.

```bash
helm install calico-crds projectcalico/projectcalico.org.v3 --version $[releaseTitle] --namespace tigera-operator
helm template calico-crds projectcalico/projectcalico.org.v3 --version $[releaseTitle] | kubectl apply --server-side -f -
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

helm template does not render resources from a chart’s crds/ directory unless --include-crds is specified. Since this step is intended to install CRDs, add --include-crds to the helm template command to ensure the CRDs are actually output.

Suggested change
helm template calico-crds projectcalico/projectcalico.org.v3 --version $[releaseTitle] | kubectl apply --server-side -f -
helm template calico-crds projectcalico/projectcalico.org.v3 --version $[releaseTitle] --include-crds | kubectl apply --server-side -f -

Copilot uses AI. Check for mistakes.

```bash
helm install calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz --namespace tigera-operator --create-namespace
helm template calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz | kubectl apply --server-side -f -
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

helm template does not render resources from a chart’s crds/ directory unless --include-crds is specified. Since this step is intended to install CRDs, add --include-crds to the helm template command to ensure the CRDs are actually output.

Suggested change
helm template calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz | kubectl apply --server-side -f -
helm template --include-crds calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz | kubectl apply --server-side -f -

Copilot uses AI. Check for mistakes.

```bash
helm install calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz --namespace tigera-operator --create-namespace
helm template calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz | kubectl apply --server-side -f -
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

helm template does not render resources from a chart’s crds/ directory unless --include-crds is specified. Since this step is intended to install CRDs, add --include-crds to the helm template command to ensure the CRDs are actually output.

Suggested change
helm template calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz | kubectl apply --server-side -f -
helm template calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz --include-crds | kubectl apply --server-side -f -

Copilot uses AI. Check for mistakes.

```bash
helm install calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz --namespace tigera-operator --create-namespace
helm template calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz | kubectl apply --server-side -f -
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

helm template does not render resources from a chart’s crds/ directory unless --include-crds is specified. Since this step is intended to install CRDs, add --include-crds to the helm template command to ensure the CRDs are actually output.

Suggested change
helm template calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz | kubectl apply --server-side -f -
helm template --include-crds calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz | kubectl apply --server-side -f -

Copilot uses AI. Check for mistakes.

```bash
helm install calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz --namespace tigera-operator --create-namespace
helm template calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz | kubectl apply --server-side -f -
Copy link

Copilot AI Apr 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

helm template does not render resources from a chart’s crds/ directory unless --include-crds is specified. Since this step is intended to install CRDs, add --include-crds to the helm template command to ensure the CRDs are actually output.

Suggested change
helm template calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz | kubectl apply --server-side -f -
helm template --include-crds calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz | kubectl apply --server-side -f -

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants