Files
kubernetes-security-baselin…/local-quickstart/cilium.md
T
swaphb 6c79340d9a
Kube-bench CIS scan / Scan ephemeral K3s cluster (push) Successful in 1m3s
add environment-specific cilium profiles
2026-08-16 20:04:14 -04:00

1.5 KiB

Cilium local profile

The standard k3d profile is the default quick start. This profile is for demonstrating Cilium with kube-proxy replacement.

Create it with:

k3d cluster create --config local-quickstart/k3d-cilium-cluster-config.yaml

Before installing Cilium, set the API server endpoint in a temporary values file. The endpoint must be reachable directly from every node. Do not use the Kubernetes service VIP because kube-proxy is disabled during bootstrap.

kubectl config current-context
kubectl get nodes -o wide
# The profile is composed from common settings and the k3d overlay.
# Replace the endpoint values in a temporary file if installing manually.
helm_values_dir=deployments/cilium/values
helm repo add cilium https://helm.cilium.io/
helm repo update
helm upgrade --install cilium cilium/cilium \
  --namespace kube-system \
  --version 1.20.0 \
  --values "$helm_values_dir/common.yaml" \
  --values "$helm_values_dir/profiles/k3d.yaml" \
  --set k8sServiceHost=REPLACE_WITH_API_SERVER_DNS_OR_PRIVATE_IP \
  --set k8sServicePort=REPLACE_WITH_API_SERVER_PORT
kubectl -n kube-system rollout status daemonset/cilium --timeout=300s
kubectl -n kube-system get pods -l k8s-app=cilium

Install ArgoCD only after Cilium is Ready. Apply deployments/argocd/optional-apps/cilium-k3d.yaml manually only after the endpoint is configured. It is intentionally outside the root app-of-apps watched directory until the cluster has been bootstrapped without kube-proxy.

Delete the profile with:

k3d cluster delete security-baseline-cilium