Skip to content

Add tip: set --allocate-node-cidrs=false with Calico IPAM#2589

Merged
ctauchen merged 1 commit intotigera:mainfrom
ctauchen:gh1885
Mar 12, 2026
Merged

Add tip: set --allocate-node-cidrs=false with Calico IPAM#2589
ctauchen merged 1 commit intotigera:mainfrom
ctauchen:gh1885

Conversation

@ctauchen
Copy link
Collaborator

Summary

  • Adds a tip to the Calico IPAM getting-started page explaining that --allocate-node-cidrs=false should be set on the kube-controller-manager when using Calico IPAM
  • Calico IPAM ignores Node.spec.podCIDR, so Kubernetes node CIDR allocation is unnecessary and can produce confusing CIDRNotAvailable events
  • Includes guidance for kubeadm users who need to reconfigure after cluster creation

Applied across all products (Calico, Calico Enterprise, Calico Cloud) and all versions.

Closes #1885

Test plan

  • Verify tip renders correctly on the IPAM getting-started page
  • Confirm the Kubernetes documentation link resolves

🤖 Generated with Claude Code

Closes tigera#1885. When using Calico IPAM, Kubernetes node CIDR allocation is
unnecessary and can produce confusing CIDRNotAvailable events. Add a tip
to the IPAM getting-started page across all products and versions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ctauchen ctauchen requested a review from a team as a code owner March 12, 2026 17:12
Copilot AI review requested due to automatic review settings March 12, 2026 17:12
@netlify
Copy link

netlify bot commented Mar 12, 2026

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

Name Link
🔨 Latest commit 9329231
🔍 Latest deploy log https://app.netlify.com/projects/calico-docs-preview-next/deploys/69b2f4182ca9b800081a49e3
😎 Deploy Preview https://deploy-preview-2589--calico-docs-preview-next.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

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

@netlify
Copy link

netlify bot commented Mar 12, 2026

Deploy Preview succeeded!

Built without sensitive environment variables

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

QR Code

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

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

Because Calico IPAM does not use the Kubernetes node CIDR allocations (`Node.spec.podCIDR`), you can set `--allocate-node-cidrs=false` on the kube-controller-manager.
This prevents Kubernetes from allocating unused node CIDRs and avoids `CIDRNotAvailable` events on nodes.

If you bootstrapped your cluster with kubeadm and passed `--pod-network-cidr`, kubeadm enables node CIDR allocation automatically.
Copy link
Member

Choose a reason for hiding this comment

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

Might want to rephrase this - it sort of implies that you shouldn't pass pod-network-cidr, but that argument is useful for other reasons.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds documentation guidance for Calico IPAM users to disable Kubernetes node CIDR allocation (--allocate-node-cidrs=false) to avoid unused allocations and noisy CIDRNotAvailable events, with kubeadm reconfiguration guidance. This aligns the IPAM getting-started docs across OSS, Enterprise, and Cloud (including versioned docs).

Changes:

  • Add a :::tip explaining why/how to set --allocate-node-cidrs=false when using Calico IPAM.
  • Add kubeadm-specific note about --pod-network-cidr enabling node CIDR allocation and link to Kubernetes reconfiguration docs.

Reviewed changes

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

Show a summary per file
File Description
calico/networking/ipam/get-started-ip-addresses.mdx Adds the new tip to the unversioned Calico OSS IPAM getting-started page.
calico_versioned_docs/version-3.31/networking/ipam/get-started-ip-addresses.mdx Adds the new tip to Calico OSS v3.31 docs.
calico_versioned_docs/version-3.30/networking/ipam/get-started-ip-addresses.mdx Adds the new tip to Calico OSS v3.30 docs.
calico_versioned_docs/version-3.29/networking/ipam/get-started-ip-addresses.mdx Adds the new tip to Calico OSS v3.29 docs.
calico-enterprise/networking/ipam/get-started-ip-addresses.mdx Adds the new tip to the unversioned Calico Enterprise IPAM getting-started page.
calico-enterprise_versioned_docs/version-3.23-1/networking/ipam/get-started-ip-addresses.mdx Adds the new tip to Calico Enterprise v3.23-1 docs.
calico-enterprise_versioned_docs/version-3.22-2/networking/ipam/get-started-ip-addresses.mdx Adds the new tip to Calico Enterprise v3.22-2 docs.
calico-enterprise_versioned_docs/version-3.21-2/networking/ipam/get-started-ip-addresses.mdx Adds the new tip to Calico Enterprise v3.21-2 docs.
calico-enterprise_versioned_docs/version-3.20-2/networking/ipam/get-started-ip-addresses.mdx Adds the new tip to Calico Enterprise v3.20-2 docs.
calico-cloud/networking/ipam/get-started-ip-addresses.mdx Adds the new tip to the unversioned Calico Cloud IPAM getting-started page.
calico-cloud_versioned_docs/version-22-2/networking/ipam/get-started-ip-addresses.mdx Adds the new tip to Calico Cloud v22-2 docs.

