Overview of Kubernetes resources Cilium installs and how to inspect components, ConfigMaps, Secrets, RBAC, CRDs, DaemonSets, Deployments and optional Hubble observability
In this lesson we inspect the Kubernetes resources that Cilium creates when deployed. You’ll see how Cilium components (agents, Envoy proxies, operator), configuration (ConfigMaps, Secrets), RBAC (Roles / ClusterRoles / Bindings), and CRDs are laid out in the cluster and which commands to use to verify them.
When you change values in your Helm values.yaml and reinstall or upgrade Cilium, those values are populated into these ConfigMaps. The Cilium agent and Envoy pick up configuration from the mounted files; some settings are read at process start and may require a pod restart.
NAME TYPE DATA AGEbootstrap-token-abcdef bootstrap.kubernetes.io/token 6 6h11mcilium-ca Opaque 2 6h1mhubble-server-certs kubernetes.io/tls 3 6h1msh.helm.release.v1.cilium.v1 helm.sh/release.v1 1 6h1m
List ServiceAccounts:
Copy
kubectl get sa -n kube-system
Look for Cilium-related accounts:
Copy
NAME SECRETS AGEcilium 0 6h2mcilium-envoy 0 6h2mcilium-operator 0 6h2m...
Cilium requires specific permissions to interact with cluster resources. These are defined via Roles / ClusterRoles and bound to ServiceAccounts through RoleBindings / ClusterRoleBindings.List Roles:
Cilium installs multiple CRDs used for policy, endpoints, identities, and other Cilium-specific resources:
Copy
kubectl get crd
Example output (trimmed):
Copy
NAME CREATED ATciliumcidrgroups.cilium.io 2025-03-25T21:26:33Zciliumclusterwidenetworkpolicies.cilium.io 2025-03-25T21:26:33Zciliumendpoints.cilium.io 2025-03-25T21:26:33Zciliumexternalworkloads.cilium.io 2025-03-25T21:26:33Zciliumidentities.cilium.io 2025-03-25T21:26:33Z...
Hubble provides observability and flow visibility. If Hubble server/relay was not enabled in Helm values during installation, you will not see Hubble pods/services. Enabling Hubble in your Helm values.yaml creates additional resources (server, relay, certificates, etc.).
ConfigMap and Secret contents are available inside running Cilium containers because the files are mounted as volumes. Updating a ConfigMap updates the file contents inside the pod, but some components only read their config at process start—so you may need to restart pods for those changes to take effect.