> ## Documentation Index
> Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Demo Installation with Helm

> Guide to installing and verifying Cilium on Kubernetes using Helm, customizing values including IPv6, and checking runtime status and manifests

In this lesson we demonstrate how to install Cilium onto a Kubernetes cluster using Helm. The guide covers adding the Cilium Helm repository, inspecting and customizing chart values, enabling optional IPv6 support, installing the chart into the cluster, and verifying the installation and runtime status.

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/3_oH8WobznU4DXye/images/Prep-Course-Cilium-Certified-Associate-CCA-Certification/Installing-Configuring-Cilium/Demo-Installation-with-Helm/install-celium-helm-demo-slide-kodekloud.jpg?fit=max&auto=format&n=3_oH8WobznU4DXye&q=85&s=3f8b4b950d7ffdcbe7ae137fe29928ae" alt="A presentation slide reading &#x22;Install Celium Helm&#x22; on the left with a large turquoise curved shape on the right containing the word &#x22;Demo.&#x22; Small &#x22;© Copyright KodeKloud&#x22; text appears in the bottom-left." width="1920" height="1080" data-path="images/Prep-Course-Cilium-Certified-Associate-CCA-Certification/Installing-Configuring-Cilium/Demo-Installation-with-Helm/install-celium-helm-demo-slide-kodekloud.jpg" />
</Frame>

Prerequisites

* A Kubernetes cluster with sufficient privileges to install cluster-wide addons (RBAC/ClusterRole/ClusterRoleBinding privileges).
* Helm installed locally (Helm v3+ recommended).
* kubectl configured to target your cluster context.

| Requirement        | Purpose                                           | Example / Link                                                                     |
| ------------------ | ------------------------------------------------- | ---------------------------------------------------------------------------------- |
| Kubernetes cluster | Target platform for Cilium                        | [Kubernetes docs](https://kubernetes.io/)                                          |
| Helm (v3+)         | Package manager used to install the Cilium chart  | [https://helm.sh](https://helm.sh)                                                 |
| kubectl            | Inspect cluster resources and verify installation | [https://kubernetes.io/docs/tasks/tools/](https://kubernetes.io/docs/tasks/tools/) |

If you need to install Helm locally, follow the official instructions at [https://helm.sh](https://helm.sh). A common manual installation sequence:

```bash theme={null}
# Example: extract and move helm binary (adjust filename for the version you downloaded)
tar -zxvf helm-v3.0.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/helm
helm help
```

Add the Cilium Helm repository
Cilium publishes an official Helm chart. Add the repo and confirm it’s available to your Helm client:

```bash theme={null}
helm repo add cilium https://helm.cilium.io/
helm repo update
helm repo list
```

Expected output (example):

```text theme={null}
NAME    URL
cilium  https://helm.cilium.io/
```

Inspect chart default values
Before installing, download the chart's default values so you can review and override settings as required. This helps you understand tunables such as datapath mode, encryption, IPv6, Hubble, etc.

```bash theme={null}
helm show values cilium/cilium > values.yaml
```

The generated values.yaml contains many configuration options with inline comments. Example excerpts:

```yaml theme={null}
clustermeshApiserver:
  create: true
  name: clustermesh-apiserver
  automount: true
  annotations: {}
clustermeshcertgen:
  create: true
  name: clustermesh-apiserver-generate-certs

commonLabels: {}
upgradeCompatibility: null

debug:
  enabled: false
```

Enable IPv6 (optional)
If you want IPv6 support, edit values.yaml and enable the top-level IPv6 block for the Cilium agent. There are several IPv6-related settings across the file — ensure you edit the top-level agent configuration (not only example snippets).

```yaml theme={null}
ipv4:
  enabled: true
ipv6:
  enabled: true
```

Tip: Search values.yaml for the primary Cilium agent section (look for comments or headings around "Agent configuration") to make sure you modify the intended top-level options.

Install Cilium with Helm
Install the chart into the kube-system namespace, supplying your modified values.yaml. Optionally pin a chart version with --version.

```bash theme={null}
helm install cilium cilium/cilium --namespace kube-system -f values.yaml --version 1.17.2
```

Example install output:

```text theme={null}
NAME: cilium
LAST DEPLOYED: Tue Mar 25 21:26:25 2025
NAMESPACE: kube-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
You have successfully installed Cilium with Hubble.

Your release version is 1.17.2.

For any further help, visit https://docs.cilium.io/en/v1.17/gettinghelp
```

Verify the release
Confirm the Helm release exists in the kube-system namespace:

```bash theme={null}
helm list -n kube-system
```

View the rendered Kubernetes manifests that Helm applied
To inspect the fully rendered manifest for auditing or troubleshooting:

```bash theme={null}
helm get manifest cilium -n kube-system
```

Example snippet from the rendered manifest:

```yaml theme={null}
app.kubernetes.io/part-of: cilium
app.kubernetes.io/name: cilium-operator
spec:
  replicas: 2
  selector:
    matchLabels:
      io.cilium/app: operator
      name: cilium-operator
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 50%
    type: RollingUpdate
  template:
    metadata:
      annotations:
        prometheus.io/port: "9963"
```

Check Cilium runtime status
Verify pods, daemonsets, and deployments in kube-system to ensure agents and operator are running:

```bash theme={null}
kubectl -n kube-system get pods -l k8s-app=cilium
kubectl -n kube-system get daemonsets,deployments -l k8s-app=cilium
```

If you have the Cilium CLI installed, it provides a concise view of component health:

```bash theme={null}
cilium status
```

Typical status output shows agent and operator availability, Hubble status, Envoy proxy counts, and any health issues.

<Callout icon="lightbulb" color="#1CB2FE">
  If you are deploying to a managed Kubernetes service (EKS, GKE, AKS), consult the Cilium documentation for platform-specific prerequisites and recommended settings (for example, node taints/labels, node groups, or specific annotations). These are documented in the Cilium installation guide: [https://docs.cilium.io/en/v1.17/](https://docs.cilium.io/en/v1.17/)
</Callout>

Quick reference — common verification commands

| Command                                           | Purpose                                                      |
| ------------------------------------------------- | ------------------------------------------------------------ |
| kubectl -n kube-system get pods -l k8s-app=cilium | List Cilium pods and their status                            |
| kubectl -n kube-system get daemonsets,deployments | Check daemonsets & deployments in kube-system                |
| helm list -n kube-system                          | Confirm Helm release presence and status                     |
| helm get manifest cilium -n kube-system           | View rendered manifest applied by Helm                       |
| cilium status                                     | High-level Cilium component health (if cilium CLI installed) |

Wrapping up
Summary of the Helm-based installation flow:

1. Ensure Helm is installed and kubectl is configured for your cluster.
2. Add and update the Cilium Helm repository.
3. Inspect the chart defaults and adjust values.yaml for your needs (IPv6, datapath, Hubble, etc.).
4. Install the chart into your target namespace with Helm.
5. Verify the Helm release and inspect manifests; confirm runtime status with kubectl and cilium CLI.

For production deployments or cloud-managed clusters, follow the platform-specific guidance in the Cilium docs: [https://docs.cilium.io/en/v1.17/](https://docs.cilium.io/en/v1.17/)

<CardGroup>
  <Card title="Watch Video" icon="video" cta="Learn more" href="https://learn.kodekloud.com/user/courses/cilium-certified-associate-cca/module/2fded455-95ea-4183-8cce-f17de214691f/lesson/e9ff683d-d77f-4eaa-bd54-489ee9f27d2f" />
</CardGroup>