Comment on lines +29 to +33
Because Calico IPAM does not use the Kubernetes node CIDR allocations (`Node.spec.podCIDR`), you can set `--allocate-node-cidrs=false` on the kube-controller-manager.
This prevents Kubernetes from allocating unused node CIDRs and avoids `CIDRNotAvailable` events on nodes.

If you bootstrapped your cluster with kubeadm and passed `--pod-network-cidr`, kubeadm enables node CIDR allocation automatically.
See the [Kubernetes documentation](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure/) for instructions on reconfiguring the controller manager after cluster creation.
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

The tip calls this out as "Calico IPAM" and references Node.spec.podCIDR, but later on this page the host-local IPAM section states it uses Node.Spec.PodCIDR. To prevent readers from thinking this applies to host-local too, reword the tip to explicitly scope it to the calico-ipam plugin and use consistent field notation (and optionally mention podCIDRs for dual-stack).

Copilot uses AI. Check for mistakes.
Comment on lines +29 to +33
Because Calico IPAM does not use the Kubernetes node CIDR allocations (`Node.spec.podCIDR`), you can set `--allocate-node-cidrs=false` on the kube-controller-manager.
This prevents Kubernetes from allocating unused node CIDRs and avoids `CIDRNotAvailable` events on nodes.

If you bootstrapped your cluster with kubeadm and passed `--pod-network-cidr`, kubeadm enables node CIDR allocation automatically.
See the [Kubernetes documentation](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure/) for instructions on reconfiguring the controller manager after cluster creation.
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

The new tip says Calico IPAM doesn’t use Node.spec.podCIDR, but later on the page host-local IPAM is documented as using Node.Spec.PodCIDR. To avoid a confusing contradiction, please scope the tip text to the calico-ipam plugin and keep the Node field naming consistent (and optionally mention podCIDRs for dual-stack).

Copilot uses AI. Check for mistakes.
Comment on lines +29 to +33
Because Calico IPAM does not use the Kubernetes node CIDR allocations (`Node.spec.podCIDR`), you can set `--allocate-node-cidrs=false` on the kube-controller-manager.
This prevents Kubernetes from allocating unused node CIDRs and avoids `CIDRNotAvailable` events on nodes.

If you bootstrapped your cluster with kubeadm and passed `--pod-network-cidr`, kubeadm enables node CIDR allocation automatically.
See the [Kubernetes documentation](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure/) for instructions on reconfiguring the controller manager after cluster creation.
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

The tip states Calico IPAM doesn’t use the Kubernetes node CIDR allocation (Node.spec.podCIDR), but the same page later documents host-local IPAM using Node.Spec.PodCIDR. Please clarify the tip applies specifically to the calico-ipam plugin and keep field naming consistent (and optionally mention podCIDRs for dual-stack).

Copilot uses AI. Check for mistakes.
Comment on lines +29 to +33
Because Calico IPAM does not use the Kubernetes node CIDR allocations (`Node.spec.podCIDR`), you can set `--allocate-node-cidrs=false` on the kube-controller-manager.
This prevents Kubernetes from allocating unused node CIDRs and avoids `CIDRNotAvailable` events on nodes.

If you bootstrapped your cluster with kubeadm and passed `--pod-network-cidr`, kubeadm enables node CIDR allocation automatically.
See the [Kubernetes documentation](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure/) for instructions on reconfiguring the controller manager after cluster creation.
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

The tip calls this out as "Calico IPAM" and references Node.spec.podCIDR, but later on this page the host-local IPAM section explicitly states it does use Node.Spec.PodCIDR. To avoid a confusing contradiction, consider rewording the tip to explicitly scope it to the calico-ipam plugin and align the field notation/capitalization (and optionally mention podCIDRs for dual-stack).

Copilot uses AI. Check for mistakes.
Comment on lines +29 to +33
Because Calico IPAM does not use the Kubernetes node CIDR allocations (`Node.spec.podCIDR`), you can set `--allocate-node-cidrs=false` on the kube-controller-manager.
This prevents Kubernetes from allocating unused node CIDRs and avoids `CIDRNotAvailable` events on nodes.

If you bootstrapped your cluster with kubeadm and passed `--pod-network-cidr`, kubeadm enables node CIDR allocation automatically.
See the [Kubernetes documentation](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure/) for instructions on reconfiguring the controller manager after cluster creation.
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

This tip says Calico IPAM doesn’t use Kubernetes node CIDR allocations and references Node.spec.podCIDR, but the same page later describes host-local IPAM using Node.Spec.PodCIDR. To avoid confusion, please explicitly scope the tip to the calico-ipam plugin and keep the Node field notation consistent (and optionally mention podCIDRs for dual-stack).

