> ## 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.

# Installation with Helm

> How to install and configure Cilium with Helm, manage CRDs, customize values, and verify deployment in Kubernetes.

In this lesson we cover how to install Cilium using Helm: adding the chart repository, customizing the installation with a values file, applying any required CRDs, and verifying the deployed resources.

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/3_oH8WobznU4DXye/images/Prep-Course-Cilium-Certified-Associate-CCA-Certification/Installing-Configuring-Cilium/Installation-with-Helm/installing-cilium-with-helm.jpg?fit=max&auto=format&n=3_oH8WobznU4DXye&q=85&s=3b3b1a28dca8f87b3e1809ee27bbbcf4" alt="A blue-green gradient slide with the title &#x22;Installing Cilium With Helm&#x22; centered. A small &#x22;© Copyright KodeKloud&#x22; notice appears in the bottom-left corner." width="1920" height="1080" data-path="images/Prep-Course-Cilium-Certified-Associate-CCA-Certification/Installing-Configuring-Cilium/Installation-with-Helm/installing-cilium-with-helm.jpg" />
</Frame>

## Quick workflow

1. Add the Cilium Helm repository to your local Helm configuration.
2. (Optional) Dump and edit the chart defaults into a values.yaml to customize behavior.
3. Ensure CRDs required by the chart are installed (some chart versions separate CRDs).
4. Install the Cilium chart into the target namespace (create it or use --create-namespace).
5. Inspect the rendered manifests and verify Kubernetes resources are running.

## Prerequisites

* Helm v3 installed and configured.
* kubectl configured for the target cluster.
* Sufficient cluster privileges (cluster-admin or equivalent) to create cluster-scoped resources and CRDs.

## Add the Cilium Helm repository and prepare values

Run these commands to add the official Cilium chart repo and fetch the default values for editing:

```bash theme={null}
# Add the Cilium Helm repository
helm repo add cilium https://helm.cilium.io

# Update local repo cache
helm repo update

# (Optional) Dump chart default values so you can edit them
helm show values cilium/cilium > values.yaml
```

* Edit values.yaml to customize things like operator settings, IPAM mode, enabling Hubble, kube-proxy replacement, node init settings, or image overrides.
* If you want the chart defaults, skip creating or editing values.yaml and install directly.

## CRDs: important note

<Callout icon="warning" color="#FF6B6B">
  Some Cilium chart versions separate CRDs from the main chart. If the chart requires CRDs to be installed separately, apply the CRD manifests or install the cilium-crds chart before installing the main cilium chart. Helm's automatic CRD handling can vary by chart version.
</Callout>

If the chart provides a cilium-crds chart or CRD manifests, install/apply them first. Example (if provided by the chart):

```bash theme={null}
# Example: install CRDs separately if the chart exposes them
helm install cilium-crds cilium/cilium-crds --namespace kube-system --create-namespace
# or apply CRD manifests provided by the chart repository
kubectl apply -f https://raw.githubusercontent.com/cilium/cilium/<version>/install/kubernetes/00-crds.yaml
```

## Install the Cilium chart

Install Cilium into the kube-system namespace (or your preferred namespace). Create the namespace first or use --create-namespace:

```bash theme={null}
# Install Cilium in the kube-system namespace, using any customizations from values.yaml
helm install cilium cilium/cilium --namespace kube-system -f values.yaml
# OR (create namespace automatically)
helm install cilium cilium/cilium --namespace kube-system --create-namespace -f values.yaml
```

You can omit `-f values.yaml` to use the chart defaults.

## Inspect the generated manifests and verify resources

To review what Helm rendered and applied:

```bash theme={null}
# Show the final manifest rendered by Helm for the release "cilium"
helm get manifest cilium -n kube-system
```

To examine live Kubernetes resources created by the chart:

```bash theme={null}
# List Cilium pods and related resources (label may vary by chart version)
kubectl get pods,ds,svc -n kube-system -l k8s-app=cilium

# If that label does not match your installation, list all resources in the namespace
kubectl get all -n kube-system

# Check CRDs created for Cilium
kubectl get crds | grep cilium
```

## Common commands reference

| Task                      | Command / Example                                                          |               |
| ------------------------- | -------------------------------------------------------------------------- | ------------- |
| Add Cilium Helm repo      | `helm repo add cilium https://helm.cilium.io`                              |               |
| Show chart default values | `helm show values cilium/cilium > values.yaml`                             |               |
| Install Cilium            | `helm install cilium cilium/cilium --namespace kube-system -f values.yaml` |               |
| Get rendered manifest     | `helm get manifest cilium -n kube-system`                                  |               |
| List Cilium workloads     | `kubectl get pods,ds,svc -n kube-system -l k8s-app=cilium`                 |               |
| Verify CRDs               | \`kubectl get crds                                                         | grep cilium\` |

## Links and references

* [Cilium Helm repository](https://helm.cilium.io)
* [Cilium documentation](https://docs.cilium.io/)
* [Helm documentation](https://helm.sh/docs/)
* [Kubernetes documentation](https://kubernetes.io/docs/)

You can skip creating a values.yaml to use all chart defaults, or generate and edit the values.yaml to apply non-default configuration changes before installing.

<Callout icon="lightbulb" color="#1CB2FE">
  Ensure you have appropriate cluster permissions (cluster-admin or equivalent) when installing Cilium, since it creates cluster-wide resources and CRDs.
</Callout>

<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/6c872543-3227-4186-90ea-63667adc9995" />
</CardGroup>
