Observability
Added
- Add
loki.write.requestMirror, an optional RequestMirror filter on the Loki write route. Disabled by default. - Add opt-in Basic Auth read routes for Mimir and Loki on a dedicated hostname (
basicAuth.*, disabled by default).
Added
- Brand Grafana with the Giant Swarm logo mark and favicon, by mounting the assets in
helm/grafana/branding over the ones the Grafana image ships. Set
grafana.extraConfigmapMounts to [] to get Grafana’s own branding back. - Add
make branding-verify (run by the verify-branding CI job) and make branding-update, which
keep the hashed logo path in sync with the Grafana image and generate the pod annotation that
rolls the deployment when a branding asset changes.
Changed
- Upgrade grafana chart: 12.10.3 => 12.11.2
- Upgrade grafana (appVersion): 13.1.2 => 13.2.0
Changed
- Upgrade upstream loki helm chart from v13 (13.7.2) to v18 (18.10.1). Loki app version goes from 3.7.2 to 3.7.6.
- Breaking:
loki.networkPolicy.flavor is gone. Upstream dropped Cilium network policy support, so this chart renders the CiliumNetworkPolicy resources itself, switched by the new top-level ciliumNetworkPolicy.enabled (default true). Set it to false where you used flavor: kubernetes. The standard NetworkPolicy resources now render alongside them. - The ServiceMonitor is no longer gated on the prometheus-operator CRD being present: set
loki.monitoring.serviceMonitor.enabled: false on clusters without it. - The built-in MinIO subchart is deprecated upstream:
loki.minio.enabled now also needs loki.ignoreMinioDeprecation: true, and goes away on 2026-10-31.
Added
- Add
startsAt, endsAt, and duration fields to the v1alpha2 Silence CRD for explicit silence scheduling. duration accepts weeks (w), days (d), hours (h), minutes (m), and seconds (s), each at most once and ordered largest to smallest: "7d", "2w", "1d12h". endsAt and duration are mutually exclusive. When neither is set, the valid-until annotation is used as a fallback.
Changed
- Regenerate
.github/workflows/zz_generated.*.yaml via devctl to use the centralized reusable workflow, removing the Node-20 mindsers/changelog-reader-action dependency. - Update Go dependencies, which resolves CVE-2026-63209 (
github.com/klauspost/compress) and CVE-2026-56852 (golang.org/x/text) and removes their .nancy-ignore entries.
Fixed
- Quote the
= scalars in the generated matchType CRD schema so the rendered chart parses under PyYAML (unblocks the HelmTemplateValidator step added in app-build-suite 2.2.0). - Fix various CVEs by updating dependencies:
- Skip failing CI jobs using private secrets for external contributions from fork
- Replace deprecated controller-runtime scheme.Builder with apimachinery runtime.NewSchemeBuilder
- Fix
gosec, goconst and errcheck linter errors in tests
Changed
- Upgrade upstream loki helm chart from v13.5.0 to v13.7.2. Loki app version goes from 3.7.1 to 3.7.2 (CVE fixes, ruler panic fix, S3 SDK bump).
k8s-sidecar bumped 2.7.1 → 2.7.3.
Added
- Support for Azure Workload Identity
Changed
- Move the AWS and Azure deployment instructions out of the README into
docs/deploying-on-aws.md and docs/deploying-on-azure.md.
Fixed
- Add a
kubernetes-flavor NetworkPolicy granting the backend pods egress to the kube-apiserver (TCP 443/6443) to fix standalone platforms and CI tests. - Fix ABS config to not override AppVersion in Chart.yaml
Changed
- Fix ABS config to not override AppVersion in Chart.yaml
- Upgrade grafana chart: 12.3.0 => 12.10.3
- Upgrade grafana (appVersion): 13.0.1 => 13.1.2
- Upgrade postgresql-cnpg: 18.3 => 18.4 — the rolling DB upgrade can cause ~5min of Grafana downtime.
Removed
- The upstream chart no longer creates a
Role/RoleBinding when grafana.rbac.namespaced is false (our default). Those objects were empty, sidecar permissions come from the ClusterRole.
Changed
- Values: Generate schema for Alloy PodLogs CRDs.
- Values: Add Cilium as dependency for Alloy apps & Kube Prometheus Stack.
- Values: Update Alloy apps to v0.21.2.
Removed
- Values: Remove unused catalog.
Added
- Add a nav bar between the four Envoy Gateway dashboards, like the Cilium ones
have.
Changed
- Give
Envoy Gateway | Clusters a readable uid. Links to its old random uid
stop resolving. - Rename the cluster variable on
Cilium Agent logs to cluster_id, matching
the other Cilium dashboards so the selection carries across links. - Rename
workload_cluster to cluster_id on the Envoy Gateway dashboards, so
the selection carries when moving between them. On Clusters its label is
K8s Cluster, to tell it apart from the Envoy cluster selector. - Hide the datasource selector on the Cilium and Envoy Gateway dashboards and
point it at the default datasource, instead of the exported uids that only
resolved in the Grafana a board came from.
Removed
- Drop the
Cluster selector from Envoy Gateway | Clusters. Every panel also
matched on the namespace, resource and rule selectors, which compose the same
Envoy cluster name.
Fixed
- Give
Cilium | Agent its own uid instead of reusing the retired Cilium
metrics dashboard’s, which kept it from being created. - Give
Envoy Gateway | Control Plane its own uid instead of reusing the
retired Global dashboard’s, which kept it from being created.
Changed
- Chart: Install Vertical Pod Autoscaler independent of API availability.