DOCS-2967: Publish Calico Open Source 3.31.7 - #2939
Conversation
Add the v3.31.7 release entry, bump the version variables, and add the release notes section for the 3.31.7 patch release. Component versions, the operator version (v1.40.15), and the release notes come from the upstream release pull request, projectcalico/calico#13598, which is still open. The bundled Envoy Gateway moves to v1.8.2, so envoyVersion moves with it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
✅ Deploy Preview for calico-docs-preview-next ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview succeeded!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Pull request overview
Publishes documentation updates for the Calico Open Source v3.31.7 patch release under the existing version-3.31 versioned docs set.
Changes:
- Bumps versioned-doc variables (release title, manifests URL, Envoy Gateway version) to v3.31.7 / v1.8.2.
- Adds a new v3.31.7 entry to the top of the 3.31
releases.jsoncomponent/operator version list. - Appends a new “Calico Open Source 3.31.7 bug fix release” section to the 3.31 release notes, including an “Updating” note about the default
cniVersionchange.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| calico_versioned_docs/version-3.31/variables.js | Updates 3.31 docs variables to point at v3.31.7 artifacts and Envoy Gateway v1.8.2. |
| calico_versioned_docs/version-3.31/releases.json | Inserts the v3.31.7 operator and component image versions as the newest release entry. |
| calico_versioned_docs/version-3.31/release-notes/index.mdx | Adds the v3.31.7 release-notes section (bug fixes, other changes, and updating guidance). |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
The first version of this note said the upgrade requires containerd v1.6 or CRI-O v1.24, and that older runtimes fail to add pods to the network. The second half was not sourced. The operator change, tigera/operator#5126, says the opposite: every runtime the operator supports accepts cniVersion 1.0.0, and existing pod attachments replay the configuration they were created with. The note now says what changed, that both install paths and both platforms are affected, and how to pin the version with spec.cni.specVersion, whose accepted values are Auto, 0.3.1, 0.4.0, and 1.0.0. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The Updating section is for actions a reader must take to upgrade. This release needs none. Every runtime it supports accepts cniVersion 1.0.0 and existing pods keep the configuration they were created with, so there is nothing to do. The two paragraphs also documented spec.cni.specVersion, which is a new Installation field, not an upgrade step. That field belongs in the Installation API reference, which needs regenerating against the operator this release ships. The default change itself is already in Other changes, in the upstream note for calico 13378. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.
Suppressed comments (3)
calico_versioned_docs/version-3.31/variables.js:20
- The PR description notes Calico v3.31.7 is not tagged upstream yet, but
manifestsUrlis already set to.../calico/v3.31.7. This URL is referenced throughout the v3.31 docs forkubectl create/apply -fandcurlexamples, so merging before the tag exists would publish many broken links. Consider delaying this bump until the upstream tag is available, or temporarily pointmanifestsUrlat the release commit SHA and update to the tag once it is created.
ppa_repo_name: 'calico-3.31',
manifestsUrl: 'https://raw.githubusercontent.com/projectcalico/calico/v3.31.7',
releases,
calico_versioned_docs/version-3.31/release-notes/index.mdx:421
- The PR description indicates the 3.31.7 release date is unsettled (Jira vs upstream notes), but the release notes are being published with a specific date (August 20, 2026). Please confirm the final release date before merge, or clearly mark it as tentative/TBD to avoid publishing an incorrect date.
### Calico Open Source 3.31.7 bug fix release
August 20, 2026
calico_versioned_docs/version-3.31/releases.json:8
- The PR description lists confirming the operator version as a remaining TODO, but this change hard-codes
v1.40.15as the 3.31.7 operator version. To avoid publishing potentially incorrect component data, please confirm the operator version against the finalized release/tag before merge (or mark it as a placeholder until confirmed).
"title": "v3.31.7",
"tigera-operator": {
"image": "tigera/operator",
"registry": "quay.io",
"version": "v1.40.15"
},
Generated with the repo's operator reference target against tigera/operator v1.40.14, which is the tip of release-v1.40 and the line that v1.40.15 will be cut from. Calico 3.31.7 pins v1.40.15. Adds spec.cni.specVersion and the CNISpecVersion enum, which the operator gained in v1.40.14. Also links the dscpMark type, which the older generated file left as plain text. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The regeneration relinked dscpMark to #dscp, an anchor the generator emits no section for. Commit ec7d290 unlinked it on purpose, for DOCS-2979. Restoring that leaves this PR purely additive. The generator will keep relinking it on every run, so the durable fix belongs in the templates or a post-processing step. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated no new comments.
Suppressed comments (3)
calico_versioned_docs/version-3.31/release-notes/index.mdx:443
- This bullet refers to "a multus delegate"; the project name is capitalized as "Multus" elsewhere in the docs (for example, calico_versioned_docs/version-3.31/getting-started/kubernetes/openshift/ovn-to-calico.mdx:121). Consider changing this to "a Multus delegate" for consistent naming.
- The default CNI configuration now declares cniVersion 1.0.0 (previously 0.3.1), enabling Calico as a multus delegate on OpenShift 4.23+. Requires containerd v1.6+ or CRI-O v1.24+. [calico 13378](https://github.com/projectcalico/calico/pull/13378) (@sridhartigera)
calico_versioned_docs/version-3.31/release-notes/index.mdx:441
- The release note bullet lists "grpc v1.82.1"; elsewhere in the docs this is consistently written as "gRPC" (for example, calico_versioned_docs/version-3.31/observability/enable-whisker.mdx:20). Consider updating this to "gRPC v1.82.1" for correct product naming/casing.
This issue also appears on line 443 of the same file.
- Refresh the node-driver-registrar dependency patch to remediate CVEs (grpc v1.82.1, x/net, x/text). [calico 13520](https://github.com/projectcalico/calico/pull/13520) (@skoryk-oleksandr)
calico_versioned_docs/version-3.31/reference/installation/_api.mdx:326
- PR description says only 3 files change and that the Installation API reference update is handled in a separate PR (#2941), but this PR also includes changes to the generated installation API reference here. Either remove this file from this PR (and keep it in #2941), or update the PR description/scope so reviewers understand why the API reference change is included.
| --- | --- |
| `type` _[CNIPluginType](#cniplugintype)_ | Specifies the CNI plugin that will be used in the Calico or Calico Enterprise installation. * For KubernetesProvider GKE, this field defaults to GKE. * For KubernetesProvider AKS, this field defaults to AzureVNET. * For KubernetesProvider EKS, this field defaults to AmazonVPC. * If aws-node daemonset exists in kube-system when the Installation resource is created, this field defaults to AmazonVPC. * For all other cases this field defaults to Calico. For the value Calico, the CNI plugin binaries and CNI config will be installed as part of deployment, for all other values the CNI plugin binaries and CNI config is a dependency that is expected to be installed separately.<br />Default: Calico |
| `ipam` _[IPAMSpec](#ipamspec)_ | (Optional) IPAM specifies the pod IP address management that will be used in the Calico or Calico Enterprise installation. |
| `specVersion` _[CNISpecVersion](#cnispecversion)_ | (Optional) SpecVersion configures the CNI specification version declared in the CNI configuration ("cniVersion") that the operator generates. Auto (the default) lets the operator choose an appropriate version, which may increase across operator upgrades. Pin an explicit version if a chained CNI plugin or container runtime in your environment requires one. Only relevant when using the Calico CNI plugin.<br />Default: Auto |
| `binDir` _string_ | (Optional) BinDir is the path to the CNI binaries directory. If you have changed the installation directory for CNI binaries in the container runtime configuration, please ensure that this field points to the same directory as specified in the container runtime settings. Default directory depends on the KubernetesProvider. * For KubernetesProvider GKE, this field defaults to "/home/kubernetes/bin". * For KubernetesProvider OpenShift, this field defaults to "/var/lib/cni/bin". * Otherwise, this field defaults to "/opt/cni/bin". |

Publishes the docs for the Calico Open Source 3.31.7 patch release. Three files change, all in calico_versioned_docs/version-3.31: releases.json, variables.js, and release-notes/index.mdx.
Tracks https://tigera.atlassian.net/browse/DOCS-2967.
Deploy preview: https://deploy-preview-2939--tigera.netlify.app/calico/3.31/release-notes/
The Installation API reference for this release is a separate PR, #2941.
To do:
Flags: