kubernetes-sigs / kubernetes-sigs/node-readiness-controller

Interaction between Cilium bootstrap taint and Node Readiness Controller

Open
#121 6 comments 0 reactions 1 assignee View on GitHub

@arnab-logs is already working on this.

Since Feb 10, 2026.

Dominant language
Go
Stars
164
Forks
75
Avg merge
8d 23h
Merged PRs (30d)
13

Description

While integrating Node Readiness Controller (NRC) with Cilium-managed clusters, we observed potential overlap in bootstrap taint management.

Background:

When running Node Readiness Controller (NRC) in clusters that use Cilium as the CNI, Cilium currently manages a bootstrap taint via a flag:
node.cilium.io/agent-not-ready:NoSchedule

Behavior:

  • Cilium adds this taint during node initialization.
  • It removes the taint once the Cilium agent is ready.
  • It also sets the built-in Kubernetes node condition:
    NetworkUnavailable=False

Configuration Option:

The taint key is configurable via: --agent-not-ready-taint-key
This allows overriding the default key (e.g. to readiness.k8s.io/network-not-ready).

Image

Potential Overlap:

If users configure NRC to enforce network readiness via taints and Cilium’s bootstrap taint management remains enabled, then both components may attempt to manage taints for the same network readiness domain.

One possible approach to resolve this would be:
If users choose to manage this taint with NRC, they could disable Cilium’s taint management component so that NRC becomes the sole manager of the network readiness taint.

Motivation:

We are working toward standardizing readiness taints under a fixed prefix (e.g. readiness.k8s.io/*) so that:

  • Readiness taints can be categorized consistently.
  • Autoscaling components (e.g. Cluster Autoscaler) can treat readiness taints differently from permanent taints.
  • We avoid per-vendor allow-listing in autoscaling configurations.
  • UX improves when integrating readiness enforcement across components.

Since Cilium already allows overriding the taint key via --agent-not-ready-taint-key it appears technically possible to align the bootstrap taint with a standardized readiness prefix without requiring changes to Cilium itself.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.