releases
Operator releases
What changed in each release of the in-cluster operator, which permissions it needs, what it sends, and where it runs.
Latest
0.11.0 10 Oct 2026
OpenShift, an optional ServiceMonitor, and signed releases.
Compatibility
- Tested runs end to end in CI on every release
- Supported the same operator path, not run in CI
- Preview new, not yet verified on a live cluster
Cilium
| Item | Status | Since | Notes |
|---|---|---|---|
| Cilium 1.20 | Tested | 0.3.0 | Runs end to end on every release: a kind cluster with Cilium, Hubble Relay and a policy that drops traffic. |
| Hubble Relay, plaintext | Tested | 0.3.0 | The default for open-source Cilium. |
| Workload containment | Tested | 0.7.0 | Needs Kubernetes 1.30 and Cilium 1.15 or later. Since 0.7.5, every release runs it end to end: contain within 30 seconds, a refused forged action, a refused system namespace, and release. |
| Hubble Relay, TLS or mutual TLS | Supported | 0.5.0 | Covered by unit tests with generated certificates. |
| HTTP visibility | Supported | 0.4.0 | Needs a Cilium L7 (http) rule for the traffic you want to see. Covered by unit tests. |
| DNS visibility | Supported | 0.9.0 | Needs a Cilium DNS rule, so lookups go through the DNS proxy. Covered by unit tests. |
Platforms with open-source Cilium
| Item | Status | Since | Notes |
|---|---|---|---|
| Local kind cluster | Tested | 0.3.0 | The end-to-end test environment. |
| Amazon EKS | Supported | 0.3.0 | Cilium in ENI mode or chained with the AWS VPC CNI. |
| Google GKE | Supported | 0.3.0 | A Standard cluster without Dataplane V2. |
| Azure AKS | Supported | 0.3.0 | Created with no network plugin (bring your own CNI). |
| Self-managed | Supported | 0.3.0 | kubeadm, RKE2, k3s or any cluster with Cilium as the CNI. |
| Red Hat OpenShift | Preview | 0.11.0 | Runs under the restricted-v2 SCC. Not yet verified on a live cluster. |
| Oracle OKE | Preview | 0.3.0 | With Cilium installed as the CNI, amd64 or Ampere arm64. Not yet verified on a live cluster. |
Managed Cilium
| Item | Status | Since | Notes |
|---|---|---|---|
| GKE Dataplane V2 | Preview | 0.5.0 | Needs GKE managed Hubble. Not yet verified on a live cluster. |
| AKS Advanced Container Networking Services | Preview | 0.5.0 | Not yet verified on a live cluster. |
Runtime
| Item | Status | Since | Notes |
|---|---|---|---|
| linux/amd64, linux/arm64 | Supported | 0.3.0 | One image for both architectures. |
| Helm 3.8 or later | Supported | 0.3.0 | The chart is published as an OCI artifact. |
| Prometheus Operator | Supported | 0.11.0 | Optional ServiceMonitor. Covered by chart render tests. |
| Signed image and chart | Supported | 0.11.0 | Sigstore keyless signatures, SLSA provenance and an SBOM. |
Release notes
- 0.11.010 Oct 2026
OpenShift, an optional ServiceMonitor, and signed releases.
- On OpenShift the chart leaves the pod's user and group IDs to the restricted-v2 security context constraint instead of fixing them. It detects OpenShift by itself; with helm template or Argo CD, set openshift: true.
- serviceMonitor.enabled=true creates a ServiceMonitor for the Prometheus Operator, scraping the operator's health metrics on /metrics. Off by default.
- The image and chart are signed with Sigstore (keyless cosign) and the image carries SLSA provenance and an SPDX SBOM. The README gives the cosign verify command.
- 0.10.010 Oct 2026
Reports the cluster's Cilium nodes, and the nodes flows came from.
- The inventory lists the Cilium nodes Hubble Relay knows, with each node's Cilium version. When Relay cannot be asked, Cilera keeps what it last knew.
- About every 10 minutes a batch carries the names of the nodes flows came from, so the node count in Cilera matches the cluster.
- No new permissions: the operator already talks to Relay.
Data sent
- Cilium node names and their Cilium version, and the names of the nodes flows came from.
- 0.9.09 Oct 2026
Opt-in DNS visibility, for the DNS view and three DNS threat rules.
- With l7.dns.enabled=true, the operator sends what each workload looked up, grouped by registrable domain (example.co.uk for api.eu.example.co.uk): answered, non-existent, failed and policy-refused lookup counts, how many distinct names, and the length and randomness of the longest label.
- In-cluster and search-path lookups are never recorded. l7.dns.excludeSuffixes adds your internal zones, and l7.dns.namespaces limits recording to the namespaces you name.
- Rows are capped per window, so a noisy workload cannot grow the operator's memory. New metrics: cilera_dns_rows_sent_total and cilera_dns_overflowed_total.
- Off by default. Hubble reports lookups only for pods whose DNS traffic goes through Cilium's DNS proxy, which needs a DNS rule in a Cilium policy.
Data sent
- Only when DNS visibility is on: per workload and domain, lookup counts and up to 3 example names. Any label longer than 16 characters is cut to its first 8 characters and its length. Never full names, answers, query types, the resolver or pod IPs.
- 0.8.18 Oct 2026
Backs off when the workspace is locked.
- When Cilera answers that the workspace is locked, the operator pauses every outbound call and checks once every 15 minutes. Flow windows are dropped rather than buffered, and containments in the cluster are left as they are.
- The locked state shows in /readyz, /status and the cilera_workspace_locked metric.
- After a rejected credential, re-registration backs off from 30 seconds to at most 15 minutes instead of retrying on every batch.
- 0.8.07 Oct 2026
Namespaces and workloads with their labels, for blast radius.
- Sends the cluster's namespaces and workloads with their labels. Network policies select pods by label, so Cilera needs them to tell which workloads a policy covers and what each workload is allowed to reach.
- Covers Deployments, StatefulSets, DaemonSets, CronJobs and standalone Jobs. Checked every 2 minutes, sent when it changes and at least hourly.
- Labels set by controllers on every rollout, such as pod-template-hash, are dropped.
- inventory.excludeLabels drops label keys you name: an exact key, or a prefix ending in / or *. inventory.enabled=false keeps all labels in the cluster, and Cilera then shows observed traffic only.
- On by default.
Permissions
- A ClusterRole with list on namespaces, deployments, statefulsets, daemonsets, cronjobs and jobs. No get, no watch, no writes, and no Pods, Secrets or ConfigMaps.
Data sent
- Of a namespace: its name, uid and labels. Of a workload: its kind, name, namespace, uid, pod template labels and service account name. Annotations, containers, images, environment variables, volumes and status stay in the cluster.
- 0.7.56 Oct 2026
Clean uninstall, and containments that match the cluster.
- helm uninstall needs no extra steps and no hook, so it cannot fail because of Cilera. When the operator stops and finds its own Deployment gone, it tells Cilera once, and Cilera revokes the cluster's ingest token and shows it as uninstalled. A restart, rollout or node drain says nothing.
- The state Secret is owned by the Deployment, so Kubernetes deletes it with the release.
- Containment policies are not removed on uninstall: uninstalling the operator is not a release.
- The policy list now says which containments are still in the cluster, so a containment policy deleted with kubectl is shown as ended in Cilera.
Permissions
- get on the operator's own Deployment, by name.
Data sent
- A one-time notice when the operator is uninstalled. The ids of containment policies still in the cluster.
- 0.7.46 Oct 2026
Containment: guarded, and safe to turn on for every cluster.
- Quarantine is now called containment. Policies are named cilera-containment-* and carry the console containment id.
- kube-system, kube-public, kube-node-lease, the Cilium namespace and the operator's own namespace are never contained: the operator refuses, and the admission policy rejects the write.
- At most 20 new containments per 10 minutes per cluster. Releases are never limited.
- On Kubernetes older than 1.30 the install succeeds with containment off, and the console shows why. On Cilium older than 1.15, new containments are refused with the reason; releases still run.
- The chart default stays off. The values file from the console turns containment on for new clusters, with a switch to leave it off.
Permissions
- Containment policies are now named cilera-containment-*. Otherwise unchanged.
Data sent
- Only when containment is turned on: why it cannot run on this cluster, when it cannot.
- 0.7.36 Oct 2026
Recognises the same cluster after a reinstall or rename.
- Sends the kube-system namespace's UID when it registers, so a reinstall or a rename keeps the same cluster in Cilera.
- If the read is refused, the operator registers without it.
Permissions
- A ClusterRole with get on one object, the kube-system Namespace. Nothing else.
Data sent
- The kube-system namespace UID, at registration.
- 0.7.26 Oct 2026
Install failures explained in one sentence.
- When the operator cannot register or reach Hubble Relay, its last error log line says what is wrong and what to do, so the install command can print it.
- Tokens are never logged, and raw error bodies from Cilera are no longer logged.
- 0.7.16 Oct 2026
The chart finds Cilium and Hubble Relay at install.
- At helm install and helm upgrade, the chart looks for the Cilium DaemonSet in any namespace and for Hubble Relay next to it, so clusters with Cilium outside kube-system need no extra values.
- The lookup uses your own access during the install only; the operator gets no new permission. Values you set still win, and helm template or GitOps renders fall back to kube-system.
- 0.7.06 Oct 2026
Workload quarantine, started from the console.
- An owner can quarantine a compromised workload from the Map: a deny-only Cilium policy cuts its traffic in both directions, and release restores it at once.
- Never automatic. Each quarantine is signed by Cilera, checked by the operator, and started only by an owner who confirms with their password.
- Peers that stay reachable can be chosen: the node, DNS, namespaces, workloads and address ranges.
- A Kubernetes admission policy, installed with the chart, lets the operator write only deny-only quarantine policies. It cannot allow traffic or change your own policies.
- Off by default, and needs Kubernetes 1.30 or later. Older clusters get the same policy to apply with kubectl.
- Quarantine policies are no longer sent with the policy list, so they never appear as rules.
Permissions
- Only when quarantine is turned on: get on Deployments, StatefulSets and DaemonSets, and create, update and delete on CiliumNetworkPolicies, limited by the admission policy to deny-only policies named cilera-quarantine-*.
Data sent
- Only when quarantine is turned on: the result of each quarantine action, and whether quarantine is turned on.
- 0.6.05 Oct 2026
Network policies from the cluster.
- Reads CiliumNetworkPolicy, CiliumClusterwideNetworkPolicy and Kubernetes NetworkPolicy, so the Policies page and compliance checks use what is applied in the cluster.
- The list is checked every 2 minutes and sent when it changes, and at least hourly. A policy deleted in the cluster is removed from Cilera.
- Kinds that are not installed or not readable are skipped and logged once.
- On by default, and can be turned off in the chart values.
Permissions
- A ClusterRole with list on networkpolicies, ciliumnetworkpolicies and ciliumclusterwidenetworkpolicies. No watch, no writes.
Data sent
- Each policy's kind, name, namespace, uid and spec. Labels, annotations and status stay in the cluster.
- 0.5.05 Oct 2026
Hubble Relay over TLS and mutual TLS.
- Connects to Hubble Relay over TLS or mutual TLS, with certificate verification always on and TLS 1.2 minimum.
- Presets for managed Cilium on GKE Dataplane V2 and AKS Advanced Container Networking Services.
- Certificates are re-read every 10 minutes and after a failed connection, so rotation needs no restart.
- Off by default: Relay stays plaintext unless TLS or a preset is configured.
Permissions
- Only when a client certificate Secret is set: get on that one Secret, in its namespace.
- 0.4.03 Oct 2026
Opt-in HTTP visibility.
- Per-endpoint HTTP aggregates: method, path template, status class, request count and latency p50/p95.
- Off by default. Can be limited to chosen namespaces.
- Each request is counted once when Hubble reports it on both sides of a connection.
Data sent
- Only when HTTP visibility is turned on: path templates. Query strings are dropped; IDs, emails, tokens and other identifiers are replaced before anything leaves the cluster. No headers, cookies, bodies or full URLs.
- 0.3.03 Oct 2026
First release.
- Streams Hubble flows from Hubble Relay and sends aggregated workload-to-workload edges once a minute.
- Names the cluster on the other end of cross-cluster traffic, from public load balancer, Ingress and Gateway addresses and the Cilium cluster name, without Cluster Mesh.
- Reports Cilium network facts (datapath, encryption, IPAM, versions, Hubble Relay and Cluster Mesh status) and drop reasons.
- Images for linux/amd64 and linux/arm64.
Permissions
- get and update on its own state Secret, and create in its namespace.
- list on Services, Ingresses and Gateways, for cross-cluster naming. Can be turned off.
- get, by name, on cilium-config and Cilium's DaemonSet and Deployments in the Cilium namespace, for network facts. Can be turned off.
Data sent
- Aggregated flow counts by workload, port and verdict, drop reasons, latency, and an allowlist of normalised Cilium settings.