Skip to main content
This guide shows two ways to change an existing Cilium configuration on a Kubernetes cluster:
  • Update via Helm (recommended when Cilium was installed with Helm).
  • Edit the Cilium ConfigMap directly (useful for quick runtime changes or when Helm was not used).
These instructions assume you have kubectl and, if using Helm, the Helm CLI configured for the cluster.
A presentation slide titled "Updating Cilium Configuration" with a large turquoise curved shape on the right containing the word "Demo." The bottom-left shows a small "© Copyright KodeKloud" attribution.

1 — Verify cluster and Cilium installation

Confirm cluster nodes:
Confirm Cilium pods (all namespaces):
Example (abbreviated) output:
If Cilium was installed with Helm, prefer updating configuration via Helm so your changes are tracked by the release.

Quick comparison: Helm vs ConfigMap editing

  1. Export or open the values.yaml you used for the Helm release and change the values you want.
    Example: enable debug logging by changing:
to:
  1. Confirm the Helm release and namespace (Cilium commonly lives in kube-system):
  1. Apply the updated values with helm upgrade. The -n (namespace) flag must match the existing release:
A successful upgrade will generate and apply new Kubernetes manifests. Example summary:

3 — Update configuration by editing the ConfigMap directly

Cilium stores many runtime options in the cilium-config ConfigMap in the kube-system namespace. Use this method for quick runtime changes or when Cilium was not installed with Helm. Inspect whether a specific flag (e.g., debug) is set:
Example output:
Edit the ConfigMap:
Make required changes in the data: section. Example — disable IPv6: Before:
After:
After saving the edit you should see:
If Cilium is managed by Helm, the cilium-config ConfigMap may be owned by the Helm release. Direct edits with kubectl can be overwritten by future helm upgrade or helm rollback actions. Prefer updating Helm values when possible or coordinate ConfigMap edits with your Helm values.

4 — Restart Cilium components so changes take effect

After modifying the ConfigMap (or after a Helm upgrade), restart the operator and agent so they pick up the new configuration. Restart the operator (Deployment) and the agent (DaemonSet):
Example outputs:
Monitor pod status while they restart:
Wait until the new Cilium pods reach Running status. Init containers may take a short while to complete.
After changing the Cilium ConfigMap, you must restart the operator and agent pods so the new configuration is applied.

5 — Verify the change (example: confirm IPv6 disabled)

Create a test pod:
Describe the test pod to inspect assigned IP(s):
Relevant excerpt showing only an IPv4 address (IPv6 disabled):

Troubleshooting tips

  • If changes do not appear to apply:
    • Verify you edited the correct ConfigMap and namespace.
    • Confirm the Cilium Helm release is not overwriting settings (check helm get values <release> -n <ns>).
    • Check operator and agent logs for errors:
  • For transient issues after restart, allow a few minutes for init containers and datapath programs to reinitialize.

Summary

  • Prefer updating the Helm values.yaml and running helm upgrade when Cilium was installed with Helm—this preserves configuration in the release.
  • Editing the cilium-config ConfigMap is useful for quick runtime changes or on clusters where Cilium was not installed with Helm. After editing, restart the cilium-operator deployment and the cilium daemonset so changes take effect.
  • Always validate changes by creating test pods and checking their assigned IPs and Cilium logs.

Watch Video

Practice Lab