Skip to content

Document v3 CRD mode as the default for new installs#2805

Open
caseydavenport wants to merge 10 commits into
tigera:mainfrom
caseydavenport:casey-v3-crd-docs
Open

Document v3 CRD mode as the default for new installs#2805
caseydavenport wants to merge 10 commits into
tigera:mainfrom
caseydavenport:casey-v3-crd-docs

Conversation

@caseydavenport

@caseydavenport caseydavenport commented Jun 26, 2026

Copy link
Copy Markdown
Member

Makes v3 CRD mode the documented default for new Calico installs, matching the operator change in tigera/operator#4973. New installs now get projectcalico.org/v3 served directly by CRDs with no aggregation API server. The v1 / aggregation-API-server path stays documented as an opt-out. Existing and upgraded clusters are unaffected - the operator picks the mode from the CRDs present and never flips an existing cluster.

What's here:

  • Reframed the Native v3 CRDs pages (Open Source + Enterprise) as the default rather than a tech preview, and fixed the Kubernetes floor to 1.32+ (the old 1.34+ and per-version v1beta1/v1alpha1 claims were wrong).
  • Flipped the fresh-install guides for both products to apply the v3 CRD manifest (v3_projectcalico_org.yaml). The operator and manifest installs that stay on the aggregation API server got a v3 opt-out note instead.
  • Added "your CRD mode is preserved" notes to the upgrade guides for both products, with the v3 manifest called out as the alternative for clusters already on native v3.
  • Release notes for both products.

Note on Enterprise: this assumes v3_projectcalico_org.yaml ships at the published EE manifests location. The release tooling already builds and publishes it (hashreleases and tagged releases both include it), so it should line up with real releases. The one gap is the ee/master/ dev location, which is stale and hasn't picked up the granular bundles - flagged to the DE team separately.

@caseydavenport
caseydavenport requested a review from a team as a code owner June 26, 2026 22:19
Copilot AI review requested due to automatic review settings June 26, 2026 22:19
@netlify

netlify Bot commented Jun 26, 2026

Copy link
Copy Markdown

Deploy Preview for calico-docs-preview-next ready!

Name Link
🔨 Latest commit eba6830
🔍 Latest deploy log https://app.netlify.com/projects/calico-docs-preview-next/deploys/6a5e671259b4ab000896e515
😎 Deploy Preview https://deploy-preview-2805--calico-docs-preview-next.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

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

@netlify

netlify Bot commented Jun 26, 2026

Copy link
Copy Markdown

Deploy Preview for tigera failed. Why did it fail? →

Built without sensitive environment variables

Name Link
🔨 Latest commit eba6830
🔍 Latest deploy log https://app.netlify.com/projects/tigera/deploys/6a5e67125fa01b0008697f7a

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@ctauchen ctauchen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

A few suggestions for you. Thanks!


1. Install the necessary custom resource definitions.

:::note[What changed]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

We should consider removing the note here and on the other installation guides. If someone performs an installation and notices the missing api server, they'll find plenty of information in your v3 CRDs pages and the release notes.

One reason to keep the note, or something similar, is to make things easier for people who really need the api server. Is this a significant group? From what I read, there is little reason that anyone would prefer that option.

Best path is to present one option in the main guide and provide the less common alternative in another location.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yeah, agreed. I pulled the note from all the install guides (OSS and Enterprise). The main guide just documents the v3 install now, and the API server opt-out lives on its own page - Native v3 CRDs for Enterprise, the API server page for Open Source.


1. Install the $[prodname] custom resource definitions.

:::note[CRD mode]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

If we're maintaining both modes, then a more user-friendly path might look like this:

Prerequisite: You know what CRD mode you've got (Is there a simple check?)

  1. Install the custom resource definitions for your cluster's mode:

TAB 1 / TAB 2

code code code

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Good idea, restructured both upgrade guides this way. There is a simple check: kubectl api-versions | grep crd.projectcalico.org (output means the cluster is on the aggregation API server, no output means native v3). Added that as a step, then tabs for each mode.

```

</TabItem>
<TabItem label="Manifest install" value="apiserver-manifest">

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

We don't support manifest installations in Calico Enterprise. Is there something special about this case?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Perhaps this is just Tigera Operator and Helm installation types?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Good catch, you're right. I relabeled to Helm and Tigera Operator and dropped the "manifest install" framing on the Enterprise page, both the install pointer near the top and the API server mode tab lower down.


## New features and enhancements

- New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. Existing and upgraded clusters are unaffected. To install with the aggregation API server instead, apply the v1 CRDs before installing the operator. v3 CRD mode requires Kubernetes 1.32 or later. See [Native v3 CRDs](../operations/native-v3-crds.mdx).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I'll do more closer to release, but I suspect it would be good to add more here about how this works for upgrades.

Would also be good to mention if we're deprecating the api server. Is that still the plan?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yep, still the plan. The aggregation API server is deprecated and will be removed in a future release (still supported for now). I added a deprecation entry to the release notes and the native v3 CRD pages, both pointing at the migration guide. Left the rest of the upgrade detail to you for closer to release.

Remove the transitional "What changed" notes from the install guides,
restructure the Enterprise upgrade guides with a CRD-mode check and
per-mode tabs, relabel the Enterprise manifest-install references to
Helm and Tigera Operator, and document the API server deprecation in
the release notes and native v3 CRD pages.
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.

3 participants