Changes compared to v34.5.0
Components
- cluster-cloud-director from v3.2.3 to v7.0.0
- cluster from v5.3.2 to v8.0.0
- Added containerd v2.3.2
- Flatcar from v4593.2.4 to v4593.2.5
- Kubernetes from v1.34.10 to v1.35.8
- os-tooling from v1.33.1 to v1.34.0
cluster-cloud-director v3.2.3…v7.0.0
Added
- CI: Run the full set of E2E test suites automatically on release PRs, via
.github/release-pr-body.md. Towards https://github.com/giantswarm/roadmap/issues/4334 - Add support for
network.giantswarm.io/wildcard-cname-targetannotation on theClusterCR viaglobal.connectivity.dns.wildcardCnameTarget.
Changed
- Chart: Migrate Apps to HelmReleases.
- Ensure the API server address is added to the no_proxy list.
- cert-manager: Fix version assignment.
- Make: Fix application variable.
Removed
- Values: Remove dead container registry cache schema.
- Chart: Remove unused
cluster-sharedlibrary chart dependency.
Fixed
- Bump
HelmReleaseresources from the removedhelm.toolkit.fluxcd.io/v2beta1API tohelm.toolkit.fluxcd.io/v2so cluster apps render on management clusters running current Flux. - Fix ntpd failing permanently on boot due to systemd rate limiting (node rolling).
cluster v5.3.2…v8.0.0
Added
- Add
cert-manager-crossplane-resourcesHelmRelease. - Feature Gates: Add support for defining maximum Kubernetes version.
- Apps: Add External DNS Crossplane Resources.
- Apps: Deploy
cluster-autoscalerinCluster in Azure. - MachineDeployment: Add CAPI autoscaler annotations (
cluster-api-autoscaler-node-group-min-size/max-size) whenminSize/maxSizeare set on a node pool (only in Azure). - Apps: Add Cluster Autoscaler Crossplane Resources.
- Control Plane: Add Kamaji control plane support with
KamajiControlPlaneresource, Kamaji etcd HelmRelease, automation RBAC, and cleanup jobs. (#740)
Changed
- Chart: Migrate Apps to HelmReleases.
- Migrate
corednsHelmRelease values to the newcoredns-appzone-aware interface. - Rename the internal
corednscontrol plane helper to align with thecontrolPlanevalues key. - Updated
cert-managerto v4.0.0 and migrated the values to match the new chart’s schema. - Support templating on the
global.apps.<name>.extraConfigs.namefield. - Add support for AKS clusters
- Add support for disabling the external autoscaler annotation (
cluster.x-k8s.io/replicas-managed-by: "external-autoscaler") onMachinePools. - Refactor
providerIntegration.resourcesApi.machinePoolResourcesEnabledinto an objectproviderIntegration.resourcesApi.machinePoolResourcesand moveexternalAutoscalerunder it (nowproviderIntegration.resourcesApi.machinePoolResources.externalAutoscaler). - Bump Flux OCIRepository version to v1.
- Control Plane: Remove handling of clusterRole resources for kamaji Datastore CRs and create kamaji-etcd polex here.
- Control Plane: Make etcd image tag configurable. (#841)
- Chart: Require
global.release.versionif using Releases to give a better rendering error message. - Chart: Fix validation errors.
- Configure
observability-bundlewith the management cluster name. - Apps: Skip
kyverno-crdsdependency forcluster-autoscalerwhen deployed inCluster. - Apps: Add cluster-probes HelmRelease to deploy ServiceMonitors for probing workload cluster API server endpoint from the management cluster. Configurable via
global.apps.clusterProbeswith default modulehttp_2xx_insecurefor self-signed certificates. - Helpers: Use
.Chart.AppVersioninapp.kubernetes.io/versionlabel. - Cluster API: Migrate to API
v1beta2.
Removed
- Cluster API: Remove
strategy.rollingUpdate.deletePolicyfrom node pools.
Fixed
- Control Plane: Ensure components start correctly when SELinux is set to enforcing.
Apps
- cert-exporter from v2.10.1 to v2.12.0
- cert-manager from v3.13.0 to v4.1.1
- cilium from v1.4.3 to v1.5.1
- cilium-servicemonitors from v0.1.4 to v0.2.0
- cloud-provider-cloud-director from v0.5.0 to v0.5.2
- coredns from v1.30.0 to v1.32.0
- etcd-defrag from v1.2.6 to v1.2.10
- net-exporter from v1.23.1 to v1.24.0
- network-policies from v0.1.3 to v0.2.0
- node-exporter from v1.20.11 to v1.20.13
- observability-bundle from v2.8.0 to v3.3.1
- Added rbac-bootstrap v0.3.0
- security-bundle from v1.17.1 to v2.3.0
- teleport-kube-agent from v0.10.8 to v0.11.1
cert-exporter v2.10.1…v2.12.0
Added
- Regression tests covering the v2.11.1 metrics endpoint fix: concatenated and repeated certificates in secrets and files, and an endpoint level test asserting
/metricskeeps returning 200 and serving the remaining metrics when a duplicate series is emitted. - ATS: End to end test for a TLS secret whose
tls.crtholds a concatenated certificate chain.
Changed
- ATS:
cert_gennow sets a certificate serial number, which defaulted to0for every generated certificate. - Go: Update dependencies.
- Templates: Move PolicyException to
kube-systemnamespace. - Build and publish a multi-arch (linux/amd64 + linux/arm64) container image. Required so the cert-exporter daemonset can run on Graviton/arm64 nodepools without
exec format error.
Fixed
- Add a
serialnumberlabel to thecert_exporter_not_afterandcert_exporter_secret_not_aftermetrics so concatenated certificates no longer collide into identical series. The collision made the registry failGather(), which blanked out the entire/metricsendpoint (regression from v2.10.1). - Serve
/metricswithContinueOnErrorso a single problematic metric can no longer fail the whole scrape.
cert-manager v3.13.0…v4.1.1
Changed
- Upgrade
docker-kubectlimage to support arm64 architecture - Updated
cert-managerto upstream versionv1.20.3. - Notes:
cert-manager-editClusterRole no longer grantscreateonchallenges.acme.cert-manager.io, norcreate/patch/updateonorders.acme.cert-manager.io. - Improved proxy settings by adding a proxy ConfigMap and setting upstream
envFromvalues forcontroller,webhookandcainjector. - Breaking: Helm values to be passed to the upstream
cert-managerchart will now need to use thecert-managerpath instead of root. For example, the valuecrds.enabled: truemust now be set withcert-manager.crds.enabled: true. - Moved vendored chart to
helm/cert-manager/charts/and adapted sync scripts to follow new structure.
cilium v1.4.3…v1.5.1
Added
sync/verify-images.sh, run as the last step ofsync/sync.shand therefore in CI: renders the chart across four scenarios covering every image-bearing component and fails the sync unless each image is served fromgsoci.azurecr.io/giantswarm/or is explicitly listed insync/unmirrored-images.txt. It also asserts that every configured image actually appears in a render, so a scenario that stops covering an image fails instead of silently narrowing the check. This replaces the removed patch’sfailguards, which were the only thing that made image drift visible on an upstream bump.
Changed
- Upgrade Cilium to v1.19.7.
- Run the E2E test suites automatically on release PRs by adding
.github/release-pr-body.md. - Upgrade Cilium to v1.19.6.
- Switch Hubble TLS certificate provisioning from
hubble.tls.auto.method: helmtocronJob(giantswarm#37201). The helm method minted certificates once and never renewed them, deterministically breaking hubble-relay when the leaf certs (1 year) or the CA (3 years) expired. With the cronJob method ahubble-generate-certsCronJob re-issues the leaf certificates every 4 months. On upgrade, the Helm-ownedcilium-ca,hubble-server-certsandhubble-relay-client-certssecrets are deleted and re-created by a one-shot certgen job with a fresh 3-year CA; agents and hubble-relay hot-reload the new certificates without restarts. - Wire certgen’s
--ca-enforce-validity-throughout-leaves-durationflag (new valuecertgen.enforceCAValidityThroughoutLeavesDuration, defaulttrue): the certgen job now fails roughly one year before the CA would no longer cover new leaf certificates, instead of silently issuing leafs that outlive the CA. certgen never rotates an existing CA on its own (cilium/certgen#500). - Relax
hubble-relaypodAffinitytopreferredDuringSchedulingIgnoredDuringExecutionso Karpenter can drain the last cilium-agent-bearing node during upgrades/consolidation instead of getting stuck on a required co-location with cilium. - Upgrade Cilium to v1.19.5.
- Upgrade Cilium to v1.19.4.
Removed
- Removed the
image.registryvalue and the sync patch behind it (roadmap#3264). The registry is now part of each image’srepositoryvalue, exactly as upstream ships it, so the chart no longer patches upstream’scilium.image/cilium.operator.imagehelpers into a(list $ <image>)signature and no longer rewrites all 35 call sites withsed.helm/cilium/templates/_helpers.tplandhelm/cilium/templates/cilium-operator/_helpers.tplare now byte-identical to upstream, and 15 template patches disappear fromdiffs/.
Fixed
- Fix four image references that were rendered as unpullable double-prefixed paths, because their
repositoryalready carried a registry while the removed patch prefixedimage.registryon top:gsoci.azurecr.io/ghcr.io/spiffe/spire-server,.../spire-agent,.../docker.io/library/busybox(SPIRE mutual authentication) and.../docker.io/istio/ztunnel(encryption.type=ztunnel). All four now resolve. Latent until now because both features are disabled by default. - Fix rendering of the certgen job specs (
hubble/tls-cronjobandclustermesh-apiserver/tls-cronjob): the image reference was not converted to the Giant Swarmcilium.imagehelper signature because the image-registries sync patch only processed*.yamltemplates, so enabling the cronJob method failed withrequired list, but got "map". - Add NetworkPolicies allowing the
hubble-generate-certsandclustermesh-apiserver-generate-certscertgen pods egress to the Kubernetes API.
cilium-servicemonitors v0.1.4…v0.2.0
Added
- Add per-monitor
enabledflag for the agent, hubble and operator.
Changed
- Switch all monitors from ServiceMonitor to PodMonitor.
cloud-provider-cloud-director v0.5.0…v0.5.2
Changed
- Helpers: Replace
+in version. - Nothing - this release is purely meant for pushing the chart to our OCI registry.
coredns v1.30.0…v1.32.0
Added
- Wire up the full set of CoreDNS
forward,cache, andkubernetesblock parameters in the structured zone config:forward:maxIdleConns,maxConnectAttempts,dohMethod,tls,tlsServername,next,nextOnNodata,failfastAllUnhealthyUpstreams,failover,resolver.cache:zones,serveStale.verifyTimeout,disable.successZones,disable.denialZones.kubernetes:endpoint,tls,kubeconfig,apiserverQPS,apiserverBurst,apiserverMaxInflight,namespaceLabels,fallthroughZones,multicluster,startupTimeout.
Changed
- Chart: Make tolerations configurable.
- Rebuild with
app-build-suite2.2.0 (viaarchitectorb 9.6.0): the packaged chart now carries Artifact Hub metadata (artifacthub.io/licenseand a Support link). No functional chart changes. - Standardize
values.yamlcomments to the# @schema/# --(helm-docs) convention and remove section-header dividers, sovalues.schema.jsonand the chartREADME.mdare generated from the values file. Rendered manifests are unchanged. - Update
corednsimage to 1.14.4. - update CoreDNS icon to light version
- Update
corednsimage to 1.14.3.
Fixed
- Render the
healthdirective in only the.server block. The health plugin is process-wide and can be enabled in just one Server Block, so emitting it in every zone block was invalid.readyis kept in every block (its readiness is aggregated across blocks). - Correct the
coredns.*.cache.serveStale.refreshModeschema enum toimmediate/verify(wasimmediate/background), matching the CoreDNS cache plugin.
etcd-defrag v1.2.6…v1.2.10
Changed
- Chart: Update dependency ahrtr/etcd-defrag to v0.43.0. (#125)
- Chart: Update dependency ahrtr/etcd-defrag to v0.42.0. (#120)
- Chart: Update dependency ahrtr/etcd-defrag to v0.41.0. (#108)
- Chart: Update dependency ahrtr/etcd-defrag to v0.40.0. (#94)
net-exporter v1.23.1…v1.24.0
Changed
- Build and publish a multi-arch (linux/amd64 + linux/arm64) container image. Required so the net-exporter daemonset can run on Graviton/arm64 nodepools without
exec format error. - Bump
docker-kubectlinit container from1.25.4to1.36.0.
network-policies v0.1.3…v0.2.0
Added
- Add support for AKS selector labels.
Changed
- Deprecated the .Values.kamaji in favour of the more generic .Values.konnectivityAgent to control the behaviour for the
konnectivity-agent.
node-exporter v1.20.11…v1.20.13
Changed
- CircleCI: Do not override app version.
- Chart: Move PolicyException to
kube-systemnamespace.
observability-bundle v2.8.0…v3.3.1
Added
- Add KSM metrics for Gateway API
ListenerSetandReferenceGrantresources. - Add Backstage audience annotations.
- Add managementCluster: "" as a top-level value (populated from the cluster chart via defaultValues)
- Moves full KSM metricRelabelings ownership from kube-prometheus-stack-app into observability-bundle
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.
- Update Gateway API KSM configs to
v1forGateway,GatewayClass,HTTPRoute,GRPCRoute,TLSRouteandBackendTLSPolicy. - Update
kube-prometheus-stackandprometheus-operator-crdto 22.0.0 - Update
alloy-appto 0.21.0 - HelmReleases: honor the App platform
priorityfield (1-150, default 25) onextraConfigsentries.spec.valuesFromnow 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. (giantswarm#36096) - Migrate sub-apps from App CRs to Flux HelmRelease CRs.
- Remove ‘cluster-values’ ConfigMap reference from HelmReleases.
- Add new
alloy-podlogs-crdschart. - Update alloy-app to 0.20.0
- Update dependency kube-prometheus-stack-app and prometheus-operator-crd to v21.0.0
- Update alloy-app to 0.19.0
Removed
- Values: Remove unused catalog.
rbac-bootstrap v0.3.0
Added
- Add
io.giantswarm.application.managedchart annotation for Backstage visibility. - Add optional
cluster-readerClusterRole (off by default, enabled viaclusterReader.enabled: true) that aggregates into the built-inviewClusterRole and grants read access (get/list/watch) on cluster-scoped resources.
Changed
- Migrate chart metadata annotations to OCI-compatible format.
security-bundle v1.17.1…v2.3.0
Changed
- Update
kyverno-policy-operator(app) to v0.2.3. - Update
policy-api(app) to v0.0.9. - Update
starboard-exporter(app) to v1.2.3. - Update
trivy(app) to v0.17.0. - Update
trivy-operator(app) to v0.13.3. - Run the E2E test suites automatically on release PRs by adding
.github/release-pr-body.md. - Values: Make Kyverno and Kyverno Policy Operator depend on Cilium.
- Update
kyverno-policies(app) to v0.26.1. - Update
starboard-exporter(app) to v1.1.4. - Update
trivy(app) to v0.16.0. - Update
trivy-operator(app) to v0.13.2. - Update
cloudnative-pg(app) to v0.1.0. - Update
trivy(app) to v0.15.0. - Update
falco(app) to v0.12.0. - HelmReleases: honor the App platform
priorityfield (1-150, default 25) onextraConfigsentries.spec.valuesFromnow 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. (giantswarm#36096) - Migrate sub-apps from App CRs to Flux HelmRelease CRs.
- No longer pass the ‘cluster-values’ ConfigMap to the applications inside the bundle.
- Update
kyverno(app) to v0.24.2.- This release includes a new Kyverno minor version. Please refer to the upstream release notes for the latest changes:
- https://github.com/kyverno/kyverno/releases/tag/v1.17.0
- Update
kyverno-crds(app) to v1.17.0. - Update
kyverno-policies(app) to v0.25.0. - Update
kyverno-policy-operator(app) to v0.2.2. - Update
kubescape(app) to v0.1.0.
teleport-kube-agent v0.10.8…v0.11.1
Changed
- Values: Tolerate
node.cloudprovider.kubernetes.io/uninitialized. - Values: Ignore taints regardless of value.
- Values: Pass HTTP proxy settings to sub-chart.
- Updated
teleport-kube-agentto upstream versionv18.7.6.