From ece3fb6b66ece90cb06a19c34b829ed0518803be Mon Sep 17 00:00:00 2001 From: Casey Davenport Date: Fri, 26 Jun 2026 13:53:17 -0700 Subject: [PATCH 1/9] docs: reframe OSS v3 CRD pages as default, fix K8s floor to 1.32 --- calico/operations/crd-migration.mdx | 8 +------ calico/operations/install-apiserver.mdx | 32 ++++++++++++++++++++++--- calico/operations/native-v3-crds.mdx | 16 ++++--------- 3 files changed, 35 insertions(+), 21 deletions(-) diff --git a/calico/operations/crd-migration.mdx b/calico/operations/crd-migration.mdx index 72e79206e5..190604b471 100644 --- a/calico/operations/crd-migration.mdx +++ b/calico/operations/crd-migration.mdx @@ -4,12 +4,6 @@ description: Migrate Calico Open Source resources from the aggregated API server # Migrate from API server to native CRDs -:::note - -This feature is tech preview. Tech preview features may be subject to significant changes before they become GA. - -::: - ## Big picture Automatically migrate $[prodname] resources from the aggregated API server's `crd.projectcalico.org/v1` backing storage to native `projectcalico.org/v3` CRDs, allowing you to remove the API server component. @@ -53,7 +47,7 @@ The locked window is typically short (seconds to a few minutes depending on clus - $[prodname] v3.32+ (or the release that includes the migration controller) - Cluster is currently running in API server mode (the aggregated API server is deployed) -- **Kubernetes 1.34 or later.** Native `projectcalico.org/v3` CRDs rely on MutatingAdmissionPolicies for defaulting, which require the beta `admissionregistration.k8s.io/v1beta1` API. That API is not available on Kubernetes 1.33 and earlier, where MutatingAdmissionPolicy is alpha only. On Kubernetes 1.34 and 1.35, the `MutatingAdmissionPolicy` [feature gate](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) must be enabled on the Kubernetes API server before starting the migration, as it is not enabled by default. On Kubernetes 1.36 and later, the feature is GA and enabled by default. +- **Kubernetes 1.32 or later.** $[prodname] uses the `MutatingAdmissionPolicy` API for defaulting. On clusters where it is not enabled by default, enable the `MutatingAdmissionPolicy` [feature gate](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) on the API server. - **If using GitOps (ArgoCD, Flux):** pause sync before starting the migration. These tools may interfere with the API group switchover. You'll update your manifests to use `projectcalico.org/v3` after migration completes. ## How to diff --git a/calico/operations/install-apiserver.mdx b/calico/operations/install-apiserver.mdx index 605748f88a..b0f0ba4e5b 100644 --- a/calico/operations/install-apiserver.mdx +++ b/calico/operations/install-apiserver.mdx @@ -13,7 +13,7 @@ Install the Calico API server on an existing cluster to enable management of Cal :::tip -You can use [native v3 CRDs](native-v3-crds.mdx) to manage `projectcalico.org/v3` resources directly with `kubectl` without installing the aggregation API server. If you are setting up a new cluster and want a simpler architecture, consider native v3 CRDs instead. +New installs of $[prodname] default to [native v3 CRDs](native-v3-crds.mdx), which serve `projectcalico.org/v3` resources directly with no aggregation API server. This page covers installing or enabling the aggregation API server instead. ::: @@ -23,11 +23,37 @@ The API server provides a REST API for Calico, and allows management of `project :::note -New operator-based installations of Calico include the API server component by default, so the instructions -in this document are not required. +New installs default to native v3 CRDs, not the aggregation API server. Use this page if you want the aggregation API server, or are adding it to an existing cluster. ::: +## Install in API server mode (v1 CRDs) + +New installs default to v3 CRD mode. To install in the aggregation API-server mode instead, install the v1 CRDs before the operator decides the mode - the operator runs in API-server mode whenever the `crd.projectcalico.org/v1` CRDs are present. + + + + +Install the v1 CRD chart before the Tigera Operator: + +```bash +helm template calico-crds projectcalico/crd.projectcalico.org.v1 --version $[releaseTitle] | kubectl apply --server-side -f - +``` + + + + +Apply the v1 CRDs before the Tigera Operator: + +```bash +kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml +``` + + + + +Then continue with your normal install. The aggregation API server is deployed automatically. + ## Before you begin - Make sure you have a cluster with Calico installed using the Kubernetes API data store. If not, you can [migrate from etcd](datastore-migration.mdx). diff --git a/calico/operations/native-v3-crds.mdx b/calico/operations/native-v3-crds.mdx index 2e0e69c57c..d5e80c9f19 100644 --- a/calico/operations/native-v3-crds.mdx +++ b/calico/operations/native-v3-crds.mdx @@ -1,18 +1,12 @@ --- -description: Switch Calico Open Source to native projectcalico.org/v3 CRDs so resources are stored directly as CRDs without the aggregated API server component. +description: New installs of Calico Open Source use native projectcalico.org/v3 CRDs by default. This page explains how native v3 CRD mode works and how to install with the aggregation API server instead. --- -# Enable native v3 CRDs - -:::note - -This feature is tech preview. Tech preview features may be subject to significant changes before they become GA. - -::: +# Native v3 CRDs ## Big picture -Enable native `projectcalico.org/v3` CRDs so that Calico resources are backed directly by CRDs, eliminating the need for the Calico aggregation API server. +New installs of $[prodname] use native `projectcalico.org/v3` CRDs by default: Calico resources are backed directly by CRDs, with no aggregation API server. This page explains how the mode works and how to install with the aggregation API server instead. ## Value @@ -36,12 +30,12 @@ When using native `projectcalico.org/v3` CRDs: ### Validation and defaulting -When using native `projectcalico.org/v3` CRDs, resource validation and defaulting are handled by native CRD validation and defaulting, as well as ValidatingAdmissionPolicies and MutatingAdmissionPolicies. $[prodname] uses [MutatingAdmissionPolicies](https://kubernetes.io/docs/reference/access-authn-authz/validating-admission-policy/) for defaulting, which require the beta `admissionregistration.k8s.io/v1beta1` API. That API is available in **Kubernetes 1.34 and later**. On Kubernetes 1.33 and earlier, MutatingAdmissionPolicy is only available as an alpha API (`v1alpha1`), which $[prodname] does not support. On Kubernetes 1.34 and 1.35, you must enable the `MutatingAdmissionPolicy` feature gate on your Kubernetes API server before using native `projectcalico.org/v3` CRDs, as it is not enabled by default. On Kubernetes 1.36 and later, the feature is GA and enabled by default. +When using native `projectcalico.org/v3` CRDs, resource validation and defaulting are handled by native CRD validation and defaulting, as well as ValidatingAdmissionPolicies and MutatingAdmissionPolicies. $[prodname] uses [MutatingAdmissionPolicies](https://kubernetes.io/docs/reference/access-authn-authz/validating-admission-policy/) for defaulting, which require **Kubernetes 1.32 or later**. On clusters where the `MutatingAdmissionPolicy` API is not enabled by default, you must enable the `MutatingAdmissionPolicy` [feature gate](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) on the Kubernetes API server. ## Before you begin - A Kubernetes cluster **without** $[prodname] installed, or a cluster where you are performing a fresh install. To migrate an existing cluster from API server mode, see [Migrate from API server to native CRDs](crd-migration.mdx). -- **Kubernetes 1.34 or later.** $[prodname] uses the beta `admissionregistration.k8s.io/v1beta1` MutatingAdmissionPolicy API for defaulting, which is not available on Kubernetes 1.33 and earlier (where MutatingAdmissionPolicy is alpha only). On Kubernetes 1.34 and 1.35, the `MutatingAdmissionPolicy` [feature gate](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) must be enabled on the API server, as it is not enabled by default. On Kubernetes 1.36 and later, the feature is GA and enabled by default. +- **Kubernetes 1.32 or later.** $[prodname] uses the `MutatingAdmissionPolicy` API for defaulting. On clusters where it is not enabled by default, enable the `MutatingAdmissionPolicy` [feature gate](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) on the API server. import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; From df6c3eb99cc42651b7fecbf9331b767a63afde69 Mon Sep 17 00:00:00 2001 From: Casey Davenport Date: Fri, 26 Jun 2026 13:58:35 -0700 Subject: [PATCH 2/9] docs: reframe Enterprise v3 CRD pages as default, fix K8s floor to 1.32 --- .../operations/crd-migration.mdx | 6 --- .../operations/native-v3-crds.mdx | 41 ++++++++++++++----- 2 files changed, 31 insertions(+), 16 deletions(-) diff --git a/calico-enterprise/operations/crd-migration.mdx b/calico-enterprise/operations/crd-migration.mdx index 74bf1638e6..da05c9203f 100644 --- a/calico-enterprise/operations/crd-migration.mdx +++ b/calico-enterprise/operations/crd-migration.mdx @@ -4,12 +4,6 @@ description: Migrate Calico Enterprise resources from the aggregated API server # Migrate from API server to native CRDs -:::note - -This feature is tech preview. Tech preview features may be subject to significant changes before they become GA. - -::: - ## Big picture Automatically migrate $[prodname] resources from the aggregated API server's `crd.projectcalico.org/v1` backing storage to native `projectcalico.org/v3` CRDs, allowing you to remove the API server component. diff --git a/calico-enterprise/operations/native-v3-crds.mdx b/calico-enterprise/operations/native-v3-crds.mdx index 49de1cc9cd..70c5120e7d 100644 --- a/calico-enterprise/operations/native-v3-crds.mdx +++ b/calico-enterprise/operations/native-v3-crds.mdx @@ -2,17 +2,11 @@ description: Switch Calico Enterprise to native projectcalico.org/v3 CRDs so resources are stored directly as CRDs without the aggregated API server component. --- -# Enable native v3 CRDs - -:::note - -This feature is tech preview. Tech preview features may be subject to significant changes before they become GA. - -::: +# Native v3 CRDs ## Big picture -Enable native `projectcalico.org/v3` CRDs so that Calico resources are backed directly by CRDs, eliminating the need for the Calico aggregation API server. +New installs of $[prodname] use native `projectcalico.org/v3` CRDs by default: Calico resources are backed directly by CRDs, eliminating the need for the Calico aggregation API server. This page explains how the mode works and how to install with the aggregation API server instead. ## Value @@ -36,12 +30,12 @@ When using native `projectcalico.org/v3` CRDs: ### Validation and defaulting -When using native `projectcalico.org/v3` CRDs, resource validation and defaulting are handled by native CRD validation and defaulting, as well as ValidatingAdmissionPolicies and MutatingAdmissionPolicies. $[prodname] uses [MutatingAdmissionPolicies](https://kubernetes.io/docs/reference/access-authn-authz/validating-admission-policy/) for defaulting, which require the beta `admissionregistration.k8s.io/v1beta1` API. That API is available in **Kubernetes 1.34 and later**. On Kubernetes 1.33 and earlier, MutatingAdmissionPolicy is only available as an alpha API (`v1alpha1`), which $[prodname] does not support. On Kubernetes 1.34 and 1.35, you must enable the `MutatingAdmissionPolicy` feature gate on your Kubernetes API server before using native `projectcalico.org/v3` CRDs, as it is not enabled by default. On Kubernetes 1.36 and later, the feature is GA and enabled by default. +When using native `projectcalico.org/v3` CRDs, resource validation and defaulting are handled by native CRD validation and defaulting, as well as ValidatingAdmissionPolicies and MutatingAdmissionPolicies. $[prodname] uses [MutatingAdmissionPolicies](https://kubernetes.io/docs/reference/access-authn-authz/validating-admission-policy/) for defaulting, which require **Kubernetes 1.32 or later**. On clusters where the `MutatingAdmissionPolicy` API is not enabled by default, you must enable the `MutatingAdmissionPolicy` [feature gate](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) on the Kubernetes API server. ## Before you begin - A Kubernetes cluster **without** $[prodname] installed, or a cluster where you are performing a fresh install. To migrate an existing cluster from API server mode, see [Migrate from API server to native CRDs](crd-migration.mdx). -- **Kubernetes 1.34 or later.** $[prodname] uses the beta `admissionregistration.k8s.io/v1beta1` MutatingAdmissionPolicy API for defaulting, which is not available on Kubernetes 1.33 and earlier (where MutatingAdmissionPolicy is alpha only). On Kubernetes 1.34 and 1.35, the `MutatingAdmissionPolicy` [feature gate](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) must be enabled on the API server, as it is not enabled by default. On Kubernetes 1.36 and later, the feature is GA and enabled by default. +- **Kubernetes 1.32 or later.** $[prodname] uses the `MutatingAdmissionPolicy` API for defaulting. On clusters where it is not enabled by default, enable the `MutatingAdmissionPolicy` [feature gate](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) on the API server. import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; @@ -181,6 +175,33 @@ In API server mode, tier RBAC is enforced for all operations (create, update, de When using native `projectcalico.org/v3` CRDs, tier RBAC is enforced via the admission webhook for **create, update, and delete** operations. However, **GET, LIST, and WATCH** operations on tiered policies are **not enforced** because admission webhooks cannot intercept read operations. This is a known limitation. +## Install in API server mode (v1 CRDs) + +New installs default to v3 CRD mode. To install in the aggregation API-server mode instead, install the v1 CRDs before the operator decides the mode - the operator runs in API-server mode whenever the `crd.projectcalico.org/v1` CRDs are present. + + + + +Install the v1 CRD chart before the Tigera Operator: + +```bash +helm template calico-crds projectcalico/crd.projectcalico.org.v1 --version $[releaseTitle] | kubectl apply --server-side -f - +``` + + + + +Apply the v1 CRDs before the Tigera Operator: + +```bash +kubectl create -f $[filesUrl]/manifests/operator-crds.yaml +``` + + + + +Then continue with your normal install. The aggregation API server is deployed automatically. + ## Known limitations - **GET/LIST/WATCH tier RBAC not enforced** — Admission webhooks cannot intercept read operations, so tier-based RBAC for GET, LIST, and WATCH is not enforced when using native `projectcalico.org/v3` CRDs. From 8903b935f17e66ad1c1a1105130ceebac77cf0c7 Mon Sep 17 00:00:00 2001 From: Casey Davenport Date: Fri, 26 Jun 2026 14:08:33 -0700 Subject: [PATCH 3/9] docs: default OSS fresh-install guides to v3 CRD mode --- calico/getting-started/kubernetes/helm.mdx | 12 ++--- .../kubernetes/k3s/multi-node-install.mdx | 15 ++++-- .../kubernetes/k3s/quickstart.mdx | 17 ++++--- .../kubernetes/k8s-single-node.mdx | 15 ++++-- calico/getting-started/kubernetes/kind.mdx | 17 +++++-- .../kubernetes/managed-public-cloud/aks.mdx | 30 ++++++++++-- .../kubernetes/managed-public-cloud/eks.mdx | 30 ++++++++++-- .../getting-started/kubernetes/minikube.mdx | 17 ++++--- .../getting-started/kubernetes/nftables.mdx | 15 ++++-- .../getting-started/kubernetes/quickstart.mdx | 8 ++- calico/getting-started/kubernetes/rancher.mdx | 15 ++++-- .../self-managed-onprem/onpremises.mdx | 15 +++++- .../self-managed-public-cloud/gce.mdx | 19 +++++-- .../kubernetes/vpp/getting-started.mdx | 49 ++++++++++++------- .../kubernetes/windows-calico/rancher.mdx | 15 ++++-- 15 files changed, 208 insertions(+), 81 deletions(-) diff --git a/calico/getting-started/kubernetes/helm.mdx b/calico/getting-started/kubernetes/helm.mdx index 472892ee6e..6475819ee9 100644 --- a/calico/getting-started/kubernetes/helm.mdx +++ b/calico/getting-started/kubernetes/helm.mdx @@ -81,19 +81,13 @@ For more information about configurable options via `values.yaml` please see [He 1. Install the necessary custom resource definitions. - ```bash - helm template calico-crds projectcalico/crd.projectcalico.org.v1 --version $[releaseTitle] | kubectl apply --server-side -f - - ``` - - :::tip - - To install with [native v3 CRDs](../../operations/native-v3-crds.mdx) (tech preview) instead, use the v3 CRD chart: - ```bash helm template calico-crds projectcalico/projectcalico.org.v3 --version $[releaseTitle] | kubectl apply --server-side -f - ``` - Native v3 CRDs eliminate the need for the aggregation API server and allows `kubectl` to manage `projectcalico.org/v3` resources directly. + :::note[What changed] + + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx). ::: diff --git a/calico/getting-started/kubernetes/k3s/multi-node-install.mdx b/calico/getting-started/kubernetes/k3s/multi-node-install.mdx index 206692d650..60ef6344e9 100644 --- a/calico/getting-started/kubernetes/k3s/multi-node-install.mdx +++ b/calico/getting-started/kubernetes/k3s/multi-node-install.mdx @@ -94,19 +94,24 @@ curl -sfL https://get.k3s.io | K3S_URL=https://serverip:6443 K3S_TOKEN=mytoken s -Install the $[prodname] operator and custom resource definitions. +Install the $[prodname] custom resource definitions. ```bash -kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml -kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml +kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml ``` -:::note +:::note[What changed] -Due to the large size of the CRD bundle, `kubectl apply` might exceed request limits. Instead, use `kubectl create` or `kubectl replace`. +New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). ::: +Install the Tigera Operator. + +```bash +kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml +``` + Install $[prodname] by creating the necessary custom resource. For more information on configuration options available in this manifest, see [the installation reference](../../../reference/installation/api.mdx). ```bash diff --git a/calico/getting-started/kubernetes/k3s/quickstart.mdx b/calico/getting-started/kubernetes/k3s/quickstart.mdx index 4f93b0ce57..d05abd895e 100644 --- a/calico/getting-started/kubernetes/k3s/quickstart.mdx +++ b/calico/getting-started/kubernetes/k3s/quickstart.mdx @@ -65,20 +65,25 @@ you are assigning necessary permissions to the file and make it accessible for o -1. Install the $[prodname] operator and custom resource definitions. +1. Install the $[prodname] custom resource definitions. ```bash -kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml -kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml +kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml ``` -:::note +:::note[What changed] -Due to the large size of the CRD bundle, `kubectl apply` might exceed request limits. Therefore, it is recommended to use `kubectl create` or `kubectl replace`. +New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). ::: -2. Install $[prodname] by creating the necessary custom resource. For more information on configuration options available in this manifest, see [the installation reference](../../../reference/installation/api.mdx). +2. Install the Tigera Operator. + +```bash +kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml +``` + +3. Install $[prodname] by creating the necessary custom resource. For more information on configuration options available in this manifest, see [the installation reference](../../../reference/installation/api.mdx). ```bash kubectl create -f $[manifestsUrl]/manifests/custom-resources.yaml diff --git a/calico/getting-started/kubernetes/k8s-single-node.mdx b/calico/getting-started/kubernetes/k8s-single-node.mdx index 8ae6ccf65f..b1293239f5 100644 --- a/calico/getting-started/kubernetes/k8s-single-node.mdx +++ b/calico/getting-started/kubernetes/k8s-single-node.mdx @@ -89,19 +89,24 @@ The geeky details of what you get: ### Install $[prodname] -1. Install the Tigera Operator and custom resource definitions. +1. Install the $[prodname] custom resource definitions. ``` - kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml - kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml ``` - :::note + :::note[What changed] - Due to the large size of the CRD bundle, `kubectl apply` might exceed request limits. Instead, use `kubectl create` or `kubectl replace`. + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx). ::: +1. Install the Tigera Operator. + + ``` + kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + ``` + 1. Install $[prodname] by creating the necessary custom resource. For more information on configuration options available in this manifest, see [the installation reference](../../reference/installation/api.mdx). ``` diff --git a/calico/getting-started/kubernetes/kind.mdx b/calico/getting-started/kubernetes/kind.mdx index 6df8fb83a1..48100d3306 100644 --- a/calico/getting-started/kubernetes/kind.mdx +++ b/calico/getting-started/kubernetes/kind.mdx @@ -79,14 +79,25 @@ dev-worker2 NotReady 4m v1.25.0 172.18.0.3 < -1. Install the $[prodname] operator and custom resource definitions. +1. Install the $[prodname] custom resource definitions. + +```bash +kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml +``` + +:::note[What changed] + +New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx). + +::: + +2. Install the Tigera Operator. ```bash -kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml ``` -2. Install $[prodname] by creating the necessary custom resource. For more information on configuration options available in this manifest, see [the installation reference](../../reference/installation/api.mdx). +3. Install $[prodname] by creating the necessary custom resource. For more information on configuration options available in this manifest, see [the installation reference](../../reference/installation/api.mdx). :::note diff --git a/calico/getting-started/kubernetes/managed-public-cloud/aks.mdx b/calico/getting-started/kubernetes/managed-public-cloud/aks.mdx index bde58970d0..bb848352fd 100644 --- a/calico/getting-started/kubernetes/managed-public-cloud/aks.mdx +++ b/calico/getting-started/kubernetes/managed-public-cloud/aks.mdx @@ -112,10 +112,21 @@ The geeky details of what you get: Now that you have a cluster configured, you can install $[prodname]. -1. Install the Tigera Operator and custom resource definitions: +1. Install the $[prodname] custom resource definitions: + + ```bash + kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml + ``` + + :::note[What changed] + + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). + + ::: + +1. Install the Tigera Operator. ```bash - kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml ``` @@ -213,10 +224,21 @@ The geeky details of what you get: 1. Now that you have a cluster configured, you can install $[prodname]. -1. Install the Tigera Operator and custom resource definitions. +1. Install the $[prodname] custom resource definitions. + + ```bash + kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml + ``` + + :::note[What changed] + + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). + + ::: + +1. Install the Tigera Operator. ```bash - kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml ``` diff --git a/calico/getting-started/kubernetes/managed-public-cloud/eks.mdx b/calico/getting-started/kubernetes/managed-public-cloud/eks.mdx index dcb9546176..0918043e2e 100644 --- a/calico/getting-started/kubernetes/managed-public-cloud/eks.mdx +++ b/calico/getting-started/kubernetes/managed-public-cloud/eks.mdx @@ -61,10 +61,21 @@ When using the Amazon VPC CNI plugin, $[prodname] does not support enforcement o kubectl set env -n kube-system daemonset/aws-node ANNOTATE_POD_IP=true ``` -1. Install the Tigera Operator and custom resource definitions. +1. Install the $[prodname] custom resource definitions. + + ```bash + kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml + ``` + + :::note[What changed] + + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). + + ::: + +1. Install the Tigera Operator. ```bash - kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml ``` @@ -164,10 +175,21 @@ Before you get started, make sure you have downloaded and configured the [necess -1. Install the Tigera Operator and custom resource definitions. +1. Install the $[prodname] custom resource definitions. + + ```bash + kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml + ``` + + :::note[What changed] + + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). + + ::: + +1. Install the Tigera Operator. ```bash - kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml ``` diff --git a/calico/getting-started/kubernetes/minikube.mdx b/calico/getting-started/kubernetes/minikube.mdx index 1d44a6dacd..b35aab6e43 100644 --- a/calico/getting-started/kubernetes/minikube.mdx +++ b/calico/getting-started/kubernetes/minikube.mdx @@ -58,20 +58,25 @@ minikube start --cni=calico minikube start --cni=false --network-plugin=cni --extra-config=kubeadm.pod-network-cidr=192.168.0.0/16 --subnet=172.16.0.0/24 ``` -2. Install the Tigera Operator and custom resource definitions. +2. Install the $[prodname] custom resource definitions. ```bash - kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml - kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml ``` - :::note + :::note[What changed] - Due to the large size of the CRD bundle, `kubectl apply` might exceed request limits. Instead, use `kubectl create` or `kubectl replace`. + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx). ::: -3. Install $[prodname] by creating the necessary custom resource. For more information on configuration options available in this manifest, see [the installation reference](../../reference/installation/api.mdx). +3. Install the Tigera Operator. + + ```bash + kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + ``` + +4. Install $[prodname] by creating the necessary custom resource. For more information on configuration options available in this manifest, see [the installation reference](../../reference/installation/api.mdx). :::note diff --git a/calico/getting-started/kubernetes/nftables.mdx b/calico/getting-started/kubernetes/nftables.mdx index c5e234083b..7ccbe12d60 100644 --- a/calico/getting-started/kubernetes/nftables.mdx +++ b/calico/getting-started/kubernetes/nftables.mdx @@ -99,19 +99,24 @@ mode: nftables ### Install $[prodname] in nftables data plane mode -1. Install the Tigera Operator and custom resource definitions. +1. Install the $[prodname] custom resource definitions. ```bash - kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml - kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml ``` - :::note + :::note[What changed] - Due to the large size of the CRD bundle, `kubectl apply` might exceed request limits. Instead, use `kubectl create` or `kubectl replace`. + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx). ::: +1. Install the Tigera Operator. + + ```bash + kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + ``` + 1. Install $[prodname] by creating the necessary custom resource. For more information on configuration options available in this manifest, see [the installation reference](../../reference/installation/api.mdx). ```bash diff --git a/calico/getting-started/kubernetes/quickstart.mdx b/calico/getting-started/kubernetes/quickstart.mdx index 71dc7e3a8b..fea1a2f53e 100644 --- a/calico/getting-started/kubernetes/quickstart.mdx +++ b/calico/getting-started/kubernetes/quickstart.mdx @@ -97,9 +97,15 @@ In this step, you will install Calico in your cluster. 1. Install the $[prodname] custom resource definitions. ```bash - kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml + kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml ``` + :::note[What changed] + + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx). + + ::: + 2. Install the Tigera Operator. ```bash diff --git a/calico/getting-started/kubernetes/rancher.mdx b/calico/getting-started/kubernetes/rancher.mdx index d3761bbd82..4aff647e70 100644 --- a/calico/getting-started/kubernetes/rancher.mdx +++ b/calico/getting-started/kubernetes/rancher.mdx @@ -43,19 +43,24 @@ The geeky details of what you get: ### Install $[prodname] -1. Install the Tigera Operator and custom resource definitions. +1. Install the $[prodname] custom resource definitions. ``` - kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml - kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml ``` - :::note + :::note[What changed] - Due to the large size of the CRD bundle, `kubectl apply` might exceed request limits. Instead, use `kubectl create` or `kubectl replace`. + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx). ::: +1. Install the Tigera Operator. + + ``` + kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + ``` + 1. Install $[prodname] by creating the necessary custom resource. For more information on configuration options available in this manifest, see [the installation reference](../../reference/installation/api.mdx). ``` diff --git a/calico/getting-started/kubernetes/self-managed-onprem/onpremises.mdx b/calico/getting-started/kubernetes/self-managed-onprem/onpremises.mdx index b89eb54a77..8886be4d74 100644 --- a/calico/getting-started/kubernetes/self-managed-onprem/onpremises.mdx +++ b/calico/getting-started/kubernetes/self-managed-onprem/onpremises.mdx @@ -41,10 +41,21 @@ $[prodname] can also be installed using raw manifests as an alternative to the o -1. Install the Tigera Operator and custom resource definitions. +1. Install the $[prodname] custom resource definitions. + + ``` + kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml + ``` + + :::note[What changed] + + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). + + ::: + +1. Install the Tigera Operator. ``` - kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml ``` diff --git a/calico/getting-started/kubernetes/self-managed-public-cloud/gce.mdx b/calico/getting-started/kubernetes/self-managed-public-cloud/gce.mdx index 77e6e6acd1..0a442fb7ba 100644 --- a/calico/getting-started/kubernetes/self-managed-public-cloud/gce.mdx +++ b/calico/getting-started/kubernetes/self-managed-public-cloud/gce.mdx @@ -190,20 +190,31 @@ worker-2 NotReady 5s v1.17.2 #### Install $[prodname] -1. On the controller, install the Tigera Operator and custom resource definitions: +1. On the controller, install the $[prodname] custom resource definitions: + + ```bash + kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml + ``` + + :::note[What changed] + + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). + + ::: + +2. Install the Tigera Operator. ```bash - kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml ``` -2. Download the custom resources necessary to configure $[prodname] +3. Download the custom resources necessary to configure $[prodname] ```bash curl $[manifestsUrl]/manifests/custom-resources.yaml -O ``` -3. If you wish to customize the $[prodname] install, customize the downloaded custom-resources.yaml manifest. Then create the manifest to install $[prodname]. +4. If you wish to customize the $[prodname] install, customize the downloaded custom-resources.yaml manifest. Then create the manifest to install $[prodname]. ```bash kubectl create -f custom-resources.yaml diff --git a/calico/getting-started/kubernetes/vpp/getting-started.mdx b/calico/getting-started/kubernetes/vpp/getting-started.mdx index 0450117314..d9740bad73 100644 --- a/calico/getting-started/kubernetes/vpp/getting-started.mdx +++ b/calico/getting-started/kubernetes/vpp/getting-started.mdx @@ -86,19 +86,24 @@ Before you get started, make sure you have downloaded and configured the [necess ### Install and configure Calico with the VPP data plane -1. Now that you have an empty cluster configured, you can install the Tigera Operator and custom resource definitions. +1. Now that you have an empty cluster configured, you can install the $[prodname] custom resource definitions. ```bash - kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml - kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml ``` - :::note + :::note[What changed] - Due to the large size of the CRD bundle, `kubectl apply` might exceed request limits. Instead, use `kubectl create` or `kubectl replace`. + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). ::: +1. Install the Tigera Operator. + + ```bash + kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + ``` + 1. Then, you need to configure the $[prodname] installation for the VPP data plane. The yaml in the link below contains a minimal viable configuration for EKS. For more information on configuration options available in this manifest, see [the installation reference](../../../reference/installation/api.mdx). :::note @@ -155,20 +160,25 @@ DPDK provides better performance compared to the standard install but it require ### Install and configure Calico with the VPP data plane -1. Now that you have an empty cluster configured, you can install the Tigera Operator and custom resource definitions. +1. Now that you have an empty cluster configured, you can install the $[prodname] custom resource definitions. ```bash - kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml - kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml ``` - :::note + :::note[What changed] - Due to the large size of the CRD bundle, `kubectl apply` might exceed request limits. Instead, use `kubectl create` or `kubectl replace`. + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). ::: -2. Then, you need to configure the $[prodname] installation for the VPP data plane. The yaml in the link below contains a minimal viable configuration for EKS. For more information on configuration options available in this manifest, see [the installation reference](../../../reference/installation/api.mdx). +2. Install the Tigera Operator. + + ```bash + kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + ``` + +3. Then, you need to configure the $[prodname] installation for the VPP data plane. The yaml in the link below contains a minimal viable configuration for EKS. For more information on configuration options available in this manifest, see [the installation reference](../../../reference/installation/api.mdx). :::note @@ -181,7 +191,7 @@ DPDK provides better performance compared to the standard install but it require kubectl create -f https://raw.githubusercontent.com/projectcalico/vpp-dataplane/$[vppbranch]/yaml/calico/installation-eks.yaml ``` -3. Now is time to install the VPP data plane components. +4. Now is time to install the VPP data plane components. ```bash kubectl create -f https://raw.githubusercontent.com/projectcalico/vpp-dataplane/$[vppbranch]/yaml/generated/calico-vpp-eks-dpdk.yaml @@ -256,19 +266,24 @@ For some hardware, the following hugepages configuration may enable VPP to use m ### Install Calico and configure it for VPP -1. Install the Tigera Operator and custom resource definitions. +1. Install the $[prodname] custom resource definitions. ```bash - kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml - kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml ``` - :::note + :::note[What changed] - Due to the large size of the CRD bundle, `kubectl apply` might exceed request limits. Instead, use `kubectl create` or `kubectl replace`. + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). ::: +1. Install the Tigera Operator. + + ```bash + kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + ``` + 1. Then, you need to configure the $[prodname] installation for the VPP data plane. The yaml in the link below contains a minimal viable configuration for VPP. For more information on configuration options available in this manifest, see [the installation reference](../../../reference/installation/api.mdx). :::note diff --git a/calico/getting-started/kubernetes/windows-calico/rancher.mdx b/calico/getting-started/kubernetes/windows-calico/rancher.mdx index 2bec4f52bc..b2f0ec348d 100644 --- a/calico/getting-started/kubernetes/windows-calico/rancher.mdx +++ b/calico/getting-started/kubernetes/windows-calico/rancher.mdx @@ -33,19 +33,24 @@ Run Linux and Windows workloads on a RKE cluster with $[prodname]. The following steps will outline the installation of $[prodname] networking on the RKE cluster, then the installation of $[prodnameWindows] on the Windows nodes. -1. Install the Tigera Operator and custom resource definitions. +1. Install the $[prodname] custom resource definitions. ``` - kubectl create -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml - kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml ``` - :::note + :::note[What changed] - Due to the large size of the CRD bundle, `kubectl apply` might exceed request limits. Instead, use `kubectl create` or `kubectl replace`. + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). ::: +1. Install the Tigera Operator. + + ``` + kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml + ``` + 1. Download the necessary Installation custom resources. ```bash From dffc935dbc4725720bc69f115003a471dd422fc2 Mon Sep 17 00:00:00 2001 From: Casey Davenport Date: Fri, 26 Jun 2026 14:15:14 -0700 Subject: [PATCH 4/9] docs: deep-link opt-out section and fix vpp step numbering --- calico/getting-started/kubernetes/helm.mdx | 2 +- .../getting-started/kubernetes/k3s/multi-node-install.mdx | 2 +- calico/getting-started/kubernetes/k3s/quickstart.mdx | 2 +- calico/getting-started/kubernetes/k8s-single-node.mdx | 2 +- calico/getting-started/kubernetes/kind.mdx | 2 +- .../kubernetes/managed-public-cloud/aks.mdx | 4 ++-- .../kubernetes/managed-public-cloud/eks.mdx | 4 ++-- calico/getting-started/kubernetes/minikube.mdx | 2 +- calico/getting-started/kubernetes/nftables.mdx | 2 +- calico/getting-started/kubernetes/quickstart.mdx | 2 +- calico/getting-started/kubernetes/rancher.mdx | 2 +- .../kubernetes/self-managed-onprem/onpremises.mdx | 2 +- .../kubernetes/self-managed-public-cloud/gce.mdx | 2 +- calico/getting-started/kubernetes/vpp/getting-started.mdx | 8 ++++---- .../getting-started/kubernetes/windows-calico/rancher.mdx | 2 +- 15 files changed, 20 insertions(+), 20 deletions(-) diff --git a/calico/getting-started/kubernetes/helm.mdx b/calico/getting-started/kubernetes/helm.mdx index 6475819ee9..04bbf91774 100644 --- a/calico/getting-started/kubernetes/helm.mdx +++ b/calico/getting-started/kubernetes/helm.mdx @@ -87,7 +87,7 @@ For more information about configurable options via `values.yaml` please see [He :::note[What changed] - New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx). + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: diff --git a/calico/getting-started/kubernetes/k3s/multi-node-install.mdx b/calico/getting-started/kubernetes/k3s/multi-node-install.mdx index 60ef6344e9..ed18d8e125 100644 --- a/calico/getting-started/kubernetes/k3s/multi-node-install.mdx +++ b/calico/getting-started/kubernetes/k3s/multi-node-install.mdx @@ -102,7 +102,7 @@ kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml :::note[What changed] -New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). +New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: diff --git a/calico/getting-started/kubernetes/k3s/quickstart.mdx b/calico/getting-started/kubernetes/k3s/quickstart.mdx index d05abd895e..5d4b2fe30e 100644 --- a/calico/getting-started/kubernetes/k3s/quickstart.mdx +++ b/calico/getting-started/kubernetes/k3s/quickstart.mdx @@ -73,7 +73,7 @@ kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml :::note[What changed] -New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). +New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: diff --git a/calico/getting-started/kubernetes/k8s-single-node.mdx b/calico/getting-started/kubernetes/k8s-single-node.mdx index b1293239f5..9c0b2ef361 100644 --- a/calico/getting-started/kubernetes/k8s-single-node.mdx +++ b/calico/getting-started/kubernetes/k8s-single-node.mdx @@ -97,7 +97,7 @@ The geeky details of what you get: :::note[What changed] - New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx). + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: diff --git a/calico/getting-started/kubernetes/kind.mdx b/calico/getting-started/kubernetes/kind.mdx index 48100d3306..bf50edc474 100644 --- a/calico/getting-started/kubernetes/kind.mdx +++ b/calico/getting-started/kubernetes/kind.mdx @@ -87,7 +87,7 @@ kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml :::note[What changed] -New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx). +New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: diff --git a/calico/getting-started/kubernetes/managed-public-cloud/aks.mdx b/calico/getting-started/kubernetes/managed-public-cloud/aks.mdx index bb848352fd..81400c6dea 100644 --- a/calico/getting-started/kubernetes/managed-public-cloud/aks.mdx +++ b/calico/getting-started/kubernetes/managed-public-cloud/aks.mdx @@ -120,7 +120,7 @@ The geeky details of what you get: :::note[What changed] - New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: @@ -232,7 +232,7 @@ The geeky details of what you get: :::note[What changed] - New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: diff --git a/calico/getting-started/kubernetes/managed-public-cloud/eks.mdx b/calico/getting-started/kubernetes/managed-public-cloud/eks.mdx index 0918043e2e..cda674c085 100644 --- a/calico/getting-started/kubernetes/managed-public-cloud/eks.mdx +++ b/calico/getting-started/kubernetes/managed-public-cloud/eks.mdx @@ -69,7 +69,7 @@ When using the Amazon VPC CNI plugin, $[prodname] does not support enforcement o :::note[What changed] - New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: @@ -183,7 +183,7 @@ Before you get started, make sure you have downloaded and configured the [necess :::note[What changed] - New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: diff --git a/calico/getting-started/kubernetes/minikube.mdx b/calico/getting-started/kubernetes/minikube.mdx index b35aab6e43..5f30d6aa14 100644 --- a/calico/getting-started/kubernetes/minikube.mdx +++ b/calico/getting-started/kubernetes/minikube.mdx @@ -66,7 +66,7 @@ minikube start --cni=calico :::note[What changed] - New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx). + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: diff --git a/calico/getting-started/kubernetes/nftables.mdx b/calico/getting-started/kubernetes/nftables.mdx index 7ccbe12d60..581247dcb1 100644 --- a/calico/getting-started/kubernetes/nftables.mdx +++ b/calico/getting-started/kubernetes/nftables.mdx @@ -107,7 +107,7 @@ mode: nftables :::note[What changed] - New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx). + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: diff --git a/calico/getting-started/kubernetes/quickstart.mdx b/calico/getting-started/kubernetes/quickstart.mdx index fea1a2f53e..8182da31ea 100644 --- a/calico/getting-started/kubernetes/quickstart.mdx +++ b/calico/getting-started/kubernetes/quickstart.mdx @@ -102,7 +102,7 @@ In this step, you will install Calico in your cluster. :::note[What changed] - New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx). + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: diff --git a/calico/getting-started/kubernetes/rancher.mdx b/calico/getting-started/kubernetes/rancher.mdx index 4aff647e70..d34f836155 100644 --- a/calico/getting-started/kubernetes/rancher.mdx +++ b/calico/getting-started/kubernetes/rancher.mdx @@ -51,7 +51,7 @@ The geeky details of what you get: :::note[What changed] - New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx). + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: diff --git a/calico/getting-started/kubernetes/self-managed-onprem/onpremises.mdx b/calico/getting-started/kubernetes/self-managed-onprem/onpremises.mdx index 8886be4d74..377bdb17f1 100644 --- a/calico/getting-started/kubernetes/self-managed-onprem/onpremises.mdx +++ b/calico/getting-started/kubernetes/self-managed-onprem/onpremises.mdx @@ -49,7 +49,7 @@ $[prodname] can also be installed using raw manifests as an alternative to the o :::note[What changed] - New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: diff --git a/calico/getting-started/kubernetes/self-managed-public-cloud/gce.mdx b/calico/getting-started/kubernetes/self-managed-public-cloud/gce.mdx index 0a442fb7ba..64540331c7 100644 --- a/calico/getting-started/kubernetes/self-managed-public-cloud/gce.mdx +++ b/calico/getting-started/kubernetes/self-managed-public-cloud/gce.mdx @@ -198,7 +198,7 @@ worker-2 NotReady 5s v1.17.2 :::note[What changed] - New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: diff --git a/calico/getting-started/kubernetes/vpp/getting-started.mdx b/calico/getting-started/kubernetes/vpp/getting-started.mdx index d9740bad73..0d12c6f209 100644 --- a/calico/getting-started/kubernetes/vpp/getting-started.mdx +++ b/calico/getting-started/kubernetes/vpp/getting-started.mdx @@ -94,7 +94,7 @@ Before you get started, make sure you have downloaded and configured the [necess :::note[What changed] - New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: @@ -168,7 +168,7 @@ DPDK provides better performance compared to the standard install but it require :::note[What changed] - New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx). + New installs default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. This requires Kubernetes 1.32 or later. To install with the aggregation API server instead, see [Install in API server mode](../../../operations/install-apiserver.mdx#install-in-api-server-mode-v1-crds). ::: @@ -197,7 +197,7 @@ DPDK provides better performance compared to the standard install but it require kubectl create -f https://raw.githubusercontent.com/projectcalico/vpp-dataplane/$[vppbranch]/yaml/generated/calico-vpp-eks-dpdk.yaml ``` -4. Finally, time to add nodes to the cluster. Since we need to customize the nodes for DPDK, we will use an `eksctl` config file with the `preBootstrapCommands` property to create the worker nodes. The following command will create a managed nodegroup with 2 t3.large worker nodes in the cluster: +5. Finally, time to add nodes to the cluster. Since we need to customize the nodes for DPDK, we will use an `eksctl` config file with the `preBootstrapCommands` property to create the worker nodes. The following command will create a managed nodegroup with 2 t3.large worker nodes in the cluster: ``` cat < Date: Fri, 26 Jun 2026 14:30:41 -0700 Subject: [PATCH 5/9] docs: default Enterprise Helm install to v3 CRDs, flag v3 option on operator installs --- .../install-on-clusters/docker-enterprise.mdx | 6 ++++++ .../install-on-clusters/kubernetes/helm.mdx | 10 ++++++++-- .../install-on-clusters/kubernetes/quickstart.mdx | 6 ++++++ .../getting-started/install-on-clusters/rancher.mdx | 6 ++++++ .../getting-started/install-on-clusters/rke2.mdx | 6 ++++++ .../install-on-clusters/windows-calico/rancher.mdx | 6 ++++++ .../installation/install-calico-enterprise-mke-4k.mdx | 6 ++++++ calico-enterprise/operations/nftables.mdx | 6 ++++++ 8 files changed, 50 insertions(+), 2 deletions(-) diff --git a/calico-enterprise/getting-started/install-on-clusters/docker-enterprise.mdx b/calico-enterprise/getting-started/install-on-clusters/docker-enterprise.mdx index 3d381e1f9a..5d690c7067 100644 --- a/calico-enterprise/getting-started/install-on-clusters/docker-enterprise.mdx +++ b/calico-enterprise/getting-started/install-on-clusters/docker-enterprise.mdx @@ -69,6 +69,12 @@ The geeky details of what you get: 1. Install the Tigera Operator and custom resource definitions. + :::note[CRD mode] + + This install uses the aggregation API server (the operator installs the v1 CRDs from `operator-crds.yaml`). New installs can instead use native v3 CRD mode, where `projectcalico.org/v3` is served directly by CRDs with no aggregation API server (requires Kubernetes 1.32+). To use it, install with [Helm](./kubernetes/helm.mdx) or see [Native v3 CRDs](../../operations/native-v3-crds.mdx). + + ::: + ```bash kubectl create -f $[filesUrl]/manifests/operator-crds.yaml kubectl create -f $[filesUrl]/manifests/tigera-operator.yaml diff --git a/calico-enterprise/getting-started/install-on-clusters/kubernetes/helm.mdx b/calico-enterprise/getting-started/install-on-clusters/kubernetes/helm.mdx index 2e25991691..f8b5fcc35a 100644 --- a/calico-enterprise/getting-started/install-on-clusters/kubernetes/helm.mdx +++ b/calico-enterprise/getting-started/install-on-clusters/kubernetes/helm.mdx @@ -36,7 +36,7 @@ In this guide, you install the Tigera Calico operator and custom resource defini helm repo add tigera-ee https://downloads.tigera.io/ee/charts helm repo update helm pull tigera-ee/tigera-operator --version $[releaseTitle]$[helmPre] -helm pull tigera-ee/crd.projectcalico.org.v1 --version $[releaseTitle]$[helmPre] +helm pull tigera-ee/projectcalico.org.v3 --version $[releaseTitle]$[helmPre] ``` ### Prepare the Installation Configuration @@ -95,8 +95,14 @@ To install a standard $[prodname] cluster with Helm: 1. Install the necessary custom resource definitions. + :::note[What changed] + + New installs now default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. Requires Kubernetes 1.32+. To install with the aggregation API server instead, pull and install the `tigera-ee/crd.projectcalico.org.v1` chart in place of `projectcalico.org.v3`. See [Native v3 CRDs](../../../operations/native-v3-crds.mdx). + + ::: + ```bash - helm template calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz | kubectl apply --server-side -f - + helm template calico-crds projectcalico.org.v3-$[chart_version_name].tgz | kubectl apply --server-side -f - ``` 1. Install the Tigera Operator using the Helm 3 chart: diff --git a/calico-enterprise/getting-started/install-on-clusters/kubernetes/quickstart.mdx b/calico-enterprise/getting-started/install-on-clusters/kubernetes/quickstart.mdx index 07094257fa..87add2d7e9 100644 --- a/calico-enterprise/getting-started/install-on-clusters/kubernetes/quickstart.mdx +++ b/calico-enterprise/getting-started/install-on-clusters/kubernetes/quickstart.mdx @@ -89,6 +89,12 @@ A Linux host that meets the following requirements. 1. Install the Tigera Operator and custom resource definitions. + :::note[CRD mode] + + This install uses the aggregation API server (the operator installs the v1 CRDs from `operator-crds.yaml`). New installs can instead use native v3 CRD mode, where `projectcalico.org/v3` is served directly by CRDs with no aggregation API server (requires Kubernetes 1.32+). To use it, install with [Helm](./helm.mdx) or see [Native v3 CRDs](../../../operations/native-v3-crds.mdx). + + ::: + ```bash kubectl create -f $[filesUrl]/manifests/operator-crds.yaml kubectl create -f $[filesUrl]/manifests/tigera-operator.yaml diff --git a/calico-enterprise/getting-started/install-on-clusters/rancher.mdx b/calico-enterprise/getting-started/install-on-clusters/rancher.mdx index f52b9dec88..9da5378b99 100644 --- a/calico-enterprise/getting-started/install-on-clusters/rancher.mdx +++ b/calico-enterprise/getting-started/install-on-clusters/rancher.mdx @@ -57,6 +57,12 @@ The geeky details of what you get: 1. Install the Tigera Operator and custom resource definitions. + :::note[CRD mode] + + This install uses the aggregation API server (the operator installs the v1 CRDs from `operator-crds.yaml`). New installs can instead use native v3 CRD mode, where `projectcalico.org/v3` is served directly by CRDs with no aggregation API server (requires Kubernetes 1.32+). To use it, install with [Helm](./kubernetes/helm.mdx) or see [Native v3 CRDs](../../operations/native-v3-crds.mdx). + + ::: + ```bash kubectl create -f $[filesUrl]/manifests/operator-crds.yaml kubectl create -f $[filesUrl]/manifests/tigera-operator.yaml diff --git a/calico-enterprise/getting-started/install-on-clusters/rke2.mdx b/calico-enterprise/getting-started/install-on-clusters/rke2.mdx index 86e4afd16a..b057d5db73 100644 --- a/calico-enterprise/getting-started/install-on-clusters/rke2.mdx +++ b/calico-enterprise/getting-started/install-on-clusters/rke2.mdx @@ -54,6 +54,12 @@ The geeky details of what you get: 1. Install the Tigera Operator and custom resource definitions. + :::note[CRD mode] + + This install uses the aggregation API server (the operator installs the v1 CRDs from `operator-crds.yaml`). New installs can instead use native v3 CRD mode, where `projectcalico.org/v3` is served directly by CRDs with no aggregation API server (requires Kubernetes 1.32+). To use it, install with [Helm](./kubernetes/helm.mdx) or see [Native v3 CRDs](../../operations/native-v3-crds.mdx). + + ::: + ```bash kubectl create -f $[filesUrl]/manifests/operator-crds.yaml kubectl create -f $[filesUrl]/manifests/tigera-operator.yaml diff --git a/calico-enterprise/getting-started/install-on-clusters/windows-calico/rancher.mdx b/calico-enterprise/getting-started/install-on-clusters/windows-calico/rancher.mdx index b9c7cb8c7b..2e9e838b14 100644 --- a/calico-enterprise/getting-started/install-on-clusters/windows-calico/rancher.mdx +++ b/calico-enterprise/getting-started/install-on-clusters/windows-calico/rancher.mdx @@ -29,6 +29,12 @@ The following steps will outline the installation of $[prodname] networking on t 1. Install the Tigera Operator and custom resource definitions. + :::note[CRD mode] + + This install uses the aggregation API server (the operator installs the v1 CRDs from `operator-crds.yaml`). New installs can instead use native v3 CRD mode, where `projectcalico.org/v3` is served directly by CRDs with no aggregation API server (requires Kubernetes 1.32+). To use it, install with [Helm](../kubernetes/helm.mdx) or see [Native v3 CRDs](../../../operations/native-v3-crds.mdx). + + ::: + ```bash kubectl create -f $[filesUrl]/manifests/operator-crds.yaml kubectl create -f $[filesUrl]/manifests/tigera-operator.yaml diff --git a/calico-enterprise/installation/install-calico-enterprise-mke-4k.mdx b/calico-enterprise/installation/install-calico-enterprise-mke-4k.mdx index 3ca41c20a7..a0e3b6802c 100644 --- a/calico-enterprise/installation/install-calico-enterprise-mke-4k.mdx +++ b/calico-enterprise/installation/install-calico-enterprise-mke-4k.mdx @@ -88,6 +88,12 @@ In a new terminal, install the $[prodname] CNI. 1. Install the Tigera Operator and custom resource definitions. + :::note[CRD mode] + + This install uses the aggregation API server (the operator installs the v1 CRDs from `operator-crds.yaml`). New installs can instead use native v3 CRD mode, where `projectcalico.org/v3` is served directly by CRDs with no aggregation API server (requires Kubernetes 1.32+). To use it, install with [Helm](../getting-started/install-on-clusters/kubernetes/helm.mdx) or see [Native v3 CRDs](../operations/native-v3-crds.mdx). + + ::: + ```bash kubectl apply --server-side -f $[filesUrl]/manifests/operator-crds.yaml kubectl apply -f $[filesUrl]/manifests/tigera-operator.yaml diff --git a/calico-enterprise/operations/nftables.mdx b/calico-enterprise/operations/nftables.mdx index d3ba164e1d..bde02a5881 100644 --- a/calico-enterprise/operations/nftables.mdx +++ b/calico-enterprise/operations/nftables.mdx @@ -108,6 +108,12 @@ If you're using Kubernetes 1.33 or later, you can create a cluster with kubeadm 1. Install the Tigera Operator and custom resource definitions. + :::note[CRD mode] + + This install uses the aggregation API server (the operator installs the v1 CRDs from `operator-crds.yaml`). New installs can instead use native v3 CRD mode, where `projectcalico.org/v3` is served directly by CRDs with no aggregation API server (requires Kubernetes 1.32+). To use it, install with [Helm](../getting-started/install-on-clusters/kubernetes/helm.mdx) or see [Native v3 CRDs](./native-v3-crds.mdx). + + ::: + ```bash kubectl create -f $[filesUrl]/manifests/operator-crds.yaml kubectl create -f $[filesUrl]/manifests/tigera-operator.yaml From b431b19690422110e1b93fb2986e0ff1984c0b53 Mon Sep 17 00:00:00 2001 From: Casey Davenport Date: Fri, 26 Jun 2026 14:55:05 -0700 Subject: [PATCH 6/9] docs: note CRD mode is preserved on upgrade, with v3 opt-in --- .../upgrade-to-tsee/helm.mdx | 6 ++++++ .../kubernetes-upgrade-tsee/helm.mdx | 6 ++++++ .../upgrading/kubernetes-upgrade.mdx | 18 ++++++++++++++++++ 3 files changed, 30 insertions(+) diff --git a/calico-enterprise/getting-started/upgrading/upgrading-calico-to-calico-enterprise/upgrade-to-tsee/helm.mdx b/calico-enterprise/getting-started/upgrading/upgrading-calico-to-calico-enterprise/upgrade-to-tsee/helm.mdx index dbd5a2bfa6..0530ef0655 100644 --- a/calico-enterprise/getting-started/upgrading/upgrading-calico-to-calico-enterprise/upgrade-to-tsee/helm.mdx +++ b/calico-enterprise/getting-started/upgrading/upgrading-calico-to-calico-enterprise/upgrade-to-tsee/helm.mdx @@ -45,6 +45,12 @@ The following steps assume the Calico deployment is installed on `tigera-operato 1. Install the $[prodname] custom resource definitions. + :::note[CRD mode] + + These steps apply to clusters using the aggregation API server, the default for existing and upgraded $[prodname] clusters. Upgrading does not change your cluster's CRD mode. If your cluster uses native v3 CRDs, see [Native v3 CRDs](../../../../operations/native-v3-crds.mdx) before upgrading. + + ::: + ```bash kubectl apply --server-side --force-conflicts -f $[filesUrl]/manifests/operator-crds.yaml kubectl create -f $[filesUrl]/manifests/prometheus-operator-crds.yaml diff --git a/calico-enterprise/getting-started/upgrading/upgrading-enterprise/kubernetes-upgrade-tsee/helm.mdx b/calico-enterprise/getting-started/upgrading/upgrading-enterprise/kubernetes-upgrade-tsee/helm.mdx index 69516120df..bf492e1c8b 100644 --- a/calico-enterprise/getting-started/upgrading/upgrading-enterprise/kubernetes-upgrade-tsee/helm.mdx +++ b/calico-enterprise/getting-started/upgrading/upgrading-enterprise/kubernetes-upgrade-tsee/helm.mdx @@ -71,6 +71,12 @@ These steps differ based on your cluster type. If you are unsure of your cluster 1. Install the $[prodname] custom resource definitions. + :::note[CRD mode] + + These steps apply to clusters using the aggregation API server, the default for existing and upgraded $[prodname] clusters. Upgrading does not change your cluster's CRD mode. If your cluster uses native v3 CRDs, see [Native v3 CRDs](../../../../operations/native-v3-crds.mdx) before upgrading. + + ::: + ```bash kubectl apply --server-side --force-conflicts -f $[filesUrl]/manifests/operator-crds.yaml kubectl apply --server-side --force-conflicts -f $[filesUrl]/manifests/prometheus-operator-crds.yaml diff --git a/calico/operations/upgrading/kubernetes-upgrade.mdx b/calico/operations/upgrading/kubernetes-upgrade.mdx index eb8b81a08d..351f90086f 100644 --- a/calico/operations/upgrading/kubernetes-upgrade.mdx +++ b/calico/operations/upgrading/kubernetes-upgrade.mdx @@ -8,6 +8,12 @@ import AutoHostendpointsMigrate from '@site/calico/_includes/components/AutoHost ## About upgrading $[prodname] +:::note[Your CRD mode is preserved] + +Upgrading does not change your cluster's CRD mode. A cluster using the aggregation API server (v1 CRDs) stays on the aggregation API server; a cluster using native v3 CRDs stays on v3. The operator selects the mode from the CRDs present and never switches an existing cluster. To move from the aggregation API server to native v3 CRDs, see [Migrate to native v3 CRDs](../crd-migration.mdx). + +::: + This page describes how to upgrade to $[version] from $[prodname] v3.15 or later. The procedure varies by datastore type and install method. @@ -50,6 +56,12 @@ owned resources being garbage collected by Kubernetes. kubectl apply --server-side --force-conflicts -f $[manifestsUrl]/manifests/v1_crd_projectcalico_org.yaml ``` + :::note + + The command above applies the v1 CRDs, which is correct for clusters using the aggregation API server (the common case). If your cluster uses native v3 CRDs, substitute `v3_projectcalico_org.yaml` for `v1_crd_projectcalico_org.yaml` in the command above. + + ::: + 1. Run the Helm upgrade: ```bash @@ -72,6 +84,12 @@ owned resources being garbage collected by Kubernetes. kubectl apply --server-side --force-conflicts -f tigera-operator.yaml ``` + :::note + + The command above applies the v1 CRDs, which is correct for clusters using the aggregation API server (the common case). If your cluster uses native v3 CRDs, substitute `v3_projectcalico_org.yaml` for `v1_crd_projectcalico_org.yaml` in the command above. + + ::: + 1. To enable the flow logs API and Calico Whisker (introduced in version 3.30), apply the `Goldmane` and `Whisker` custom resources. :::tip If you plan to use the observability tools in [Calico Cloud Free Tier](/calico-cloud/free/overview), you need to enable Goldmane to provide flow logs to the console. From ed16520ec03f07fed17de368a0944e962c0590d8 Mon Sep 17 00:00:00 2001 From: Casey Davenport Date: Fri, 26 Jun 2026 14:59:51 -0700 Subject: [PATCH 7/9] docs: release note for v3 CRD default --- calico-enterprise/release-notes/index.mdx | 2 ++ calico/release-notes/index.mdx | 2 ++ 2 files changed, 4 insertions(+) diff --git a/calico-enterprise/release-notes/index.mdx b/calico-enterprise/release-notes/index.mdx index 6d0f043247..52bb9bc1f7 100644 --- a/calico-enterprise/release-notes/index.mdx +++ b/calico-enterprise/release-notes/index.mdx @@ -18,6 +18,8 @@ This version of Calico Enterprise is based on [Calico Open Source $[openSourceVe ## New features and enhancements +- Helm 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, and operator manifest installs continue to use the aggregation API server. v3 CRD mode requires Kubernetes 1.32 or later. See [Native v3 CRDs](../operations/native-v3-crds.mdx). + ### Deprecated and removed features ## Technology Preview features diff --git a/calico/release-notes/index.mdx b/calico/release-notes/index.mdx index d2b022f4d6..23460347b7 100644 --- a/calico/release-notes/index.mdx +++ b/calico/release-notes/index.mdx @@ -9,6 +9,8 @@ Learn about the new features, bug fixes, and other updates in this release of $[ ## 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). + ## Technology preview features ## Deprecated and removed features From bdb349b0985f04577a6186aa29460cb694db96b5 Mon Sep 17 00:00:00 2001 From: Casey Davenport Date: Fri, 26 Jun 2026 15:12:40 -0700 Subject: [PATCH 8/9] docs: correct Enterprise native v3 CRD install to Helm, drop nonexistent v3 manifest path --- .../operations/native-v3-crds.mdx | 78 ++----------------- 1 file changed, 5 insertions(+), 73 deletions(-) diff --git a/calico-enterprise/operations/native-v3-crds.mdx b/calico-enterprise/operations/native-v3-crds.mdx index 70c5120e7d..7eaa44faa3 100644 --- a/calico-enterprise/operations/native-v3-crds.mdx +++ b/calico-enterprise/operations/native-v3-crds.mdx @@ -1,5 +1,5 @@ --- -description: Switch Calico Enterprise to native projectcalico.org/v3 CRDs so resources are stored directly as CRDs without the aggregated API server component. +description: New installs of Calico Enterprise use native projectcalico.org/v3 CRDs by default. This page explains how native v3 CRD mode works and how to install with the aggregation API server instead. --- # Native v3 CRDs @@ -44,76 +44,7 @@ import TabItem from '@theme/TabItem'; ### Install $[prodname] with native `projectcalico.org/v3` CRDs -Select the method below based on your preferred installation method. - - - - -1. Add the $[prodname] Helm repo: - - ```bash - helm repo add projectcalico https://docs.tigera.io/calico/charts - ``` - -1. Create the `tigera-operator` namespace: - - ```bash - kubectl create namespace tigera-operator - ``` - -1. Install the v3 CRD chart instead of the default v1 CRD chart: - - ```bash - helm template calico-crds projectcalico/projectcalico.org.v3 --version $[releaseTitle] | kubectl apply --server-side -f - - ``` - - :::note - - This replaces the `crd.projectcalico.org.v1` chart used in the default installation. Do not install both CRD charts. - - ::: - -1. Install the Tigera Operator: - - ```bash - helm install $[prodnamedash] projectcalico/tigera-operator --version $[releaseTitle] --namespace tigera-operator - ``` - - If you have a `values.yaml` with custom configuration: - - ```bash - helm install $[prodnamedash] projectcalico/tigera-operator --version $[releaseTitle] -f values.yaml --namespace tigera-operator - ``` - - - - -1. Install the v3 CRDs: - - ```bash - kubectl create -f $[manifestsUrl]/manifests/v3_projectcalico_org.yaml - ``` - - :::note - - This replaces the `v1_crd_projectcalico_org.yaml` manifest used in the default installation. Do not install both CRD manifests. - - ::: - -1. Install the Tigera Operator: - - ```bash - kubectl create -f $[manifestsUrl]/manifests/tigera-operator.yaml - ``` - -1. Install $[prodname] by creating the necessary custom resources: - - ```bash - kubectl create -f $[manifestsUrl]/manifests/custom-resources.yaml - ``` - - - +On $[prodname], the standard [Helm install](../getting-started/install-on-clusters/kubernetes/helm.mdx) defaults to native `projectcalico.org/v3` CRD mode, so follow that guide to install. Manifest install is not available for v3 on $[prodname]. After installing, complete the following steps: @@ -182,10 +113,11 @@ New installs default to v3 CRD mode. To install in the aggregation API-server mo -Install the v1 CRD chart before the Tigera Operator: +Pull and install the v1 CRD chart before the Tigera Operator: ```bash -helm template calico-crds projectcalico/crd.projectcalico.org.v1 --version $[releaseTitle] | kubectl apply --server-side -f - +helm pull tigera-ee/crd.projectcalico.org.v1 --version $[releaseTitle]$[helmPre] +helm template calico-crds crd.projectcalico.org.v1-$[chart_version_name].tgz | kubectl apply --server-side -f - ``` From b263e522c19fd043f552e2badad0b9b6e8f25daa Mon Sep 17 00:00:00 2001 From: Casey Davenport Date: Fri, 26 Jun 2026 19:08:53 -0700 Subject: [PATCH 9/9] docs: default Enterprise manifest installs to v3 CRD mode --- .../install-on-clusters/docker-enterprise.mdx | 6 +++--- .../install-on-clusters/kubernetes/quickstart.mdx | 6 +++--- .../getting-started/install-on-clusters/rancher.mdx | 6 +++--- .../getting-started/install-on-clusters/rke2.mdx | 6 +++--- .../install-on-clusters/windows-calico/rancher.mdx | 6 +++--- .../upgrade-to-tsee/helm.mdx | 2 +- .../upgrading-enterprise/kubernetes-upgrade-tsee/helm.mdx | 2 +- .../installation/install-calico-enterprise-mke-4k.mdx | 6 +++--- calico-enterprise/operations/native-v3-crds.mdx | 5 ++++- calico-enterprise/operations/nftables.mdx | 6 +++--- calico-enterprise/release-notes/index.mdx | 2 +- 11 files changed, 28 insertions(+), 25 deletions(-) diff --git a/calico-enterprise/getting-started/install-on-clusters/docker-enterprise.mdx b/calico-enterprise/getting-started/install-on-clusters/docker-enterprise.mdx index 5d690c7067..cf8474e217 100644 --- a/calico-enterprise/getting-started/install-on-clusters/docker-enterprise.mdx +++ b/calico-enterprise/getting-started/install-on-clusters/docker-enterprise.mdx @@ -69,14 +69,14 @@ The geeky details of what you get: 1. Install the Tigera Operator and custom resource definitions. - :::note[CRD mode] + :::note[What changed] - This install uses the aggregation API server (the operator installs the v1 CRDs from `operator-crds.yaml`). New installs can instead use native v3 CRD mode, where `projectcalico.org/v3` is served directly by CRDs with no aggregation API server (requires Kubernetes 1.32+). To use it, install with [Helm](./kubernetes/helm.mdx) or see [Native v3 CRDs](../../operations/native-v3-crds.mdx). + New installs now default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. Requires Kubernetes 1.32+. To install with the aggregation API server instead, apply `operator-crds.yaml` in place of `v3_projectcalico_org.yaml`. See [Native v3 CRDs](../../operations/native-v3-crds.mdx). ::: ```bash - kubectl create -f $[filesUrl]/manifests/operator-crds.yaml + kubectl create -f $[filesUrl]/manifests/v3_projectcalico_org.yaml kubectl create -f $[filesUrl]/manifests/tigera-operator.yaml ``` diff --git a/calico-enterprise/getting-started/install-on-clusters/kubernetes/quickstart.mdx b/calico-enterprise/getting-started/install-on-clusters/kubernetes/quickstart.mdx index 87add2d7e9..cc8552750f 100644 --- a/calico-enterprise/getting-started/install-on-clusters/kubernetes/quickstart.mdx +++ b/calico-enterprise/getting-started/install-on-clusters/kubernetes/quickstart.mdx @@ -89,14 +89,14 @@ A Linux host that meets the following requirements. 1. Install the Tigera Operator and custom resource definitions. - :::note[CRD mode] + :::note[What changed] - This install uses the aggregation API server (the operator installs the v1 CRDs from `operator-crds.yaml`). New installs can instead use native v3 CRD mode, where `projectcalico.org/v3` is served directly by CRDs with no aggregation API server (requires Kubernetes 1.32+). To use it, install with [Helm](./helm.mdx) or see [Native v3 CRDs](../../../operations/native-v3-crds.mdx). + New installs now default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. Requires Kubernetes 1.32+. To install with the aggregation API server instead, apply `operator-crds.yaml` in place of `v3_projectcalico_org.yaml`. See [Native v3 CRDs](../../../operations/native-v3-crds.mdx). ::: ```bash - kubectl create -f $[filesUrl]/manifests/operator-crds.yaml + kubectl create -f $[filesUrl]/manifests/v3_projectcalico_org.yaml kubectl create -f $[filesUrl]/manifests/tigera-operator.yaml ``` diff --git a/calico-enterprise/getting-started/install-on-clusters/rancher.mdx b/calico-enterprise/getting-started/install-on-clusters/rancher.mdx index 9da5378b99..856e56ef8a 100644 --- a/calico-enterprise/getting-started/install-on-clusters/rancher.mdx +++ b/calico-enterprise/getting-started/install-on-clusters/rancher.mdx @@ -57,14 +57,14 @@ The geeky details of what you get: 1. Install the Tigera Operator and custom resource definitions. - :::note[CRD mode] + :::note[What changed] - This install uses the aggregation API server (the operator installs the v1 CRDs from `operator-crds.yaml`). New installs can instead use native v3 CRD mode, where `projectcalico.org/v3` is served directly by CRDs with no aggregation API server (requires Kubernetes 1.32+). To use it, install with [Helm](./kubernetes/helm.mdx) or see [Native v3 CRDs](../../operations/native-v3-crds.mdx). + New installs now default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. Requires Kubernetes 1.32+. To install with the aggregation API server instead, apply `operator-crds.yaml` in place of `v3_projectcalico_org.yaml`. See [Native v3 CRDs](../../operations/native-v3-crds.mdx). ::: ```bash - kubectl create -f $[filesUrl]/manifests/operator-crds.yaml + kubectl create -f $[filesUrl]/manifests/v3_projectcalico_org.yaml kubectl create -f $[filesUrl]/manifests/tigera-operator.yaml ``` diff --git a/calico-enterprise/getting-started/install-on-clusters/rke2.mdx b/calico-enterprise/getting-started/install-on-clusters/rke2.mdx index b057d5db73..7b1614fb34 100644 --- a/calico-enterprise/getting-started/install-on-clusters/rke2.mdx +++ b/calico-enterprise/getting-started/install-on-clusters/rke2.mdx @@ -54,14 +54,14 @@ The geeky details of what you get: 1. Install the Tigera Operator and custom resource definitions. - :::note[CRD mode] + :::note[What changed] - This install uses the aggregation API server (the operator installs the v1 CRDs from `operator-crds.yaml`). New installs can instead use native v3 CRD mode, where `projectcalico.org/v3` is served directly by CRDs with no aggregation API server (requires Kubernetes 1.32+). To use it, install with [Helm](./kubernetes/helm.mdx) or see [Native v3 CRDs](../../operations/native-v3-crds.mdx). + New installs now default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. Requires Kubernetes 1.32+. To install with the aggregation API server instead, apply `operator-crds.yaml` in place of `v3_projectcalico_org.yaml`. See [Native v3 CRDs](../../operations/native-v3-crds.mdx). ::: ```bash - kubectl create -f $[filesUrl]/manifests/operator-crds.yaml + kubectl create -f $[filesUrl]/manifests/v3_projectcalico_org.yaml kubectl create -f $[filesUrl]/manifests/tigera-operator.yaml ``` diff --git a/calico-enterprise/getting-started/install-on-clusters/windows-calico/rancher.mdx b/calico-enterprise/getting-started/install-on-clusters/windows-calico/rancher.mdx index 2e9e838b14..b0d1fd21e5 100644 --- a/calico-enterprise/getting-started/install-on-clusters/windows-calico/rancher.mdx +++ b/calico-enterprise/getting-started/install-on-clusters/windows-calico/rancher.mdx @@ -29,14 +29,14 @@ The following steps will outline the installation of $[prodname] networking on t 1. Install the Tigera Operator and custom resource definitions. - :::note[CRD mode] + :::note[What changed] - This install uses the aggregation API server (the operator installs the v1 CRDs from `operator-crds.yaml`). New installs can instead use native v3 CRD mode, where `projectcalico.org/v3` is served directly by CRDs with no aggregation API server (requires Kubernetes 1.32+). To use it, install with [Helm](../kubernetes/helm.mdx) or see [Native v3 CRDs](../../../operations/native-v3-crds.mdx). + New installs now default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. Requires Kubernetes 1.32+. To install with the aggregation API server instead, apply `operator-crds.yaml` in place of `v3_projectcalico_org.yaml`. See [Native v3 CRDs](../../../operations/native-v3-crds.mdx). ::: ```bash - kubectl create -f $[filesUrl]/manifests/operator-crds.yaml + kubectl create -f $[filesUrl]/manifests/v3_projectcalico_org.yaml kubectl create -f $[filesUrl]/manifests/tigera-operator.yaml ``` diff --git a/calico-enterprise/getting-started/upgrading/upgrading-calico-to-calico-enterprise/upgrade-to-tsee/helm.mdx b/calico-enterprise/getting-started/upgrading/upgrading-calico-to-calico-enterprise/upgrade-to-tsee/helm.mdx index 0530ef0655..072f253f53 100644 --- a/calico-enterprise/getting-started/upgrading/upgrading-calico-to-calico-enterprise/upgrade-to-tsee/helm.mdx +++ b/calico-enterprise/getting-started/upgrading/upgrading-calico-to-calico-enterprise/upgrade-to-tsee/helm.mdx @@ -47,7 +47,7 @@ The following steps assume the Calico deployment is installed on `tigera-operato :::note[CRD mode] - These steps apply to clusters using the aggregation API server, the default for existing and upgraded $[prodname] clusters. Upgrading does not change your cluster's CRD mode. If your cluster uses native v3 CRDs, see [Native v3 CRDs](../../../../operations/native-v3-crds.mdx) before upgrading. + These steps apply to clusters using the aggregation API server, the default for existing and upgraded $[prodname] clusters. Upgrading does not change your cluster's CRD mode. If your cluster uses native v3 CRDs, apply `v3_projectcalico_org.yaml` in place of `operator-crds.yaml` below. See [Native v3 CRDs](../../../../operations/native-v3-crds.mdx). ::: diff --git a/calico-enterprise/getting-started/upgrading/upgrading-enterprise/kubernetes-upgrade-tsee/helm.mdx b/calico-enterprise/getting-started/upgrading/upgrading-enterprise/kubernetes-upgrade-tsee/helm.mdx index bf492e1c8b..521c8cff3e 100644 --- a/calico-enterprise/getting-started/upgrading/upgrading-enterprise/kubernetes-upgrade-tsee/helm.mdx +++ b/calico-enterprise/getting-started/upgrading/upgrading-enterprise/kubernetes-upgrade-tsee/helm.mdx @@ -73,7 +73,7 @@ These steps differ based on your cluster type. If you are unsure of your cluster :::note[CRD mode] - These steps apply to clusters using the aggregation API server, the default for existing and upgraded $[prodname] clusters. Upgrading does not change your cluster's CRD mode. If your cluster uses native v3 CRDs, see [Native v3 CRDs](../../../../operations/native-v3-crds.mdx) before upgrading. + These steps apply to clusters using the aggregation API server, the default for existing and upgraded $[prodname] clusters. Upgrading does not change your cluster's CRD mode. If your cluster uses native v3 CRDs, apply `v3_projectcalico_org.yaml` in place of `operator-crds.yaml` below. See [Native v3 CRDs](../../../../operations/native-v3-crds.mdx). ::: diff --git a/calico-enterprise/installation/install-calico-enterprise-mke-4k.mdx b/calico-enterprise/installation/install-calico-enterprise-mke-4k.mdx index a0e3b6802c..0fc966759c 100644 --- a/calico-enterprise/installation/install-calico-enterprise-mke-4k.mdx +++ b/calico-enterprise/installation/install-calico-enterprise-mke-4k.mdx @@ -88,14 +88,14 @@ In a new terminal, install the $[prodname] CNI. 1. Install the Tigera Operator and custom resource definitions. - :::note[CRD mode] + :::note[What changed] - This install uses the aggregation API server (the operator installs the v1 CRDs from `operator-crds.yaml`). New installs can instead use native v3 CRD mode, where `projectcalico.org/v3` is served directly by CRDs with no aggregation API server (requires Kubernetes 1.32+). To use it, install with [Helm](../getting-started/install-on-clusters/kubernetes/helm.mdx) or see [Native v3 CRDs](../operations/native-v3-crds.mdx). + New installs now default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. Requires Kubernetes 1.32+. To install with the aggregation API server instead, apply `operator-crds.yaml` in place of `v3_projectcalico_org.yaml`. See [Native v3 CRDs](../operations/native-v3-crds.mdx). ::: ```bash - kubectl apply --server-side -f $[filesUrl]/manifests/operator-crds.yaml + kubectl apply --server-side -f $[filesUrl]/manifests/v3_projectcalico_org.yaml kubectl apply -f $[filesUrl]/manifests/tigera-operator.yaml ``` diff --git a/calico-enterprise/operations/native-v3-crds.mdx b/calico-enterprise/operations/native-v3-crds.mdx index 7eaa44faa3..eaf6e026ae 100644 --- a/calico-enterprise/operations/native-v3-crds.mdx +++ b/calico-enterprise/operations/native-v3-crds.mdx @@ -44,7 +44,10 @@ import TabItem from '@theme/TabItem'; ### Install $[prodname] with native `projectcalico.org/v3` CRDs -On $[prodname], the standard [Helm install](../getting-started/install-on-clusters/kubernetes/helm.mdx) defaults to native `projectcalico.org/v3` CRD mode, so follow that guide to install. Manifest install is not available for v3 on $[prodname]. +On $[prodname], the standard install guides default to native `projectcalico.org/v3` CRD mode, so follow your preferred method to install: + +- [Helm install](../getting-started/install-on-clusters/kubernetes/helm.mdx) installs the `projectcalico.org.v3` CRD chart. +- [Manifest install](../getting-started/install-on-clusters/kubernetes/quickstart.mdx) applies the `v3_projectcalico_org.yaml` CRD bundle. After installing, complete the following steps: diff --git a/calico-enterprise/operations/nftables.mdx b/calico-enterprise/operations/nftables.mdx index bde02a5881..53fd0d3837 100644 --- a/calico-enterprise/operations/nftables.mdx +++ b/calico-enterprise/operations/nftables.mdx @@ -108,14 +108,14 @@ If you're using Kubernetes 1.33 or later, you can create a cluster with kubeadm 1. Install the Tigera Operator and custom resource definitions. - :::note[CRD mode] + :::note[What changed] - This install uses the aggregation API server (the operator installs the v1 CRDs from `operator-crds.yaml`). New installs can instead use native v3 CRD mode, where `projectcalico.org/v3` is served directly by CRDs with no aggregation API server (requires Kubernetes 1.32+). To use it, install with [Helm](../getting-started/install-on-clusters/kubernetes/helm.mdx) or see [Native v3 CRDs](./native-v3-crds.mdx). + New installs now default to v3 CRD mode: `projectcalico.org/v3` resources are served directly by CRDs, with no aggregation API server. Requires Kubernetes 1.32+. To install with the aggregation API server instead, apply `operator-crds.yaml` in place of `v3_projectcalico_org.yaml`. See [Native v3 CRDs](./native-v3-crds.mdx). ::: ```bash - kubectl create -f $[filesUrl]/manifests/operator-crds.yaml + kubectl create -f $[filesUrl]/manifests/v3_projectcalico_org.yaml kubectl create -f $[filesUrl]/manifests/tigera-operator.yaml ``` diff --git a/calico-enterprise/release-notes/index.mdx b/calico-enterprise/release-notes/index.mdx index 52bb9bc1f7..2686e8e8f6 100644 --- a/calico-enterprise/release-notes/index.mdx +++ b/calico-enterprise/release-notes/index.mdx @@ -18,7 +18,7 @@ This version of Calico Enterprise is based on [Calico Open Source $[openSourceVe ## New features and enhancements -- Helm 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, and operator manifest installs continue to use the aggregation API server. v3 CRD mode requires Kubernetes 1.32 or later. See [Native v3 CRDs](../operations/native-v3-crds.mdx). +- 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). ### Deprecated and removed features