<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Observability - Giant Swarm Changes and Releases</title><link>https://docs.giantswarm.io/changes/observability/</link><description>Recent changes and releases in the Observability category</description><language>en</language><lastBuildDate>Thu, 01 Oct 2026 12:20:07 +0000</lastBuildDate><atom:link href="https://docs.giantswarm.io/changes/observability/index.xml" rel="self" type="application/rss+xml"/><item><title>grafana-app release v2.41.0</title><link>https://docs.giantswarm.io/changes/observability/grafana-app/v2.41.0/</link><pubDate>Thu, 01 Oct 2026 12:20:07 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/grafana-app/v2.41.0/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Added the Grafana image renderer configuration, disabled by default.&lt;/li&gt;
&lt;li&gt;Added a CiliumNetworkPolicy for the image renderer.&lt;/li&gt;
&lt;li&gt;Documented image rendering in the chart README.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Updated &lt;code&gt;values.schema.json&lt;/code&gt; for the &lt;code&gt;imageRenderer&lt;/code&gt; values.&lt;/li&gt;
&lt;li&gt;Upgrade grafana chart: 12.11.2 =&amp;gt; 13.2.7&lt;/li&gt;
&lt;li&gt;Upgrade postgresql-cnpg: 18.4 =&amp;gt; 18.6&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="fixed"&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;helm.sh/chart&lt;/code&gt; label is valid for long chart versions: the 63-character cut trims the whole trailing run of &lt;code&gt;-&lt;/code&gt;, &lt;code&gt;.&lt;/code&gt; and &lt;code&gt;_&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Trim trailing &lt;code&gt;.&lt;/code&gt; from the &lt;code&gt;helm.sh/chart&lt;/code&gt; label, to fix build.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>alloy-app release v0.24.0</title><link>https://docs.giantswarm.io/changes/observability/alloy-app/v0.24.0/</link><pubDate>Tue, 29 Sep 2026 14:42:36 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/alloy-app/v0.24.0/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;crossplane.aws.iam.enabled&lt;/code&gt;, rendering a Crossplane IAM Role for IRSA even while &lt;code&gt;alloy.enabled&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt;. Off by default.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade Alloy upstream chart from 1.12.1 to 1.13.0 (&lt;a href="https://github.com/grafana/alloy/blob/main/operations/helm/charts/alloy/CHANGELOG.md#1130-2026-09-25"&gt;CHANGELOG&lt;/a&gt;)
&lt;ul&gt;
&lt;li&gt;This bumps the version of Alloy from 1.19.2 to 1.20.0 (&lt;a href="https://github.com/grafana/alloy/blob/main/CHANGELOG.md#1200-2026-09-25"&gt;CHANGELOG&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Alloy Breaking changes
&lt;ul&gt;
&lt;li&gt;[otelcol.processor.k8sattributes] Default label and annotation keys use the singular form (&lt;code&gt;k8s.pod.label.&amp;lt;key&amp;gt;&lt;/code&gt;). &lt;code&gt;container.image.tags&lt;/code&gt; replaces &lt;code&gt;container.image.tag&lt;/code&gt;. &lt;code&gt;deployment_name_from_replicaset&lt;/code&gt; is removed.&lt;/li&gt;
&lt;li&gt;[otelcol.processor.transform] &lt;code&gt;Base64Decode&lt;/code&gt; is removed. &lt;code&gt;set(target, nil)&lt;/code&gt; sets &lt;code&gt;target&lt;/code&gt; to &lt;code&gt;nil&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;See &lt;a href="https://github.com/grafana/alloy/releases/tag/v1.20.0"&gt;Alloy v1.20.0&lt;/a&gt; release notes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;prometheus-config-reloader&lt;/code&gt; from v0.91.0 to v0.94.0.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;controller.dnsConfig&lt;/code&gt; and &lt;code&gt;service.trafficDistribution&lt;/code&gt; values.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="fixed"&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;helm.sh/chart&lt;/code&gt; label is valid for long chart versions: the 63-character cut trims the whole trailing run of &lt;code&gt;-&lt;/code&gt;, &lt;code&gt;.&lt;/code&gt; and &lt;code&gt;_&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>dashboards release v4.31.0</title><link>https://docs.giantswarm.io/changes/observability/dashboards/v4.31.0/</link><pubDate>Thu, 24 Sep 2026 08:59:49 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/dashboards/v4.31.0/</guid><description>&lt;h3 id="removed"&gt;Removed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Remove the &lt;code&gt;agent_platform&lt;/code&gt; sub-chart and its &lt;code&gt;LLM usage&lt;/code&gt; dashboard.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>mimir-app release v0.30.1</title><link>https://docs.giantswarm.io/changes/observability/mimir-app/v0.30.1/</link><pubDate>Thu, 17 Sep 2026 07:59:56 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/mimir-app/v0.30.1/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Allow &lt;code&gt;InPlaceOrRecreate&lt;/code&gt; and &lt;code&gt;InPlace&lt;/code&gt; as &lt;code&gt;verticalAutoscaling.updateMode&lt;/code&gt; values in &lt;code&gt;values.schema.json&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Set the ruler&amp;rsquo;s VPA &lt;code&gt;updateMode&lt;/code&gt; to &lt;code&gt;Initial&lt;/code&gt; (was &lt;code&gt;Recreate&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>observability-bundle release v3.5.0</title><link>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.5.0/</link><pubDate>Wed, 16 Sep 2026 07:28:10 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.5.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Update &lt;code&gt;alloy&lt;/code&gt; apps to 0.23.1 (Alloy v1.19.2).&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;prometheus-operator-crd&lt;/code&gt; to 24.0.0 (Prometheus Operator CRDs v0.94.0).&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;kube-prometheus-stack&lt;/code&gt; to 24.0.0 (chart 91.2.3, Prometheus Operator v0.94.0).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Point kube-prometheus-stack&amp;rsquo;s control-plane ServiceMonitors at the alloy-metrics token Secret.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="fixed"&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;KSM custom resource state: Set the Gateway API &lt;code&gt;TCPRoute&lt;/code&gt; and &lt;code&gt;UDPRoute&lt;/code&gt; collectors to &lt;code&gt;v1&lt;/code&gt;, which is the version the API server serves.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>kube-prometheus-stack-app release v24.0.0</title><link>https://docs.giantswarm.io/changes/observability/kube-prometheus-stack-app/v24.0.0/</link><pubDate>Tue, 15 Sep 2026 16:29:50 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/kube-prometheus-stack-app/v24.0.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Upgraded chart dependency to &lt;a href="https://github.com/prometheus-community/helm-charts/releases/tag/kube-prometheus-stack-91.2.3"&gt;kube-prometheus-stack-91.2.3&lt;/a&gt; (from &lt;code&gt;88.6.3&lt;/code&gt;, via &lt;code&gt;90.0.0&lt;/code&gt;)
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;prometheus-operator&lt;/code&gt; (and &lt;code&gt;prometheus-config-reloader&lt;/code&gt;) from &lt;code&gt;v0.93.1&lt;/code&gt; to &lt;a href="https://github.com/prometheus-operator/prometheus-operator/releases/tag/v0.94.0"&gt;v0.94.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;grafana&lt;/code&gt; subchart from &lt;code&gt;12.11.2&lt;/code&gt; to &lt;code&gt;13.2.4&lt;/code&gt;, which switches the Grafana image from &lt;code&gt;13.2.0&lt;/code&gt; to &lt;code&gt;13.2.1-distroless&lt;/code&gt;, enables &lt;code&gt;readOnlyRootFilesystem&lt;/code&gt; on the Grafana container (with a new &lt;code&gt;/tmp&lt;/code&gt; emptyDir) and sets &lt;code&gt;plugins.preinstall_auto_update = false&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s-sidecar&lt;/code&gt; (Grafana dashboard/datasource sidecar) from &lt;code&gt;2.10.1&lt;/code&gt; to &lt;code&gt;2.11.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kube-state-metrics&lt;/code&gt; subchart from &lt;code&gt;8.4.1&lt;/code&gt; to &lt;code&gt;8.4.2&lt;/code&gt; (KSM image unchanged at &lt;code&gt;v2.20.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prometheus-node-exporter&lt;/code&gt; subchart from &lt;code&gt;4.56.3&lt;/code&gt; to &lt;code&gt;4.57.0&lt;/code&gt; (we keep &lt;code&gt;nodeExporter.enabled: false&lt;/code&gt;, no impact)&lt;/li&gt;
&lt;li&gt;Alertmanager, Prometheus, Thanos and &lt;code&gt;kube-webhook-certgen&lt;/code&gt; images are unchanged.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Breaking (chart 90.0.0):&lt;/strong&gt; the control-plane ServiceMonitors (kubelet, kube-apiserver, kube-controller-manager, kube-scheduler, kube-etcd, kube-proxy, coredns) no longer use &lt;code&gt;bearerTokenFile&lt;/code&gt;/&lt;code&gt;tlsConfig.caFile&lt;/code&gt;. They now authenticate through a &lt;code&gt;kubernetes.io/service-account-token&lt;/code&gt; Secret (&lt;code&gt;&amp;lt;release&amp;gt;-prometheus-token&lt;/code&gt;, newly created by the chart) and read the CA from the &lt;code&gt;kube-root-ca.crt&lt;/code&gt; ConfigMap. This makes the ServiceMonitors work with &lt;code&gt;arbitraryFSAccessThroughSMs.deny&lt;/code&gt; and with Grafana Alloy&amp;rsquo;s &lt;code&gt;prometheus.operator.servicemonitors&lt;/code&gt; component (&amp;gt;= v1.19.0), which silently dropped every control-plane target before.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Breaking (chart 91.0.0 / operator v0.94.0):&lt;/strong&gt; the Prometheus Operator ClusterRole no longer grants wildcard (&lt;code&gt;*&lt;/code&gt;) verbs. Verbs are now explicit per resource group, and the operator only gets &lt;code&gt;get/list/watch&lt;/code&gt; on the &lt;code&gt;monitoring.coreos.com&lt;/code&gt; CRs plus writes on their &lt;code&gt;/status&lt;/code&gt; and &lt;code&gt;/finalizers&lt;/code&gt; subresources.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prometheusOperator.admissionWebhooks.matchConditions&lt;/code&gt; changed type from a map (&lt;code&gt;{}&lt;/code&gt;) to a list (&lt;code&gt;[]&lt;/code&gt;). We do not set it, so no impact.&lt;/li&gt;
&lt;li&gt;Fixed the chart &lt;code&gt;appVersion&lt;/code&gt;, which was still &lt;code&gt;v0.92.0&lt;/code&gt;, to match the bundled Prometheus Operator (&lt;code&gt;v0.94.0&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Added &lt;code&gt;global.controlPlaneScrapeAuth&lt;/code&gt; to configure the Secret the control-plane ServiceMonitors authenticate with.&lt;/li&gt;
&lt;li&gt;Dropped the scrape credential for &lt;code&gt;coreDns&lt;/code&gt;, &lt;code&gt;kubeEtcd&lt;/code&gt; and &lt;code&gt;kubeProxy&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Removed &lt;code&gt;insecureSkipVerify&lt;/code&gt; from the &lt;code&gt;kubeControllerManager&lt;/code&gt; and &lt;code&gt;kubeScheduler&lt;/code&gt; ServiceMonitors.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; release the matching &lt;code&gt;prometheus-operator-crd&lt;/code&gt; app (CRDs chart &lt;code&gt;32.0.0&lt;/code&gt;, Prometheus Operator &lt;code&gt;v0.94.0&lt;/code&gt;) &lt;strong&gt;before&lt;/strong&gt; this one. The CRDs shipped by this chart live in &lt;code&gt;charts/crds/crds/&lt;/code&gt; and are therefore only applied by Helm on install, never on upgrade.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>prometheus-operator-app release v24.0.0</title><link>https://docs.giantswarm.io/changes/observability/prometheus-operator-app/v24.0.0/</link><pubDate>Tue, 15 Sep 2026 16:29:50 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/prometheus-operator-app/v24.0.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Upgraded chart dependency to &lt;a href="https://github.com/prometheus-community/helm-charts/releases/tag/kube-prometheus-stack-91.2.3"&gt;kube-prometheus-stack-91.2.3&lt;/a&gt; (from &lt;code&gt;88.6.3&lt;/code&gt;, via &lt;code&gt;90.0.0&lt;/code&gt;)
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;prometheus-operator&lt;/code&gt; (and &lt;code&gt;prometheus-config-reloader&lt;/code&gt;) from &lt;code&gt;v0.93.1&lt;/code&gt; to &lt;a href="https://github.com/prometheus-operator/prometheus-operator/releases/tag/v0.94.0"&gt;v0.94.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;grafana&lt;/code&gt; subchart from &lt;code&gt;12.11.2&lt;/code&gt; to &lt;code&gt;13.2.4&lt;/code&gt;, which switches the Grafana image from &lt;code&gt;13.2.0&lt;/code&gt; to &lt;code&gt;13.2.1-distroless&lt;/code&gt;, enables &lt;code&gt;readOnlyRootFilesystem&lt;/code&gt; on the Grafana container (with a new &lt;code&gt;/tmp&lt;/code&gt; emptyDir) and sets &lt;code&gt;plugins.preinstall_auto_update = false&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s-sidecar&lt;/code&gt; (Grafana dashboard/datasource sidecar) from &lt;code&gt;2.10.1&lt;/code&gt; to &lt;code&gt;2.11.2&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kube-state-metrics&lt;/code&gt; subchart from &lt;code&gt;8.4.1&lt;/code&gt; to &lt;code&gt;8.4.2&lt;/code&gt; (KSM image unchanged at &lt;code&gt;v2.20.0&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prometheus-node-exporter&lt;/code&gt; subchart from &lt;code&gt;4.56.3&lt;/code&gt; to &lt;code&gt;4.57.0&lt;/code&gt; (we keep &lt;code&gt;nodeExporter.enabled: false&lt;/code&gt;, no impact)&lt;/li&gt;
&lt;li&gt;Alertmanager, Prometheus, Thanos and &lt;code&gt;kube-webhook-certgen&lt;/code&gt; images are unchanged.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Breaking (chart 90.0.0):&lt;/strong&gt; the control-plane ServiceMonitors (kubelet, kube-apiserver, kube-controller-manager, kube-scheduler, kube-etcd, kube-proxy, coredns) no longer use &lt;code&gt;bearerTokenFile&lt;/code&gt;/&lt;code&gt;tlsConfig.caFile&lt;/code&gt;. They now authenticate through a &lt;code&gt;kubernetes.io/service-account-token&lt;/code&gt; Secret (&lt;code&gt;&amp;lt;release&amp;gt;-prometheus-token&lt;/code&gt;, newly created by the chart) and read the CA from the &lt;code&gt;kube-root-ca.crt&lt;/code&gt; ConfigMap. This makes the ServiceMonitors work with &lt;code&gt;arbitraryFSAccessThroughSMs.deny&lt;/code&gt; and with Grafana Alloy&amp;rsquo;s &lt;code&gt;prometheus.operator.servicemonitors&lt;/code&gt; component (&amp;gt;= v1.19.0), which silently dropped every control-plane target before.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Breaking (chart 91.0.0 / operator v0.94.0):&lt;/strong&gt; the Prometheus Operator ClusterRole no longer grants wildcard (&lt;code&gt;*&lt;/code&gt;) verbs. Verbs are now explicit per resource group, and the operator only gets &lt;code&gt;get/list/watch&lt;/code&gt; on the &lt;code&gt;monitoring.coreos.com&lt;/code&gt; CRs plus writes on their &lt;code&gt;/status&lt;/code&gt; and &lt;code&gt;/finalizers&lt;/code&gt; subresources.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prometheusOperator.admissionWebhooks.matchConditions&lt;/code&gt; changed type from a map (&lt;code&gt;{}&lt;/code&gt;) to a list (&lt;code&gt;[]&lt;/code&gt;). We do not set it, so no impact.&lt;/li&gt;
&lt;li&gt;Fixed the chart &lt;code&gt;appVersion&lt;/code&gt;, which was still &lt;code&gt;v0.92.0&lt;/code&gt;, to match the bundled Prometheus Operator (&lt;code&gt;v0.94.0&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Added &lt;code&gt;global.controlPlaneScrapeAuth&lt;/code&gt; to configure the Secret the control-plane ServiceMonitors authenticate with.&lt;/li&gt;
&lt;li&gt;Dropped the scrape credential for &lt;code&gt;coreDns&lt;/code&gt;, &lt;code&gt;kubeEtcd&lt;/code&gt; and &lt;code&gt;kubeProxy&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Removed &lt;code&gt;insecureSkipVerify&lt;/code&gt; from the &lt;code&gt;kubeControllerManager&lt;/code&gt; and &lt;code&gt;kubeScheduler&lt;/code&gt; ServiceMonitors.&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; release the matching &lt;code&gt;prometheus-operator-crd&lt;/code&gt; app (CRDs chart &lt;code&gt;32.0.0&lt;/code&gt;, Prometheus Operator &lt;code&gt;v0.94.0&lt;/code&gt;) &lt;strong&gt;before&lt;/strong&gt; this one. The CRDs shipped by this chart live in &lt;code&gt;charts/crds/crds/&lt;/code&gt; and are therefore only applied by Helm on install, never on upgrade.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>alloy-app release v0.23.1</title><link>https://docs.giantswarm.io/changes/observability/alloy-app/v0.23.1/</link><pubDate>Tue, 15 Sep 2026 15:13:07 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/alloy-app/v0.23.1/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Optional &lt;code&gt;serviceAccountTokenSecret.enabled&lt;/code&gt; to render a long-lived service account token Secret.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>alloy-app release v0.23.0</title><link>https://docs.giantswarm.io/changes/observability/alloy-app/v0.23.0/</link><pubDate>Mon, 14 Sep 2026 14:41:37 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/alloy-app/v0.23.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade Alloy upstream chart from 1.10.0 to 1.12.1 (&lt;a href="https://github.com/grafana/alloy/blob/main/operations/helm/charts/alloy/CHANGELOG.md#1121-2026-08-26"&gt;CHANGELOG&lt;/a&gt;)
&lt;ul&gt;
&lt;li&gt;This bumps the version of Alloy from 1.17.0 to 1.19.2 (&lt;a href="https://github.com/grafana/alloy/blob/main/CHANGELOG.md#1190-2026-08-21"&gt;CHANGELOG&lt;/a&gt;), which includes several CVE fixes.&lt;/li&gt;
&lt;li&gt;Alloy Breaking changes
&lt;ul&gt;
&lt;li&gt;[prometheus.operator.servicemonitors] ServiceMonitor endpoints referencing &lt;code&gt;bearerTokenFile&lt;/code&gt;, &lt;code&gt;tlsConfig.caFile&lt;/code&gt;, &lt;code&gt;tlsConfig.certFile&lt;/code&gt; or &lt;code&gt;tlsConfig.keyFile&lt;/code&gt; are now rejected. Set &lt;code&gt;allow_arbitrary_file_access = true&lt;/code&gt; to keep the previous behaviour.&lt;/li&gt;
&lt;li&gt;[otelcol.receiver.otlp] The HTTP server now defaults to &lt;code&gt;idle_timeout = &amp;quot;1m&amp;quot;&lt;/code&gt;, &lt;code&gt;read_header_timeout = &amp;quot;1m&amp;quot;&lt;/code&gt; and &lt;code&gt;write_timeout = &amp;quot;30s&amp;quot;&lt;/code&gt; instead of &lt;code&gt;&amp;quot;0s&amp;quot;&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;See &lt;a href="https://github.com/grafana/alloy/releases/tag/v1.18.0"&gt;Alloy v1.18.0&lt;/a&gt; and &lt;a href="https://github.com/grafana/alloy/releases/tag/v1.19.0"&gt;v1.19.0&lt;/a&gt; release notes&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;[beyla.ebpf] Beyla now runs as a subprocess, which raises the memory used by the Alloy container.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="fixed"&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Allow &lt;code&gt;verticalPodAutoscaler.updatePolicy&lt;/code&gt; to be set, including the in-place update modes.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>dashboards release v4.30.0</title><link>https://docs.giantswarm.io/changes/observability/dashboards/v4.30.0/</link><pubDate>Wed, 09 Sep 2026 14:24:07 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/dashboards/v4.30.0/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add an &lt;code&gt;agent_platform&lt;/code&gt; sub-chart (Team Bumblebee) and its first dashboard,
&lt;code&gt;Giant Swarm / Agent Platform / LLM usage&lt;/code&gt;: tokens, estimated cost and
latency for every model call that goes through the Agent Platform&amp;rsquo;s
agentgateway LLM listener, broken down by agent, agent namespace and model.
It reads the GenAI metrics the agentgateway data plane emits. Empty until an
installation enables &lt;code&gt;llmRouting&lt;/code&gt; in the Agent Platform values and points its
agents at the listener.&lt;/li&gt;
&lt;li&gt;Add a &lt;code&gt;Cost accounting&lt;/code&gt; row to the &lt;code&gt;LLM usage&lt;/code&gt; dashboard, for attributing
spend rather than watching it: totals for the selected time range, cost per
bucket stacked by agent and by model over a selectable &lt;code&gt;Cost bucket&lt;/code&gt; period,
and per-model and per-agent-and-model tables with column totals.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Move the private Falco dashboard to the new &lt;code&gt;Giant Swarm Security&lt;/code&gt;
organization and rename it to &lt;code&gt;Anomaly Detection&lt;/code&gt;, to include other data sources.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="removed"&gt;Removed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Drop the &lt;code&gt;Security: Falco Dashboard&lt;/code&gt; and &lt;code&gt;Falco public dashboard&lt;/code&gt; boards, so
no Falco dashboards remain outside the &lt;code&gt;Giant Swarm Security&lt;/code&gt; organization.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>alloy-app release v0.22.0</title><link>https://docs.giantswarm.io/changes/observability/alloy-app/v0.22.0/</link><pubDate>Wed, 09 Sep 2026 08:47:32 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/alloy-app/v0.22.0/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add RBAC to allow &lt;code&gt;alloy-metrics&lt;/code&gt; to read the &lt;code&gt;alloy-vcenter-credentials&lt;/code&gt; secret when running vSphere or VCD clusters.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;serviceWhenDisabled.enabled&lt;/code&gt;, keeping the Service rendered while &lt;code&gt;alloy.enabled&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt;. Off by default.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>observability-bundle release v3.4.0</title><link>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.4.0/</link><pubDate>Thu, 03 Sep 2026 11:22:48 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.4.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Values: Update Prometheus Operator CRD and Kube Prometheus Stack to v23.0.0.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>kube-prometheus-stack-app release v23.0.0</title><link>https://docs.giantswarm.io/changes/observability/kube-prometheus-stack-app/v23.0.0/</link><pubDate>Thu, 03 Sep 2026 08:35:17 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/kube-prometheus-stack-app/v23.0.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Chart: Upgrade &lt;code&gt;kube-prometheus-stack&lt;/code&gt; to v88.6.3, including:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;prometheus-operator&lt;/code&gt; to v0.93.1&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kube-state-metrics&lt;/code&gt; to v8.4.1&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prometheus-node-exporter&lt;/code&gt; to v4.56.3&lt;/li&gt;
&lt;li&gt;&lt;code&gt;grafana&lt;/code&gt; to v12.11.2&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>prometheus-operator-app release v23.0.0</title><link>https://docs.giantswarm.io/changes/observability/prometheus-operator-app/v23.0.0/</link><pubDate>Thu, 03 Sep 2026 08:35:17 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/prometheus-operator-app/v23.0.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Chart: Upgrade &lt;code&gt;kube-prometheus-stack&lt;/code&gt; to v88.6.3, including:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;prometheus-operator&lt;/code&gt; to v0.93.1&lt;/li&gt;
&lt;li&gt;&lt;code&gt;kube-state-metrics&lt;/code&gt; to v8.4.1&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prometheus-node-exporter&lt;/code&gt; to v4.56.3&lt;/li&gt;
&lt;li&gt;&lt;code&gt;grafana&lt;/code&gt; to v12.11.2&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>loki-app release v0.48.0</title><link>https://docs.giantswarm.io/changes/observability/loki-app/v0.48.0/</link><pubDate>Thu, 03 Sep 2026 07:35:57 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/loki-app/v0.48.0/</guid><description>&lt;h3 id="fixed"&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Keep the &lt;code&gt;provider-kubernetes&lt;/code&gt; identity RBAC on uninstall, so the crossplane &lt;code&gt;Object&lt;/code&gt;s can drop their finalizers instead of hanging.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;gatewayRoute.requestMirror&lt;/code&gt;, an optional &lt;code&gt;RequestMirror&lt;/code&gt; filter on &lt;code&gt;gatewayRoute.additionalRules&lt;/code&gt;, plus the &lt;code&gt;ReferenceGrant&lt;/code&gt; a cross-namespace &lt;code&gt;backendRef&lt;/code&gt; needs. Disabled by default.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>observability-platform-api release v0.5.0</title><link>https://docs.giantswarm.io/changes/observability/observability-platform-api/v0.5.0/</link><pubDate>Mon, 31 Aug 2026 13:39:56 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/observability-platform-api/v0.5.0/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;loki.write.requestMirror&lt;/code&gt;, an optional &lt;code&gt;RequestMirror&lt;/code&gt; filter on the Loki write route. Disabled by default.&lt;/li&gt;
&lt;li&gt;Add opt-in Basic Auth read routes for Mimir and Loki on a dedicated hostname (&lt;code&gt;basicAuth.*&lt;/code&gt;, disabled by default).&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>grafana-app release v2.40.0</title><link>https://docs.giantswarm.io/changes/observability/grafana-app/v2.40.0/</link><pubDate>Mon, 24 Aug 2026 13:56:05 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/grafana-app/v2.40.0/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Brand Grafana with the Giant Swarm logo mark and favicon, by mounting the assets in
&lt;code&gt;helm/grafana/branding&lt;/code&gt; over the ones the Grafana image ships. Set
&lt;code&gt;grafana.extraConfigmapMounts&lt;/code&gt; to &lt;code&gt;[]&lt;/code&gt; to get Grafana&amp;rsquo;s own branding back.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;make branding-verify&lt;/code&gt; (run by the &lt;code&gt;verify-branding&lt;/code&gt; CI job) and &lt;code&gt;make branding-update&lt;/code&gt;, 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.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade grafana chart: 12.10.3 =&amp;gt; 12.11.2&lt;/li&gt;
&lt;li&gt;Upgrade grafana (appVersion): 13.1.2 =&amp;gt; 13.2.0&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>loki-app release v0.47.0</title><link>https://docs.giantswarm.io/changes/observability/loki-app/v0.47.0/</link><pubDate>Mon, 24 Aug 2026 09:05:40 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/loki-app/v0.47.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Breaking:&lt;/strong&gt; &lt;code&gt;loki.networkPolicy.flavor&lt;/code&gt; is gone. Upstream dropped Cilium network policy support, so this chart renders the &lt;code&gt;CiliumNetworkPolicy&lt;/code&gt; resources itself, switched by the new top-level &lt;code&gt;ciliumNetworkPolicy.enabled&lt;/code&gt; (default &lt;code&gt;true&lt;/code&gt;). Set it to &lt;code&gt;false&lt;/code&gt; where you used &lt;code&gt;flavor: kubernetes&lt;/code&gt;. The standard &lt;code&gt;NetworkPolicy&lt;/code&gt; resources now render alongside them.&lt;/li&gt;
&lt;li&gt;The ServiceMonitor is no longer gated on the prometheus-operator CRD being present: set &lt;code&gt;loki.monitoring.serviceMonitor.enabled: false&lt;/code&gt; on clusters without it.&lt;/li&gt;
&lt;li&gt;The built-in MinIO subchart is deprecated upstream: &lt;code&gt;loki.minio.enabled&lt;/code&gt; now also needs &lt;code&gt;loki.ignoreMinioDeprecation: true&lt;/code&gt;, and goes away on 2026-10-31.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>silence-operator release v0.21.0</title><link>https://docs.giantswarm.io/changes/observability/silence-operator/v0.21.0/</link><pubDate>Tue, 18 Aug 2026 14:07:00 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/silence-operator/v0.21.0/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;startsAt&lt;/code&gt;, &lt;code&gt;endsAt&lt;/code&gt;, and &lt;code&gt;duration&lt;/code&gt; fields to the v1alpha2 Silence CRD for explicit silence scheduling. &lt;code&gt;duration&lt;/code&gt; accepts weeks (&lt;code&gt;w&lt;/code&gt;), days (&lt;code&gt;d&lt;/code&gt;), hours (&lt;code&gt;h&lt;/code&gt;), minutes (&lt;code&gt;m&lt;/code&gt;), and seconds (&lt;code&gt;s&lt;/code&gt;), each at most once and ordered largest to smallest: &lt;code&gt;&amp;quot;7d&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;2w&amp;quot;&lt;/code&gt;, &lt;code&gt;&amp;quot;1d12h&amp;quot;&lt;/code&gt;. &lt;code&gt;endsAt&lt;/code&gt; and &lt;code&gt;duration&lt;/code&gt; are mutually exclusive. When neither is set, the &lt;code&gt;valid-until&lt;/code&gt; annotation is used as a fallback.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Regenerate &lt;code&gt;.github/workflows/zz_generated.*.yaml&lt;/code&gt; via devctl to use the centralized reusable workflow, removing the Node-20 &lt;code&gt;mindsers/changelog-reader-action&lt;/code&gt; dependency.&lt;/li&gt;
&lt;li&gt;Update Go dependencies, which resolves CVE-2026-63209 (&lt;code&gt;github.com/klauspost/compress&lt;/code&gt;) and CVE-2026-56852 (&lt;code&gt;golang.org/x/text&lt;/code&gt;) and removes their &lt;code&gt;.nancy-ignore&lt;/code&gt; entries.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="fixed"&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Quote the &lt;code&gt;=&lt;/code&gt; scalars in the generated &lt;code&gt;matchType&lt;/code&gt; CRD schema so the rendered chart parses under PyYAML (unblocks the &lt;code&gt;HelmTemplateValidator&lt;/code&gt; step added in app-build-suite 2.2.0).&lt;/li&gt;
&lt;li&gt;Fix various CVEs by updating dependencies:&lt;/li&gt;
&lt;li&gt;Skip failing CI jobs using private secrets for external contributions from fork&lt;/li&gt;
&lt;li&gt;Replace deprecated controller-runtime scheme.Builder with apimachinery runtime.NewSchemeBuilder&lt;/li&gt;
&lt;li&gt;Fix &lt;code&gt;gosec&lt;/code&gt;, &lt;code&gt;goconst&lt;/code&gt; and &lt;code&gt;errcheck&lt;/code&gt; linter errors in tests&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>loki-app release v0.46.1</title><link>https://docs.giantswarm.io/changes/observability/loki-app/v0.46.1/</link><pubDate>Wed, 12 Aug 2026 13:40:54 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/loki-app/v0.46.1/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;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).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;k8s-sidecar&lt;/code&gt; bumped 2.7.1 → 2.7.3.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>loki-app release v0.46.0</title><link>https://docs.giantswarm.io/changes/observability/loki-app/v0.46.0/</link><pubDate>Wed, 12 Aug 2026 09:27:59 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/loki-app/v0.46.0/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Support for Azure Workload Identity&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Move the AWS and Azure deployment instructions out of the README into &lt;code&gt;docs/deploying-on-aws.md&lt;/code&gt; and &lt;code&gt;docs/deploying-on-azure.md&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="fixed"&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add a &lt;code&gt;kubernetes&lt;/code&gt;-flavor NetworkPolicy granting the backend pods egress to the kube-apiserver (TCP 443/6443) to fix standalone platforms and CI tests.&lt;/li&gt;
&lt;li&gt;Fix ABS config to not override AppVersion in Chart.yaml&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>grafana-app release v2.39.0</title><link>https://docs.giantswarm.io/changes/observability/grafana-app/v2.39.0/</link><pubDate>Fri, 07 Aug 2026 09:01:32 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/grafana-app/v2.39.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fix ABS config to not override AppVersion in Chart.yaml&lt;/li&gt;
&lt;li&gt;Upgrade grafana chart: 12.3.0 =&amp;gt; 12.10.3&lt;/li&gt;
&lt;li&gt;Upgrade grafana (appVersion): 13.0.1 =&amp;gt; 13.1.2&lt;/li&gt;
&lt;li&gt;Upgrade postgresql-cnpg: 18.3 =&amp;gt; 18.4 — the rolling DB upgrade can cause ~5min of Grafana downtime.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="removed"&gt;Removed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;The upstream chart no longer creates a &lt;code&gt;Role&lt;/code&gt;/&lt;code&gt;RoleBinding&lt;/code&gt; when &lt;code&gt;grafana.rbac.namespaced&lt;/code&gt; is &lt;code&gt;false&lt;/code&gt; (our default). Those objects were empty, sidecar permissions come from the &lt;code&gt;ClusterRole&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>observability-bundle release v3.3.1</title><link>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.3.1/</link><pubDate>Thu, 06 Aug 2026 15:03:49 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.3.1/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Values: Generate schema for Alloy PodLogs CRDs.&lt;/li&gt;
&lt;li&gt;Values: Add Cilium as dependency for Alloy apps &amp;amp; Kube Prometheus Stack.&lt;/li&gt;
&lt;li&gt;Values: Update Alloy apps to v0.21.2.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="removed"&gt;Removed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Values: Remove unused catalog.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>dashboards release v4.29.1</title><link>https://docs.giantswarm.io/changes/observability/dashboards/v4.29.1/</link><pubDate>Thu, 06 Aug 2026 14:13:52 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/dashboards/v4.29.1/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add a nav bar between the four Envoy Gateway dashboards, like the Cilium ones
have.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Give &lt;code&gt;Envoy Gateway | Clusters&lt;/code&gt; a readable uid. Links to its old random uid
stop resolving.&lt;/li&gt;
&lt;li&gt;Rename the cluster variable on &lt;code&gt;Cilium Agent logs&lt;/code&gt; to &lt;code&gt;cluster_id&lt;/code&gt;, matching
the other Cilium dashboards so the selection carries across links.&lt;/li&gt;
&lt;li&gt;Rename &lt;code&gt;workload_cluster&lt;/code&gt; to &lt;code&gt;cluster_id&lt;/code&gt; on the Envoy Gateway dashboards, so
the selection carries when moving between them. On &lt;code&gt;Clusters&lt;/code&gt; its label is
&lt;code&gt;K8s Cluster&lt;/code&gt;, to tell it apart from the Envoy cluster selector.&lt;/li&gt;
&lt;li&gt;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.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="removed"&gt;Removed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Drop the &lt;code&gt;Cluster&lt;/code&gt; selector from &lt;code&gt;Envoy Gateway | Clusters&lt;/code&gt;. Every panel also
matched on the namespace, resource and rule selectors, which compose the same
Envoy cluster name.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="fixed"&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Give &lt;code&gt;Cilium | Agent&lt;/code&gt; its own uid instead of reusing the retired Cilium
metrics dashboard&amp;rsquo;s, which kept it from being created.&lt;/li&gt;
&lt;li&gt;Give &lt;code&gt;Envoy Gateway | Control Plane&lt;/code&gt; its own uid instead of reusing the
retired Global dashboard&amp;rsquo;s, which kept it from being created.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>alloy-app release v0.21.2</title><link>https://docs.giantswarm.io/changes/observability/alloy-app/v0.21.2/</link><pubDate>Thu, 06 Aug 2026 12:56:21 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/alloy-app/v0.21.2/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Chart: Install Vertical Pod Autoscaler independent of API availability.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>alloy-app release v0.21.1</title><link>https://docs.giantswarm.io/changes/observability/alloy-app/v0.21.1/</link><pubDate>Thu, 06 Aug 2026 09:18:44 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/alloy-app/v0.21.1/</guid><description>&lt;h3 id="fixed"&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Setting &lt;code&gt;alloy.enabled: false&lt;/code&gt; now disables the whole chart on its own and renders nothing. Previously it only dropped the upstream Alloy chart, and the Giant Swarm templates (NetworkPolicy, Kyverno PolicyException, VerticalPodAutoscaler, PodLogs, extra env Secret) failed to render with &lt;code&gt;no template &amp;quot;alloy.chart&amp;quot; associated with template &amp;quot;gotpl&amp;quot;&lt;/code&gt; unless &lt;code&gt;networkPolicy.flavor&lt;/code&gt; and &lt;code&gt;kyvernoPolicyExceptions.enabled&lt;/code&gt; were also overridden.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add a &lt;code&gt;make test-chart&lt;/code&gt; target and a &lt;code&gt;test-chart&lt;/code&gt; workflow that render the chart with every &lt;code&gt;ci/*-values.yaml&lt;/code&gt; file and assert it renders nothing when disabled and all of its objects when enabled. Unlike &lt;code&gt;ct lint&lt;/code&gt;, these use a current Helm, which is required to catch template rendering errors.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>dashboards release v4.29.0</title><link>https://docs.giantswarm.io/changes/observability/dashboards/v4.29.0/</link><pubDate>Wed, 05 Aug 2026 12:09:55 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/dashboards/v4.29.0/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add the &lt;code&gt;Envoy Gateway | Overview&lt;/code&gt; dashboard: a lean single-pane health view
(traffic, latency, error rate, saturation) that avoids duplicating the detail
boards.&lt;/li&gt;
&lt;li&gt;Add a downstream request-latency heatmap to &lt;code&gt;Envoy Gateway | Clusters&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Add an Envoy Gateway controller logs panel to the Control Plane dashboard.&lt;/li&gt;
&lt;li&gt;Publish the &lt;code&gt;Flux Logs&lt;/code&gt; dashboard to &lt;code&gt;Shared Org / GitOps&lt;/code&gt;. It covers the Flux
controllers on the management cluster; workload-cluster Flux logs are not
ingested yet, because the &lt;code&gt;flux-system&lt;/code&gt; namespace there has no tenant
assignment and Alloy drops untenanted pod logs.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;scripts/update-flux-dashboards.sh&lt;/code&gt; (&lt;code&gt;make update-flux-dashboards&lt;/code&gt;), which
syncs the Flux dashboards from
&lt;a href="https://github.com/fluxcd/flux2-monitoring-example"&gt;fluxcd/flux2-monitoring-example&lt;/a&gt;
and re-applies our patches. It runs in the monthly dashboard-update workflow
and fails loudly if a patch stops applying.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;Organization&lt;/code&gt; and &lt;code&gt;Cluster&lt;/code&gt; selectors to both Flux dashboards. They are
deployed to the management cluster&amp;rsquo;s Grafana, whose Mimir holds metrics for
every workload cluster, so until now every panel aggregated across a
customer&amp;rsquo;s whole fleet.&lt;/li&gt;
&lt;li&gt;Replace the Cilium dashboards with a set of four: &lt;code&gt;Cilium | Overview&lt;/code&gt; for
triage, &lt;code&gt;Cilium | Agent&lt;/code&gt;, &lt;code&gt;Cilium | Datapath &amp;amp; Policy&lt;/code&gt; and &lt;code&gt;Cilium | Operator&lt;/code&gt;.
Rows load collapsed and the per-agent panels use &lt;code&gt;topk&lt;/code&gt;, so the entry point is
no longer a 355 kB dashboard that fires 75 queries at once.&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;Cilium | Operator&lt;/code&gt;. The cilium-operator PodMonitor has always been
enabled, but none of its metrics were graphed: identity garbage collection,
workqueues, unmanaged pods and LB-IPAM.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Consolidate the Envoy / Gateway API dashboards down to four: &lt;code&gt;Overview&lt;/code&gt;,
&lt;code&gt;Clusters&lt;/code&gt;, &lt;code&gt;Access Logs&lt;/code&gt; and &lt;code&gt;Control Plane&lt;/code&gt;. The &lt;code&gt;Control Plane&lt;/code&gt; board
(formerly &lt;code&gt;Global&lt;/code&gt;) absorbs the config push status panels, and &lt;code&gt;Logs&lt;/code&gt; is
renamed to &lt;code&gt;Access Logs&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Synced Flux dashboards from &lt;a href="https://github.com/fluxcd/flux2-monitoring-example/tree/7ab65dc8b90f7a6751d88f18bbb4e1bee33bf334/monitoring/configs/dashboards"&gt;fluxcd/flux2-monitoring-example@7ab65dc&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Anchor the &lt;code&gt;etcd-health&lt;/code&gt; dashboard cluster selector to &lt;code&gt;etcd_server_id&lt;/code&gt; instead of &lt;code&gt;up&lt;/code&gt;, so clusters with a managed control plane (aks, eks) no longer appear as empty options.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="removed"&gt;Removed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Remove the redundant &lt;code&gt;Envoy Gateway | Proxy Global&lt;/code&gt; and
&lt;code&gt;Envoy Gateway | Configuration&lt;/code&gt; dashboards, folded into the boards above.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="fixed"&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fix the &lt;code&gt;Flux Cluster Stats&lt;/code&gt; dashboard, which showed no data at all: every
panel queried &lt;code&gt;gotk_reconcile_condition&lt;/code&gt;, a metric the Flux controllers no
longer expose. It now uses &lt;code&gt;gotk_resource_info&lt;/code&gt;, the same metric our Flux
alerting rules use, and gains upstream&amp;rsquo;s &lt;code&gt;Suspended Objects&lt;/code&gt; panel.&lt;/li&gt;
&lt;li&gt;De-duplicate &lt;code&gt;gotk_resource_info&lt;/code&gt; on the &lt;code&gt;Flux Cluster Stats&lt;/code&gt; dashboard. On
management clusters both &lt;code&gt;flux-ksm&lt;/code&gt; and &lt;code&gt;kube-state-metrics&lt;/code&gt; export identical
series, so the resource counts read exactly double.&lt;/li&gt;
&lt;li&gt;Scope the &lt;code&gt;Flux Control Plane&lt;/code&gt; dashboard to the Flux namespace. Its
&lt;code&gt;controller_runtime_*&lt;/code&gt; panels matched any operator exposing the same
&lt;code&gt;controller&lt;/code&gt; label values (for example &lt;code&gt;controller=&amp;quot;helmrelease&amp;quot;&lt;/code&gt; is also
emitted by &lt;code&gt;dex-operator&lt;/code&gt; and &lt;code&gt;team-stamper&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Widen the &lt;code&gt;Flux Control Plane&lt;/code&gt; range windows from &lt;code&gt;[1m]&lt;/code&gt; to
&lt;code&gt;[$__rate_interval]&lt;/code&gt;. With our 60s scrape interval a one-minute window cannot
hold two samples, so the reconciliation and API-request panels were empty. The
&lt;code&gt;ops/min&lt;/code&gt; panels use &lt;code&gt;rate(...) * 60&lt;/code&gt; so they stay per-minute rather than
reporting the count over the whole (range-dependent) window.&lt;/li&gt;
&lt;li&gt;Point the &lt;code&gt;Flux Cluster Stats&lt;/code&gt; targets at the &lt;code&gt;$datasource&lt;/code&gt; variable. Seven of
them were pinned to a &lt;code&gt;prometheus&lt;/code&gt; datasource uid that does not exist here,
and the target-level datasource overrides the panel.&lt;/li&gt;
&lt;li&gt;Restrict the &lt;code&gt;Flux namespace&lt;/code&gt; selector on &lt;code&gt;Flux Control Plane&lt;/code&gt; to the Flux
controller pods. It was derived from a generic controller-runtime metric, so on
a management cluster it also offered &lt;code&gt;external-secrets&lt;/code&gt;, &lt;code&gt;giantswarm&lt;/code&gt; and
&lt;code&gt;kube-system&lt;/code&gt;, and the dashboard could open on another operator&amp;rsquo;s data.&lt;/li&gt;
&lt;li&gt;Fix the worker count expression on the &lt;code&gt;Nodes Overview&lt;/code&gt; dashboard.&lt;/li&gt;
&lt;li&gt;Fix the monthly dashboard-update workflow, which called a &lt;code&gt;make update-mixin&lt;/code&gt;
target that no longer exists (it was renamed to &lt;code&gt;update-all-mixin&lt;/code&gt;), so the
automation failed instead of opening a PR.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="removed-1"&gt;Removed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Remove the &lt;code&gt;Cilium Metrics&lt;/code&gt; and &lt;code&gt;Cilium performance&lt;/code&gt; dashboards, replaced by
the set above. 16 of their panels queried metrics Cilium no longer exposes
(the kvstore and BPF syscall sections, the L7 proxy counters and the policy
trigger panels), and &lt;code&gt;Cilium performance&lt;/code&gt; duplicated the Overview.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>mimir-app release v0.30.0</title><link>https://docs.giantswarm.io/changes/observability/mimir-app/v0.30.0/</link><pubDate>Tue, 28 Jul 2026 11:12:25 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/mimir-app/v0.30.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade &lt;code&gt;mimir-distributed&lt;/code&gt; chart to version &lt;a href="https://github.com/grafana/mimir/blob/main/operations/helm/charts/mimir-distributed/CHANGELOG.md#610"&gt;6.1.0&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="fixed"&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Remove the unused &lt;code&gt;enterprise&lt;/code&gt;/&lt;code&gt;legacyLabels&lt;/code&gt; branches from the &lt;code&gt;mimir.labels&lt;/code&gt;, &lt;code&gt;mimir.podLabels&lt;/code&gt; and &lt;code&gt;mimir.selectorLabels&lt;/code&gt; helpers, aligning them with upstream. The &lt;code&gt;mimir-distributed&lt;/code&gt; 6.1.0 chart dropped the default &lt;code&gt;enterprise&lt;/code&gt; block from its values, which made these helpers fail with a nil-pointer error during templating.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="removed"&gt;Removed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Remove the &lt;code&gt;prometheus.io/service-monitor: &amp;quot;false&amp;quot;&lt;/code&gt; label from the gateway service, reverting the &lt;code&gt;0.29.1&lt;/code&gt; bugfix. It is no longer needed as the &lt;code&gt;mimir-distributed&lt;/code&gt; 6.1.0 chart removes the gateway serviceMonitor upstream.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>tempo-app release v0.18.0</title><link>https://docs.giantswarm.io/changes/observability/tempo-app/v0.18.0/</link><pubDate>Tue, 28 Jul 2026 11:12:14 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/tempo-app/v0.18.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fix ABS config to not override AppVersion in Chart.yaml&lt;/li&gt;
&lt;li&gt;Upgrade Tempo Vulture chart from 0.12.10 to 0.13.0
&lt;ul&gt;
&lt;li&gt;Bumps the tempo-vulture image from 2.10.5 to 3.0.2, which is the only change in the chart&lt;/li&gt;
&lt;li&gt;Pins &lt;code&gt;-tempo-metrics-backoff-duration=0s&lt;/code&gt;: the TraceQL metrics check went from disabled to enabled (every 10s) upstream, and it cannot pass here because we do not enable the metrics-generator &lt;code&gt;local-blocks&lt;/code&gt; processor&lt;/li&gt;
&lt;li&gt;Drops support for the &lt;code&gt;-rhythm-rf1-after&lt;/code&gt; flag (unused here) and starts honouring &lt;code&gt;-tempo-push-tls&lt;/code&gt;, which was previously ignored (we leave it disabled)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Upgrade Tempo chart from 2.23.0 to 2.26.2
&lt;ul&gt;
&lt;li&gt;Upgrades Tempo from 2.10.5 to 2.10.7&lt;/li&gt;
&lt;li&gt;Bumps the memcached image from 1.6.42-alpine to 1.6.43-alpine&lt;/li&gt;
&lt;li&gt;Bumps the &lt;code&gt;rollout-operator&lt;/code&gt; sub-dependency from 0.49.0 to 0.50.0 (not enabled here)&lt;/li&gt;
&lt;li&gt;The metrics-generator now gets a &lt;code&gt;livenessProbe&lt;/code&gt; (&lt;code&gt;/ready&lt;/code&gt;, 60s initial delay), which it did not have when running as a StatefulSet (chart 2.25.4)&lt;/li&gt;
&lt;li&gt;Ingester and metrics-generator moved onto the shared pod template; container ports are reordered and the ingester grpc port is now declared via &lt;code&gt;ingester.extraPorts&lt;/code&gt;. Rendered output is otherwise unchanged, so this is a rolling restart only&lt;/li&gt;
&lt;li&gt;Adds (disabled by default) &lt;code&gt;ingest&lt;/code&gt;/Kafka write path with the experimental &lt;code&gt;block-builder&lt;/code&gt; and &lt;code&gt;live-store&lt;/code&gt; components, plus &lt;code&gt;ingester.enabled&lt;/code&gt; to turn the ingester off (chart 2.24.0)&lt;/li&gt;
&lt;li&gt;Adds a &lt;code&gt;dnsConfig&lt;/code&gt; value on every component with &lt;code&gt;defaults&lt;/code&gt;/&lt;code&gt;tempo&lt;/code&gt; fallback, deprecating &lt;code&gt;dnsConfigOverides&lt;/code&gt; (chart 2.26.1)&lt;/li&gt;
&lt;li&gt;Adds &lt;code&gt;distributor.shutdownDelay&lt;/code&gt; for graceful load-balancer draining, disabled by default (chart 2.26.0)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>mimir-app release v0.29.1</title><link>https://docs.giantswarm.io/changes/observability/mimir-app/v0.29.1/</link><pubDate>Thu, 23 Jul 2026 15:12:46 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/mimir-app/v0.29.1/</guid><description>&lt;h3 id="fixed"&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;disabled gateway metrics servicemonitor. Had been added in &lt;code&gt;0.29.0&lt;/code&gt; but not working.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>mimir-app release v0.29.0</title><link>https://docs.giantswarm.io/changes/observability/mimir-app/v0.29.0/</link><pubDate>Thu, 23 Jul 2026 14:10:12 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/mimir-app/v0.29.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fix ABS config to not override AppVersion in Chart.yaml&lt;/li&gt;
&lt;li&gt;Upgrade chart to version &lt;a href="https://github.com/grafana/mimir/blob/main/operations/helm/charts/mimir-distributed/CHANGELOG.md#605"&gt;6.0.6&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Upgrade mimir to &lt;a href="https://github.com/grafana/mimir/blob/main/CHANGELOG.md#314"&gt;3.1.4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>observability-bundle release v3.3.0</title><link>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.3.0/</link><pubDate>Thu, 02 Jul 2026 09:16:44 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.3.0/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add KSM metrics for Gateway API &lt;code&gt;ListenerSet&lt;/code&gt; and &lt;code&gt;ReferenceGrant&lt;/code&gt; resources.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Update Gateway API KSM configs to &lt;code&gt;v1&lt;/code&gt; for &lt;code&gt;Gateway&lt;/code&gt;, &lt;code&gt;GatewayClass&lt;/code&gt;, &lt;code&gt;HTTPRoute&lt;/code&gt;, &lt;code&gt;GRPCRoute&lt;/code&gt;, &lt;code&gt;TLSRoute&lt;/code&gt; and &lt;code&gt;BackendTLSPolicy&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>dashboards release v4.28.0</title><link>https://docs.giantswarm.io/changes/observability/dashboards/v4.28.0/</link><pubDate>Wed, 01 Jul 2026 09:53:27 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/dashboards/v4.28.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Update Kafka dashboards to reload variable on time range changes and use shared crosshair.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>dashboards release v4.27.0</title><link>https://docs.giantswarm.io/changes/observability/dashboards/v4.27.0/</link><pubDate>Wed, 01 Jul 2026 09:01:13 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/dashboards/v4.27.0/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add new Audit Volume dashboard to observe size of audit logs by cluster.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>observability-bundle release v3.2.0</title><link>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.2.0/</link><pubDate>Mon, 29 Jun 2026 18:16:04 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.2.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Update &lt;code&gt;kube-prometheus-stack&lt;/code&gt; and &lt;code&gt;prometheus-operator-crd&lt;/code&gt; to 22.0.0&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;alloy-app&lt;/code&gt; to 0.21.0&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>kube-prometheus-stack-app release v22.0.0</title><link>https://docs.giantswarm.io/changes/observability/kube-prometheus-stack-app/v22.0.0/</link><pubDate>Mon, 29 Jun 2026 13:08:02 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/kube-prometheus-stack-app/v22.0.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Upgraded chart dependency to &lt;a href="https://github.com/prometheus-community/helm-charts/releases/tag/kube-prometheus-stack-87.3.0"&gt;kube-prometheus-stack-87.3.0&lt;/a&gt; (from &lt;code&gt;85.2.1&lt;/code&gt;)
&lt;ul&gt;
&lt;li&gt;prometheus-operator to &lt;a href="https://github.com/prometheus-operator/prometheus-operator/releases/tag/v0.92.0"&gt;0.92.0&lt;/a&gt; (via &lt;a href="https://github.com/prometheus-operator/prometheus-operator/releases/tag/v0.91.0"&gt;0.91.0&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;alertmanager image tag from &lt;code&gt;v0.32.1&lt;/code&gt; to &lt;code&gt;v0.33.0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;prometheus image tag from &lt;code&gt;v3.11.3-distroless&lt;/code&gt; to &lt;code&gt;v3.12.0-distroless&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;grafana subchart from &lt;code&gt;12.3.3&lt;/code&gt; to &lt;code&gt;12.7.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;kube-state-metrics subchart from &lt;code&gt;7.4.0&lt;/code&gt; to &lt;code&gt;7.5.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;kube-webhook-certgen image tag from &lt;code&gt;1.8.3&lt;/code&gt; to &lt;code&gt;1.8.4&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Refreshed bundled default Prometheus alerting/recording rules and Grafana dashboards.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prometheus.prometheusSpec.containers&lt;/code&gt; and &lt;code&gt;initContainers&lt;/code&gt; are now rendered through &lt;code&gt;tpl&lt;/code&gt; (87.3.0), so templated values inside them are evaluated. We do not set these values, so no impact.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Update the matching-major &lt;code&gt;prometheus-operator-crd&lt;/code&gt; app (to the v0.92.0 CRDs) before/alongside this upgrade. The &lt;code&gt;PrometheusTopologySharding&lt;/code&gt; and &lt;code&gt;PrometheusShardRetentionPolicy&lt;/code&gt; feature gates are now enabled by default in v0.92.0.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>prometheus-operator-app release v22.0.0</title><link>https://docs.giantswarm.io/changes/observability/prometheus-operator-app/v22.0.0/</link><pubDate>Mon, 29 Jun 2026 13:08:02 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/prometheus-operator-app/v22.0.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Upgraded chart dependency to &lt;a href="https://github.com/prometheus-community/helm-charts/releases/tag/kube-prometheus-stack-87.3.0"&gt;kube-prometheus-stack-87.3.0&lt;/a&gt; (from &lt;code&gt;85.2.1&lt;/code&gt;)
&lt;ul&gt;
&lt;li&gt;prometheus-operator to &lt;a href="https://github.com/prometheus-operator/prometheus-operator/releases/tag/v0.92.0"&gt;0.92.0&lt;/a&gt; (via &lt;a href="https://github.com/prometheus-operator/prometheus-operator/releases/tag/v0.91.0"&gt;0.91.0&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;alertmanager image tag from &lt;code&gt;v0.32.1&lt;/code&gt; to &lt;code&gt;v0.33.0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;prometheus image tag from &lt;code&gt;v3.11.3-distroless&lt;/code&gt; to &lt;code&gt;v3.12.0-distroless&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;grafana subchart from &lt;code&gt;12.3.3&lt;/code&gt; to &lt;code&gt;12.7.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;kube-state-metrics subchart from &lt;code&gt;7.4.0&lt;/code&gt; to &lt;code&gt;7.5.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;kube-webhook-certgen image tag from &lt;code&gt;1.8.3&lt;/code&gt; to &lt;code&gt;1.8.4&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Refreshed bundled default Prometheus alerting/recording rules and Grafana dashboards.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prometheus.prometheusSpec.containers&lt;/code&gt; and &lt;code&gt;initContainers&lt;/code&gt; are now rendered through &lt;code&gt;tpl&lt;/code&gt; (87.3.0), so templated values inside them are evaluated. We do not set these values, so no impact.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Update the matching-major &lt;code&gt;prometheus-operator-crd&lt;/code&gt; app (to the v0.92.0 CRDs) before/alongside this upgrade. The &lt;code&gt;PrometheusTopologySharding&lt;/code&gt; and &lt;code&gt;PrometheusShardRetentionPolicy&lt;/code&gt; feature gates are now enabled by default in v0.92.0.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>alloy-app release v0.21.0</title><link>https://docs.giantswarm.io/changes/observability/alloy-app/v0.21.0/</link><pubDate>Mon, 29 Jun 2026 12:26:18 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/alloy-app/v0.21.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade Alloy upstream chart from 1.8.2 to 1.10.0 (&lt;a href="https://github.com/grafana/alloy/blob/main/operations/helm/charts/alloy/CHANGELOG.md#1100-2026-06-12"&gt;CHANGELOG&lt;/a&gt;)
&lt;ul&gt;
&lt;li&gt;This bumps the version of Alloy from 1.16.1 to 1.17.0 (&lt;a href="https://github.com/grafana/alloy/blob/main/CHANGELOG.md#1170-2026-06-11"&gt;CHANGELOG&lt;/a&gt;), which includes several CVE fixes and a fix for cluster nodes failing to join when TLS is enabled.&lt;/li&gt;
&lt;li&gt;Adds opt-in &lt;code&gt;controller.autoscaling.horizontal.externalHPA&lt;/code&gt; (externally-managed HPAs, e.g. KEDA) and &lt;code&gt;service.externalTrafficPolicy&lt;/code&gt; values. Neither is enabled in our defaults.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>observability-bundle release v3.1.0</title><link>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.1.0/</link><pubDate>Mon, 29 Jun 2026 11:42:29 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.1.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;HelmReleases: honor the App platform &lt;code&gt;priority&lt;/code&gt; field (1-150, default 25) on &lt;code&gt;extraConfigs&lt;/code&gt; entries. &lt;code&gt;spec.valuesFrom&lt;/code&gt; now reproduces the App platform merge order — all configMaps before all secrets (a secret always overrides a configMap), each kind ordered by priority around the user-config layer — preserving the App CR merge semantics after the migration. (&lt;a href="https://github.com/giantswarm/giantswarm/issues/36096"&gt;giantswarm#36096&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>dashboards release v4.26.0</title><link>https://docs.giantswarm.io/changes/observability/dashboards/v4.26.0/</link><pubDate>Thu, 25 Jun 2026 15:19:04 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/dashboards/v4.26.0/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add CODEOWNERS for each team sub chart&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Rename team sub-charts to the capability they represent (&lt;code&gt;team_atlas&lt;/code&gt; → &lt;code&gt;observability&lt;/code&gt;, &lt;code&gt;team_tenet&lt;/code&gt; → &lt;code&gt;kubernetes&lt;/code&gt;, &lt;code&gt;team_phoenix&lt;/code&gt; → &lt;code&gt;cloud&lt;/code&gt;, &lt;code&gt;team_shield&lt;/code&gt; → &lt;code&gt;security&lt;/code&gt;, &lt;code&gt;team_cabbage&lt;/code&gt; → &lt;code&gt;networking&lt;/code&gt;, &lt;code&gt;team_honeybadger&lt;/code&gt; → &lt;code&gt;app_platform&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>kube-prometheus-stack-app release v21.0.1</title><link>https://docs.giantswarm.io/changes/observability/kube-prometheus-stack-app/v21.0.1/</link><pubDate>Thu, 25 Jun 2026 07:54:38 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/kube-prometheus-stack-app/v21.0.1/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;app.circleci.com/circle-project-reponame&lt;/code&gt; label to the KSM Pods labels allowed list.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fix ABS config to not override AppVersion in Chart.yaml&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>prometheus-operator-app release v21.0.1</title><link>https://docs.giantswarm.io/changes/observability/prometheus-operator-app/v21.0.1/</link><pubDate>Thu, 25 Jun 2026 07:54:38 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/prometheus-operator-app/v21.0.1/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;app.circleci.com/circle-project-reponame&lt;/code&gt; label to the KSM Pods labels allowed list.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fix ABS config to not override AppVersion in Chart.yaml&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>dashboards release v4.25.1</title><link>https://docs.giantswarm.io/changes/observability/dashboards/v4.25.1/</link><pubDate>Tue, 23 Jun 2026 16:18:53 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/dashboards/v4.25.1/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add Teleport dashboard for Teleport (on EKS), deployed only when &lt;code&gt;provider.kind&lt;/code&gt; is &lt;code&gt;teleport&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>dashboards release v4.25.0</title><link>https://docs.giantswarm.io/changes/observability/dashboards/v4.25.0/</link><pubDate>Mon, 22 Jun 2026 15:04:34 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/dashboards/v4.25.0/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add CI checks to validate dashboards supported version (v1 or v2)&lt;/li&gt;
&lt;li&gt;Add CI checks to validate dashboards have an &amp;ldquo;owner&amp;rdquo; tag&lt;/li&gt;
&lt;li&gt;Make Observability dashboards public&lt;/li&gt;
&lt;li&gt;Move Observability related dashboards under Observability folder&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Update Cluster Overview dashboard with organization selector&lt;/li&gt;
&lt;li&gt;Update generated configmap names to use the same pattern&lt;/li&gt;
&lt;li&gt;Rename Cloud folder to Cloud Provider&lt;/li&gt;
&lt;li&gt;Improved dashboard validation scripts&lt;/li&gt;
&lt;li&gt;Replace &amp;ldquo;Shared Org/Kubernetes&amp;rdquo; dashboards copy with a symlink&lt;/li&gt;
&lt;li&gt;Move dashboards from public_dashboards to their respective team under the &amp;ldquo;Shared Org&amp;rdquo; organization folder&lt;/li&gt;
&lt;li&gt;Move dashboards from private_dashboards to their respective team under the &amp;ldquo;Giant Swarm&amp;rdquo; organization folder
&lt;ul&gt;
&lt;li&gt;Replace &amp;ldquo;Giant Swarm/Kubernetes&amp;rdquo; with &amp;ldquo;Giant Swarm/Kubernetes-dev&amp;rdquo; folder&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Fixed &lt;code&gt;owner&lt;/code&gt; tag for all dashboards&lt;/li&gt;
&lt;li&gt;Add Envoy Logs dashboard to Team Cabbage&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="fixed"&gt;Fixed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fixed Alloy Metrics Targets datasource&lt;/li&gt;
&lt;li&gt;Fixed broken &lt;code&gt;folder&lt;/code&gt; annotation for organization-root dashboards&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>observability-bundle release v2.9.1</title><link>https://docs.giantswarm.io/changes/observability/observability-bundle/v2.9.1/</link><pubDate>Fri, 19 Jun 2026 14:44:56 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/observability-bundle/v2.9.1/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Update &lt;code&gt;alloy-app&lt;/code&gt; to 0.20.1&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>observability-bundle release v3.0.1</title><link>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.0.1/</link><pubDate>Tue, 16 Jun 2026 15:42:20 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.0.1/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Update &lt;code&gt;alloy-app&lt;/code&gt; to 0.21.0&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>alloy-app release v0.20.1</title><link>https://docs.giantswarm.io/changes/observability/alloy-app/v0.20.1/</link><pubDate>Tue, 16 Jun 2026 10:19:36 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/alloy-app/v0.20.1/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Fix ABS config to not override AppVersion in Chart.yaml&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="removed"&gt;Removed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Remove redundant L7 rule from the CiliumNetworkPolicy. The removed rule allowed DNS queries to any DNS domain so removing it has no effect.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>dashboards release v4.24.0</title><link>https://docs.giantswarm.io/changes/observability/dashboards/v4.24.0/</link><pubDate>Thu, 04 Jun 2026 14:54:49 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/dashboards/v4.24.0/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;feat: Add Kubernetes mixins dashboard to the public Shared Org (#900)&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>observability-bundle release v3.0.0</title><link>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.0.0/</link><pubDate>Thu, 04 Jun 2026 09:45:15 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/observability-bundle/v3.0.0/</guid><description>&lt;h3 id="changed"&gt;Changed&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Migrate sub-apps from App CRs to Flux HelmRelease CRs.&lt;/li&gt;
&lt;li&gt;Remove &amp;lsquo;cluster-values&amp;rsquo; ConfigMap reference from HelmReleases.&lt;/li&gt;
&lt;li&gt;Add new &lt;code&gt;alloy-podlogs-crds&lt;/code&gt; chart.&lt;/li&gt;
&lt;li&gt;Update alloy-app to 0.20.0&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>alloy-app release v0.20.0</title><link>https://docs.giantswarm.io/changes/observability/alloy-app/v0.20.0/</link><pubDate>Thu, 04 Jun 2026 08:34:08 +0000</pubDate><guid>https://docs.giantswarm.io/changes/observability/alloy-app/v0.20.0/</guid><description>&lt;h3 id="added"&gt;Added&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;alloy-podlogs-crds&lt;/code&gt; chart to manage the PodLogs CRD independently of the alloy chart&amp;rsquo;s &lt;code&gt;crds&lt;/code&gt; subchart.&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>