Repository navigation
DOCS-3001: Add an upgrade notes page for 3.33 #3044
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 2 commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
f253198
DOCS-3001: Add an upgrade notes page
ctauchen 02e53e1
DOCS-3001: Scope the upgrade guides to N-2
ctauchen 3aeaa41
DOCS-3001: Say the supported upgrade range without naming releases
ctauchen a7d3c8e
DOCS-3001: Correct and extend the upgrade notes after review
ctauchen 681e1aa
DOCS-3001: Act on the Copilot review
ctauchen b6f180e
DOCS-3001: Drop version floors that sit below the supported range
ctauchen a8154ec
DOCS-3001: Group the notes by the release that introduced them
ctauchen 5ac6e43
DOCS-3001: Drop the release groupings from the page
ctauchen File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
84 changes: 0 additions & 84 deletions
84
calico_versioned_docs/version-3.33/_includes/components/HostEndpointsUpgrade.js
This file was deleted.
Oops, something went wrong.
7 changes: 7 additions & 0 deletions
7
..._versioned_docs/version-3.33/_includes/partials/_upgrade-supported-versions.mdx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| :::note[Supported upgrade paths] | ||
|
|
||
| You can upgrade to $[version] from either of the two previous releases, v3.31 and v3.32. | ||
|
|
||
| To upgrade from an earlier release, upgrade to v3.32 first, following the upgrade documentation for that release. | ||
|
|
||
| ::: | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
133 changes: 133 additions & 0 deletions
133
calico_versioned_docs/version-3.33/operations/upgrading/upgrade-notes.mdx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,133 @@ | ||
| --- | ||
| description: Changes in each Calico Open Source release that need your attention before or during an upgrade, with the action to take for each. | ||
| title: Upgrade notes | ||
| --- | ||
|
|
||
| # Upgrade notes | ||
|
|
||
| Review this page before you upgrade. | ||
| It lists the changes in each release that alter behavior you may depend on, and says what to do about each one. | ||
| Notes are grouped by the release that introduced them, so if you are skipping releases, read every group between the version you are on and the version you are upgrading to. | ||
|
Copilot marked this conversation as resolved.
Outdated
|
||
|
|
||
| Each note says who it affects, what changes, and what you need to do. | ||
| Where a note applies only to some upgrade paths, it says so. | ||
|
|
||
| ## Upgrading to 3.33 | ||
|
Copilot marked this conversation as resolved.
Outdated
|
||
|
|
||
| These apply when you upgrade to 3.33 from an earlier release. | ||
|
|
||
| ### Calico ships as a single image | ||
|
|
||
| This affects you if you mirror $[prodname] images into a private registry, pin image names or digests, or scan specific images. | ||
|
|
||
| Most components now ship inside one `calico/calico` image. | ||
| The images it replaces are not published for 3.33 at all, so a mirror or a pinned reference to `calico/typha`, `calico/cni`, `calico/ctl`, `calico/apiserver`, `calico/kube-controllers` or `calico/goldmane` fails to pull after the upgrade. | ||
| Release artifacts changed for the same reason. | ||
|
|
||
| 1. **Before you upgrade**, mirror `calico/calico` into your registry. | ||
| 2. Update any image pins, digests, or scanner configuration that name the replaced images. | ||
| 3. Upgrade $[prodname]. | ||
|
|
||
| ### Limits on policy rules and selectors | ||
|
|
||
| This affects you if you generate $[prodname] network policy programmatically, or have policies with very large rule lists, address lists, or selectors. | ||
|
|
||
| $[prodname] network policy types now declare size limits in their CRD schemas, which the Kubernetes API server enforces on every write: | ||
|
|
||
| | Field | Limit | | ||
| | --- | --- | | ||
| | Ingress rules, egress rules | 1024 each | | ||
| | `selector`, `notSelector`, `namespaceSelector`, `serviceAccountSelector` | 1024 characters | | ||
| | `nets`, `notNets` | 256 entries per rule | | ||
| | `ports`, `notPorts` | 50 entries per rule | | ||
| | HTTP `methods`, `paths` | 20 entries per rule | | ||
|
|
||
| Policies already stored in the datastore keep working. | ||
| The limits apply when a policy is written, so a policy that exceeds one is rejected the next time anything updates it, including your own tooling. | ||
|
|
||
| 1. **Before you upgrade**, check whether any existing policy exceeds a limit, and whether the tooling that generates your policy can produce one that does. | ||
| 2. Split any policy that exceeds a limit, or narrow the field that does. | ||
| 3. Upgrade $[prodname]. | ||
|
|
||
| ### Calico Ingress Gateway proxies move namespace | ||
|
|
||
| :::warning[Breaking change] | ||
|
|
||
| Gateway proxies move namespace on upgrade, and merged gateways are no longer supported. | ||
|
|
||
| ::: | ||
|
|
||
| This affects you if you use $[prodname] Ingress Gateway. | ||
|
|
||
| Each gateway's proxy now runs in the same namespace as its `Gateway`, and the controller moves to `calico-system`. | ||
| Existing proxies move out of the `tigera-gateway` namespace, so anything pinned to `tigera-gateway` — network policy, monitoring, and external DNS — stops matching them. | ||
| Merged gateways (`mergeGateways: true`) are no longer supported, so each gateway gets its own load balancer. | ||
|
|
||
| 1. **Before you upgrade**, if you run a global default deny policy, create a network policy in each Gateway's namespace that allows the proxy pods, so they can start as soon as they move. For the policy, see [Create an ingress gateway](../../networking/ingress-gateway/create-ingress-gateway.mdx). | ||
| 2. Upgrade $[prodname]. | ||
| 3. Re-point monitoring and external DNS from `tigera-gateway` to each Gateway's namespace. If you used merged gateways, plan for one load balancer, DNS record, and certificate per gateway. | ||
|
|
||
| ### Calico Ingress Gateway requires Kubernetes 1.33 | ||
|
|
||
| This affects you if you use $[prodname] Ingress Gateway. | ||
| It does not change the Kubernetes versions $[prodname] itself supports, which remain 1.32, 1.33 and 1.34. | ||
|
|
||
| The bundled Envoy Gateway moves to v1.9.1, which raises its own minimum Kubernetes version to 1.33. | ||
|
|
||
| 1. **Before you upgrade**, if you use Ingress Gateway on Kubernetes 1.32, upgrade the cluster to 1.33 or later. | ||
|
Copilot marked this conversation as resolved.
Outdated
|
||
|
|
||
| ### eBPF data plane requires kernel 5.10 or later | ||
|
|
||
| This affects you if you run the eBPF data plane on nodes with a kernel earlier than 5.10, or a kernel built without BTF and CO-RE support. | ||
|
|
||
| The runtime fallback paths for older kernels are gone. | ||
| Instead of degrading, $[prodname] now reports a clear health message and does not program the data plane on an unsupported node. | ||
|
|
||
| 1. **Before you upgrade**, check the kernel version and BTF support on every node running the eBPF data plane. | ||
| 2. Upgrade nodes that are too old, or move them to the standard data plane. | ||
| 3. Upgrade $[prodname]. | ||
|
|
||
| Check the [release notes](../../release-notes/index.mdx) for known issues affecting specific kernel versions before you plan the upgrade. | ||
|
|
||
| ### Felix metrics endpoint no longer requires client certificates by default | ||
|
|
||
| This affects you if you scrape the Felix Prometheus metrics endpoint and have never set `prometheusMetricsClientAuth`. | ||
|
|
||
| The default changes from `RequireAndVerifyClientCert` to `NoClientCert`. | ||
| Nothing fails, and no scrape breaks. | ||
| The endpoint simply stops requiring a client certificate, so a protection you had by default is gone after the upgrade. | ||
|
|
||
| 1. **Before you upgrade**, if you rely on that protection, set `prometheusMetricsClientAuth: RequireAndVerifyClientCert` explicitly in your `FelixConfiguration`. | ||
|
|
||
| ### FIPS mode is removed | ||
|
|
||
| This affects you if you run the `-fips` image variants. | ||
|
|
||
| $[prodname] no longer publishes `-fips` tagged images or boringcrypto binaries. | ||
|
Check failure on line 106 in calico_versioned_docs/version-3.33/operations/upgrading/upgrade-notes.mdx
|
||
| FIPS mode was deprecated in 3.30. | ||
| The `fipsMode` field remains on the operator Installation API for now, because that field belongs to the operator and is removed separately. | ||
|
|
||
| 1. **Before you upgrade**, move off the `-fips` images. | ||
|
|
||
| ### New installs default to native v3 CRDs | ||
|
|
||
| No action is required. This note is here because the default changed, not because an upgrade changes your cluster. | ||
|
|
||
| An upgrade never switches an existing cluster between the aggregation API server and native v3 CRDs. | ||
| The operator selects the mode from the CRDs already present. | ||
| What changed is the default for a brand new install, which is now v3 CRD mode, and which requires Kubernetes 1.32 or later. | ||
|
Copilot marked this conversation as resolved.
Outdated
|
||
|
|
||
| 1. Upgrade $[prodname]. Your cluster keeps the mechanism it already uses. | ||
| 2. To move an existing cluster onto native v3 CRDs deliberately, follow [Migrate from API server to native CRDs](../crd-migration.mdx). The datastore is briefly locked during the migration. | ||
|
|
||
| ### OpenStack no longer resyncs on a timer | ||
|
|
||
| This affects you if you run $[prodname] for OpenStack and relied on the periodic resync to recover from drift. | ||
|
|
||
| The periodic resync is gone. | ||
| `resync_interval_secs` and `resync_max_interval_secs` are now no-ops, retained only so that an existing `neutron.conf` does not break. | ||
| The driver resyncs once when the Neutron server starts, and on demand after that. | ||
|
|
||
| 1. Upgrade $[prodname]. | ||
| 2. Remove `resync_interval_secs` and `resync_max_interval_secs` from `neutron.conf` at your convenience. | ||
| 3. Run `calico-resync` when you need an immediate reconciliation. To drive reconciliation entirely by hand, set `startup_resync = never`. See [Resync between Neutron and etcd](../../networking/openstack/resync.mdx). | ||
|
Copilot marked this conversation as resolved.
Outdated
|
||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.