Fixed
- (deps) Update module github.com/giantswarm/go-selfupdate to v1.7.0 in #1716 by @renovate[bot]
Full Changelog: https://github.com/giantswarm/muster/compare/v5.54.1...v5.54.2
Updates on Giant Swarm workload cluster releases, apps, UI improvements and documentation changes.
Full Changelog: https://github.com/giantswarm/muster/compare/v5.54.1...v5.54.2
Full Changelog: https://github.com/giantswarm/muster/compare/v5.54.0...v5.54.1
providerIntegration.apps.<app>.extraConfigs so provider charts can add templated config maps or secrets to an app’s values.sysctl and sysfs configuration per node pool via kernel.sysctls (/etc/sysctl.d/90-node-pool.conf) and kernel.sysfs (/etc/tmpfiles.d/00-node-pool.conf). The parameters required by kubelet’s protectKernelDefaults cannot be set by name, and the Image Builder and Cilium sysctl configuration keeps precedence.global.connectivity.cni.managed (default true). When false, Cilium isn’t rendered and is dropped from the dependencies of every app.nodeLabelsTemplateName and taintsTemplateName hooks under providerIntegration.workers.kubeadmConfig. They name provider templates, rendered once per node pool, that add kubelet node labels and taints./etc/sysctl.d/hardening.conf to 80-hardening.conf so it sorts after Flatcar’s 65-baselayout.conf but before Image Builder’s 99-sysctl.conf and Cilium’s 99-zzz-override_cilium.conf. Previously the unprefixed file sorted last and overrode both. As a result, nodes now run with fs.inotify.max_user_watches = 524288 (previously 16384) and net.ipv4.conf.all.rp_filter = 0 (previously 1).fs.inotify.max_user_watches, fs.inotify.max_user_instances, net.ipv4.conf.all.rp_filter, vm.overcommit_memory, kernel.panic, kernel.panic_on_oops). Stop disabling net.ipv4.tcp_timestamps, since modern kernels randomize timestamp offsets.os-hardening.service. Its sysctl -p duplicated what systemd-sysctl already applies at boot. Its gpasswd calls had no effect: glibc merges group memberships from /usr/share/baselayout/group (via nss-usrfiles) regardless of /etc/group.aks exceptions for the Cilium dependency of network policies and CoreDNS.karpenter.sh/unregistered:NoExecute taint from Karpenter node pools. Provider charts must add it via taintsTemplateName.cnameStrategy per DNS01 solver with acme.dns01.cloudflare.cnameStrategy, acme.dns01.route53.cnameStrategy and acme.dns01.azureDNS.cnameStrategy, so a _acme-challenge CNAME can delegate the challenge to a zone the solver can write to.imagePullPolicy: IfNotPresent for the cert-manager-giantswarm-clusterissuer hook Job, so a retried Helm hook reuses the image already present on the node instead of downloading it again..github/release-pr-body.md.letsencrypt-giantswarm ClusterIssuer now uses Gateway API (gatewayHTTPRoute) instead of an Ingress, and targets Envoy Gateway.giantSwarmClusterIssuer.acme.http01.enabled and giantSwarmClusterIssuer.acme.http01.ingressClassName (which defaulted to nginx). Setting either now fails the Helm render with a message pointing at the replacement values.helm.sh/chart label of the Giant Swarm resources (VPAs, PodLogs, proxy ConfigMap) to end on an alphanumeric character. A long dev version cut at 63 characters could end on a ., and the API server rejected the resource.split again, following upstream (cilium/cilium#49383).cilium-operator tolerations instead of tolerating all taints.k8slens-edit-resource-version from identity computation.max_age option (#528)coredns image to 1.15.0.0 (#528)additionalZones cache, forward, kubernetes, log and loadbalance blocks against the public and cluster zone schemas (#528)io.giantswarm.application.managed annotation ("true").keywords.CiliumLocalRedirectPolicy configurable.helm.sh/chart label is valid for long chart versions: the 63-character cut trims the whole trailing run of -, . and _.hubbleRelay to allow the AKS ACNS hubble-relay through the default deny.allowEgressToUpstreamDNS to allow pods with dnsPolicy: Default to reach upstream DNS resolvers.azureWorkloadIdentityWebhook to allow the AKS workload identity webhook through the default deny.helm/network-policies to match its name, in preparation for devctl-generated CI.status_parent_accepted and status_parent_resolved_refs gauges for Gateway API HTTPRoute, one series per parent with the condition reason as label.target_info and status_ancestor_accepted metrics for Envoy Gateway SecurityPolicy, BackendTrafficPolicy, ClientTrafficPolicy and EnvoyExtensionPolicy.apps.<appName>.dependsOn from a list into a map from dependency name to true/false, so that a provider can turn off a single dependency (for example kyverno-crds on clusters without the security bundle) instead of overriding the whole list.helm.sh/chart label is valid for long chart versions: the 63-character cut trims the whole trailing run of -, . and _.providerIntegration.apps.<app>.extraConfigs so provider charts can add templated config maps or secrets to an app’s values.sysctl and sysfs configuration per node pool via kernel.sysctls (/etc/sysctl.d/90-node-pool.conf) and kernel.sysfs (/etc/tmpfiles.d/00-node-pool.conf). The parameters required by kubelet’s protectKernelDefaults cannot be set by name, and the Image Builder and Cilium sysctl configuration keeps precedence.global.connectivity.cni.managed (default true). When false, Cilium isn’t rendered and is dropped from the dependencies of every app.nodeLabelsTemplateName and taintsTemplateName hooks under providerIntegration.workers.kubeadmConfig. They name provider templates, rendered once per node pool, that add kubelet node labels and taints./etc/sysctl.d/hardening.conf to 80-hardening.conf so it sorts after Flatcar’s 65-baselayout.conf but before Image Builder’s 99-sysctl.conf and Cilium’s 99-zzz-override_cilium.conf. Previously the unprefixed file sorted last and overrode both. As a result, nodes now run with fs.inotify.max_user_watches = 524288 (previously 16384) and net.ipv4.conf.all.rp_filter = 0 (previously 1).fs.inotify.max_user_watches, fs.inotify.max_user_instances, net.ipv4.conf.all.rp_filter, vm.overcommit_memory, kernel.panic, kernel.panic_on_oops). Stop disabling net.ipv4.tcp_timestamps, since modern kernels randomize timestamp offsets.os-hardening.service. Its sysctl -p duplicated what systemd-sysctl already applies at boot. Its gpasswd calls had no effect: glibc merges group memberships from /usr/share/baselayout/group (via nss-usrfiles) regardless of /etc/group.aks exceptions for the Cilium dependency of network policies and CoreDNS.karpenter.sh/unregistered:NoExecute taint from Karpenter node pools. Provider charts must add it via taintsTemplateName.cnameStrategy per DNS01 solver with acme.dns01.cloudflare.cnameStrategy, acme.dns01.route53.cnameStrategy and acme.dns01.azureDNS.cnameStrategy, so a _acme-challenge CNAME can delegate the challenge to a zone the solver can write to.imagePullPolicy: IfNotPresent for the cert-manager-giantswarm-clusterissuer hook Job, so a retried Helm hook reuses the image already present on the node instead of downloading it again..github/release-pr-body.md.letsencrypt-giantswarm ClusterIssuer now uses Gateway API (gatewayHTTPRoute) instead of an Ingress, and targets Envoy Gateway.giantSwarmClusterIssuer.acme.http01.enabled and giantSwarmClusterIssuer.acme.http01.ingressClassName (which defaulted to nginx). Setting either now fails the Helm render with a message pointing at the replacement values.helm.sh/chart label of the Giant Swarm resources (VPAs, PodLogs, proxy ConfigMap) to end on an alphanumeric character. A long dev version cut at 63 characters could end on a ., and the API server rejected the resource.split again, following upstream (cilium/cilium#49383).cilium-operator tolerations instead of tolerating all taints.k8slens-edit-resource-version from identity computation.max_age option (#528)coredns image to 1.15.0.0 (#528)additionalZones cache, forward, kubernetes, log and loadbalance blocks against the public and cluster zone schemas (#528)io.giantswarm.application.managed annotation ("true").keywords.CiliumLocalRedirectPolicy configurable.helm.sh/chart label is valid for long chart versions: the 63-character cut trims the whole trailing run of -, . and _.hubbleRelay to allow the AKS ACNS hubble-relay through the default deny.allowEgressToUpstreamDNS to allow pods with dnsPolicy: Default to reach upstream DNS resolvers.azureWorkloadIdentityWebhook to allow the AKS workload identity webhook through the default deny.helm/network-policies to match its name, in preparation for devctl-generated CI.status_parent_accepted and status_parent_resolved_refs gauges for Gateway API HTTPRoute, one series per parent with the condition reason as label.target_info and status_ancestor_accepted metrics for Envoy Gateway SecurityPolicy, BackendTrafficPolicy, ClientTrafficPolicy and EnvoyExtensionPolicy.apps.<appName>.dependsOn from a list into a map from dependency name to true/false, so that a provider can turn off a single dependency (for example kyverno-crds on clusters without the security bundle) instead of overriding the whole list.helm.sh/chart label is valid for long chart versions: the 63-character cut trims the whole trailing run of -, . and _.OCIRepository resources from the source.toolkit.fluxcd.io/v1beta2 API to source.toolkit.fluxcd.io/v1.providerIntegration.apps.<app>.extraConfigs so provider charts can add templated config maps or secrets to an app’s values.sysctl and sysfs configuration per node pool via kernel.sysctls (/etc/sysctl.d/90-node-pool.conf) and kernel.sysfs (/etc/tmpfiles.d/00-node-pool.conf). The parameters required by kubelet’s protectKernelDefaults cannot be set by name, and the Image Builder and Cilium sysctl configuration keeps precedence.global.connectivity.cni.managed (default true). When false, Cilium isn’t rendered and is dropped from the dependencies of every app.nodeLabelsTemplateName and taintsTemplateName hooks under providerIntegration.workers.kubeadmConfig. They name provider templates, rendered once per node pool, that add kubelet node labels and taints./etc/sysctl.d/hardening.conf to 80-hardening.conf so it sorts after Flatcar’s 65-baselayout.conf but before Image Builder’s 99-sysctl.conf and Cilium’s 99-zzz-override_cilium.conf. Previously the unprefixed file sorted last and overrode both. As a result, nodes now run with fs.inotify.max_user_watches = 524288 (previously 16384) and net.ipv4.conf.all.rp_filter = 0 (previously 1).fs.inotify.max_user_watches, fs.inotify.max_user_instances, net.ipv4.conf.all.rp_filter, vm.overcommit_memory, kernel.panic, kernel.panic_on_oops). Stop disabling net.ipv4.tcp_timestamps, since modern kernels randomize timestamp offsets.os-hardening.service. Its sysctl -p duplicated what systemd-sysctl already applies at boot. Its gpasswd calls had no effect: glibc merges group memberships from /usr/share/baselayout/group (via nss-usrfiles) regardless of /etc/group.aks exceptions for the Cilium dependency of network policies and CoreDNS.karpenter.sh/unregistered:NoExecute taint from Karpenter node pools. Provider charts must add it via taintsTemplateName.cnameStrategy per DNS01 solver with acme.dns01.cloudflare.cnameStrategy, acme.dns01.route53.cnameStrategy and acme.dns01.azureDNS.cnameStrategy, so a _acme-challenge CNAME can delegate the challenge to a zone the solver can write to.imagePullPolicy: IfNotPresent for the cert-manager-giantswarm-clusterissuer hook Job, so a retried Helm hook reuses the image already present on the node instead of downloading it again..github/release-pr-body.md.letsencrypt-giantswarm ClusterIssuer now uses Gateway API (gatewayHTTPRoute) instead of an Ingress, and targets Envoy Gateway.giantSwarmClusterIssuer.acme.http01.enabled and giantSwarmClusterIssuer.acme.http01.ingressClassName (which defaulted to nginx). Setting either now fails the Helm render with a message pointing at the replacement values.helm.sh/chart label of the Giant Swarm resources (VPAs, PodLogs, proxy ConfigMap) to end on an alphanumeric character. A long dev version cut at 63 characters could end on a ., and the API server rejected the resource.split again, following upstream (cilium/cilium#49383).cilium-operator tolerations instead of tolerating all taints.k8slens-edit-resource-version from identity computation.max_age option (#528)coredns image to 1.15.0.0 (#528)additionalZones cache, forward, kubernetes, log and loadbalance blocks against the public and cluster zone schemas (#528)kubectl-apply-job dependency to 0.14.0, whose fallback image is gsoci.azurecr.io/giantswarm/docker-kubectl instead of quay.io/giantswarm/docker-kubectl:1.26.0, which quay.io now refuses with 401.nodeSelector, affinity, security contexts, probes, resources, extraArgs as a map, tlsConfig, secretConfiguration.data), and name in imagePullSecrets items. This broke installs, for example with the IRSA eks.amazonaws.com/role-arn service account annotation on CAPA.aws values that cluster-aws still sets. They have no effect.io.giantswarm.application.managed annotation ("true").keywords.CiliumLocalRedirectPolicy configurable.helm.sh/chart label is valid for long chart versions: the 63-character cut trims the whole trailing run of -, . and _.hubbleRelay to allow the AKS ACNS hubble-relay through the default deny.allowEgressToUpstreamDNS to allow pods with dnsPolicy: Default to reach upstream DNS resolvers.azureWorkloadIdentityWebhook to allow the AKS workload identity webhook through the default deny.helm/network-policies to match its name, in preparation for devctl-generated CI.status_parent_accepted and status_parent_resolved_refs gauges for Gateway API HTTPRoute, one series per parent with the condition reason as label.target_info and status_ancestor_accepted metrics for Envoy Gateway SecurityPolicy, BackendTrafficPolicy, ClientTrafficPolicy and EnvoyExtensionPolicy.apps.<appName>.dependsOn from a list into a map from dependency name to true/false, so that a provider can turn off a single dependency (for example kyverno-crds on clusters without the security bundle) instead of overriding the whole list.global.nodePools.<pool>.replicas for Karpenter node pools to keep a fixed number of nodes (static node pool). This is a tech preview of the alpha Karpenter StaticCapacity feature and requires a release with Karpenter v1.14.1 and the matching aws-resolver-rules-operator.global.nodePools.<pool>.limits.nodes to cap the number of nodes of a Karpenter node pool.Balanced consolidation policy for Karpenter node pools.karpenter.sh/do-not-sync-taints=true kubelet node label to Karpenter node pools.karpenter.sh/unregistered:NoExecute kubelet taint to Karpenter node pools, previously added by the cluster chart.extraConfigs[*].kind values of provider-specific apps to the ConfigMap and Secret kinds that Flux accepts.helm.sh/chart label is valid for long chart versions: the 63-character cut trims the whole trailing run of -, . and _.OCIRepository resources from the source.toolkit.fluxcd.io/v1beta2 API to source.toolkit.fluxcd.io/v1.KarpenterMachinePool taints and startup taints are not applied to nodes.kubernetes.io/arch=arm64:NoSchedule taint of arm64 Karpenter node pools to the kubelet taints too.limits.cpu and limits.memory of Karpenter node pools separately, so setting only one of them no longer renders the other one empty.providerIntegration.apps.<app>.extraConfigs so provider charts can add templated config maps or secrets to an app’s values.sysctl and sysfs configuration per node pool via kernel.sysctls (/etc/sysctl.d/90-node-pool.conf) and kernel.sysfs (/etc/tmpfiles.d/00-node-pool.conf). The parameters required by kubelet’s protectKernelDefaults cannot be set by name, and the Image Builder and Cilium sysctl configuration keeps precedence.global.connectivity.cni.managed (default true). When false, Cilium isn’t rendered and is dropped from the dependencies of every app.nodeLabelsTemplateName and taintsTemplateName hooks under providerIntegration.workers.kubeadmConfig. They name provider templates, rendered once per node pool, that add kubelet node labels and taints./etc/sysctl.d/hardening.conf to 80-hardening.conf so it sorts after Flatcar’s 65-baselayout.conf but before Image Builder’s 99-sysctl.conf and Cilium’s 99-zzz-override_cilium.conf. Previously the unprefixed file sorted last and overrode both. As a result, nodes now run with fs.inotify.max_user_watches = 524288 (previously 16384) and net.ipv4.conf.all.rp_filter = 0 (previously 1).fs.inotify.max_user_watches, fs.inotify.max_user_instances, net.ipv4.conf.all.rp_filter, vm.overcommit_memory, kernel.panic, kernel.panic_on_oops). Stop disabling net.ipv4.tcp_timestamps, since modern kernels randomize timestamp offsets.os-hardening.service. Its sysctl -p duplicated what systemd-sysctl already applies at boot. Its gpasswd calls had no effect: glibc merges group memberships from /usr/share/baselayout/group (via nss-usrfiles) regardless of /etc/group.aks exceptions for the Cilium dependency of network policies and CoreDNS.karpenter.sh/unregistered:NoExecute taint from Karpenter node pools. Provider charts must add it via taintsTemplateName.cnameStrategy per DNS01 solver with acme.dns01.cloudflare.cnameStrategy, acme.dns01.route53.cnameStrategy and acme.dns01.azureDNS.cnameStrategy, so a _acme-challenge CNAME can delegate the challenge to a zone the solver can write to.imagePullPolicy: IfNotPresent for the cert-manager-giantswarm-clusterissuer hook Job, so a retried Helm hook reuses the image already present on the node instead of downloading it again..github/release-pr-body.md.letsencrypt-giantswarm ClusterIssuer now uses Gateway API (gatewayHTTPRoute) instead of an Ingress, and targets Envoy Gateway.giantSwarmClusterIssuer.acme.http01.enabled and giantSwarmClusterIssuer.acme.http01.ingressClassName (which defaulted to nginx). Setting either now fails the Helm render with a message pointing at the replacement values.helm.sh/chart label of the Giant Swarm resources (VPAs, PodLogs, proxy ConfigMap) to end on an alphanumeric character. A long dev version cut at 63 characters could end on a ., and the API server rejected the resource.<clusterName>-crossplane-config ConfigMap if providers.aws.accountID, providers.aws.partition, or providers.aws.oidc.domain is empty. This supports EKS clusters, whose OIDC domain is only known once the cluster is provisioned. Explicitly set values take precedence over the ConfigMap.ChangeResourceRecordSets to TXT records related to acme challenges.split again, following upstream (cilium/cilium#49383).cilium-operator tolerations instead of tolerating all taints.k8slens-edit-resource-version from identity computation.max_age option (#528)coredns image to 1.15.0.0 (#528)additionalZones cache, forward, kubernetes, log and loadbalance blocks against the public and cluster zone schemas (#528)kubectl-apply-job dependency to 0.14.0, whose fallback image is gsoci.azurecr.io/giantswarm/docker-kubectl instead of quay.io/giantswarm/docker-kubectl:1.26.0, which quay.io now refuses with 401.nodeSelector, affinity, security contexts, probes, resources, extraArgs as a map, tlsConfig, secretConfiguration.data), and name in imagePullSecrets items. This broke installs, for example with the IRSA eks.amazonaws.com/role-arn service account annotation on CAPA.aws values that cluster-aws still sets. They have no effect.io.giantswarm.application.managed annotation ("true").keywords.CiliumLocalRedirectPolicy configurable.helm.sh/chart label is valid for long chart versions: the 63-character cut trims the whole trailing run of -, . and _.ec2:DescribeInstanceStatus permission to the Karpenter IAM role, which Karpenter requires since v1.12 for its interruption health checks.EC2NodeClass hash version from v4 to v5, which can mark existing nodes as drifted.StaticCapacity feature gate (NodePool.spec.replicas) in the karpenter chart defaults, as already done in karpenter-bundle. The feature is still alpha upstream, and we offer it as tech preview.hubbleRelay to allow the AKS ACNS hubble-relay through the default deny.allowEgressToUpstreamDNS to allow pods with dnsPolicy: Default to reach upstream DNS resolvers.azureWorkloadIdentityWebhook to allow the AKS workload identity webhook through the default deny.helm/network-policies to match its name, in preparation for devctl-generated CI.status_parent_accepted and status_parent_resolved_refs gauges for Gateway API HTTPRoute, one series per parent with the condition reason as label.target_info and status_ancestor_accepted metrics for Envoy Gateway SecurityPolicy, BackendTrafficPolicy, ClientTrafficPolicy and EnvoyExtensionPolicy.apps.<appName>.dependsOn from a list into a map from dependency name to true/false, so that a provider can turn off a single dependency (for example kyverno-crds on clusters without the security bundle) instead of overriding the whole list.Full Changelog: https://github.com/giantswarm/agent-platform/compare/v4.173.2...v4.173.3
Full Changelog: https://github.com/giantswarm/backstage/compare/v3.27.0...v3.27.1
Full Changelog: https://github.com/giantswarm/agent-platform/compare/v4.173.1...v4.173.2
Full Changelog: https://github.com/giantswarm/agent-platform/compare/v4.173.0...v4.173.1