Copilot uses AI. Check for mistakes.
Comment on lines +29 to +33
Because Calico IPAM does not use the Kubernetes node CIDR allocations (`Node.spec.podCIDR`), you can set `--allocate-node-cidrs=false` on the kube-controller-manager.
This prevents Kubernetes from allocating unused node CIDRs and avoids `CIDRNotAvailable` events on nodes.

If you bootstrapped your cluster with kubeadm and passed `--pod-network-cidr`, kubeadm enables node CIDR allocation automatically.
See the [Kubernetes documentation](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure/) for instructions on reconfiguring the controller manager after cluster creation.
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

This tip is phrased as “Calico IPAM” and references Node.spec.podCIDR, but later the host-local section calls out Node.Spec.PodCIDR as being used. To avoid users thinking the recommendation applies to host-local IPAM too, please reword to explicitly scope it to the calico-ipam plugin and use consistent Node field notation (and optionally mention podCIDRs for dual-stack).

Copilot uses AI. Check for mistakes.
Comment on lines +29 to +33
Because Calico IPAM does not use the Kubernetes node CIDR allocations (`Node.spec.podCIDR`), you can set `--allocate-node-cidrs=false` on the kube-controller-manager.
This prevents Kubernetes from allocating unused node CIDRs and avoids `CIDRNotAvailable` events on nodes.

If you bootstrapped your cluster with kubeadm and passed `--pod-network-cidr`, kubeadm enables node CIDR allocation automatically.
See the [Kubernetes documentation](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure/) for instructions on reconfiguring the controller manager after cluster creation.
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

This tip references Node.spec.podCIDR and is phrased generally as “Calico IPAM”, but later the same page describes host-local IPAM using Node.Spec.PodCIDR. Please make the tip explicitly about the calico-ipam plugin and align the Node field notation/capitalization (and optionally mention podCIDRs for dual-stack).

Copilot uses AI. Check for mistakes.
Comment on lines +29 to +33
Because Calico IPAM does not use the Kubernetes node CIDR allocations (`Node.spec.podCIDR`), you can set `--allocate-node-cidrs=false` on the kube-controller-manager.
This prevents Kubernetes from allocating unused node CIDRs and avoids `CIDRNotAvailable` events on nodes.

If you bootstrapped your cluster with kubeadm and passed `--pod-network-cidr`, kubeadm enables node CIDR allocation automatically.
See the [Kubernetes documentation](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure/) for instructions on reconfiguring the controller manager after cluster creation.
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

This new tip is easy to misread as applying to all IPAM modes, but later the host-local IPAM section says it uses Node.Spec.PodCIDR. Please rephrase the tip to explicitly apply only when using the calico-ipam plugin and use consistent Node field notation (and optionally mention podCIDRs for dual-stack).

Copilot uses AI. Check for mistakes.
Comment on lines +29 to +33
Because Calico IPAM does not use the Kubernetes node CIDR allocations (`Node.spec.podCIDR`), you can set `--allocate-node-cidrs=false` on the kube-controller-manager.
This prevents Kubernetes from allocating unused node CIDRs and avoids `CIDRNotAvailable` events on nodes.

If you bootstrapped your cluster with kubeadm and passed `--pod-network-cidr`, kubeadm enables node CIDR allocation automatically.
See the [Kubernetes documentation](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure/) for instructions on reconfiguring the controller manager after cluster creation.
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

The new tip says Calico IPAM doesn’t use Node.spec.podCIDR, but later this page documents host-local IPAM using Node.Spec.PodCIDR. To avoid readers thinking the tip applies to host-local (or Calico generally), please scope it explicitly to the calico-ipam plugin and use consistent Node field notation (and optionally mention podCIDRs for dual-stack).

Copilot uses AI. Check for mistakes.
Comment on lines +29 to +33
Because Calico IPAM does not use the Kubernetes node CIDR allocations (`Node.spec.podCIDR`), you can set `--allocate-node-cidrs=false` on the kube-controller-manager.
This prevents Kubernetes from allocating unused node CIDRs and avoids `CIDRNotAvailable` events on nodes.

If you bootstrapped your cluster with kubeadm and passed `--pod-network-cidr`, kubeadm enables node CIDR allocation automatically.
See the [Kubernetes documentation](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure/) for instructions on reconfiguring the controller manager after cluster creation.
Copy link

Copilot AI Mar 12, 2026

Choose a reason for hiding this comment

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

This new tip references Node.spec.podCIDR and is phrased as “Calico IPAM”, but later the page states host-local IPAM uses Node.Spec.PodCIDR. Please reword the tip to explicitly apply only to the calico-ipam plugin and align the Node field notation/capitalization (and optionally mention podCIDRs for dual-stack).

Copilot uses AI. Check for mistakes.
@ctauchen ctauchen merged commit 5219799 into tigera:main Mar 12, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

set --allocate-node-cidrs=false on the Kubernetes controller manager when using Calico IPAM

3 participants