SIGHUP Distribution Release v1.35.0
Welcome to SD release v1.35.0.
The distribution is maintained with ❤️ by the team SIGHUP by ReeVo.
This version adds support for Kubernetes 1.35, updates all core modules, and introduces support for the new Immutable kind in alpha status.
The new Immutable kind allows to create SD Clusters on top of bare-metal or virtual-machines using Flatcar Container Linux as operating system. The OS installatoin and nodes life-cycle is managed by furyctl.
Installer Updates
- on-premises 📦 installer: v1.35.5
- Installs Kubernetes version 1.35.5, adds support for Kubernetes v1.34.8 and v1.33.12.
- Updates etcd, containerd and runc.
- eks 📦 installer: v3.5.0
- Verified compatibility with Kubernetes 1.35.
- immutable 📦 installer: v1.35.5
- Verified compatibility with Kubernetes 1.35.
Module updates 📦
- aws 📦 provider module: v5.3.0
- Bumps cluster-autoscaler to
v1.35.0, aws-load-balancer-controller tov3.4.0and aws-node-termination-handler tov1.25.6.
- Bumps cluster-autoscaler to
- auth 📦 core module: v0.7.0
- Bumps Dex to
v2.45.1, Gangplank tov1.2.1and Pomerium tov0.32.7.
- Bumps Dex to
- dr 📦 core module: v3.4.0
- Bumps Velero to
v1.18.1and Velero plugins tov1.14.1(AWS, Microsoft Azure and GCP). - Updates MinIO image to the Chainguard fork.
- Bumps Velero to
- ingress 📦 core module: v5.1.0
- Bumps cert-manager to
v1.20.2, ExternalDNS tov0.21.0and HAProxy tov3.2.8. - Updates NGINX images to the Chainguard fork
v1.15.5.
- Bumps cert-manager to
- logging 📦 core module: v5.4.0
- Bumps OpenSearch to
v3.7.0, OpenSearch Dashboard tov3.7.0, Logging operator tov6.5.1and Loki tov3.7.2. - Updates MinIO image to the Chainguard fork.
- Enables OpenSearch Dashboards
Explore. - Adds
access-log-exportersidecar to the gateway for NGINX metrics. - Requires
module-ingress>=v5.0.0due to updated ingress-nginx log regex expecting the$hostfield.
- Bumps OpenSearch to
- monitoring 📦 core module: v4.2.0
- Bumps AlertManager to
v0.31.1, Blackbox exporter tov0.28.0, Grafana tov12.4.1, Kubernetes RBAC proxy tov0.21.0, Kubernetes state metrics tov2.18.0, Node exporter tov1.10.2, Prometheus operator tov0.89.0, Prometheus operated tov3.10.0, x509 exporter tov4.1.0and Mimir tov3.0.4. - Updates MinIO image to the Chainguard fork.
- Enables Grafana
Drilldowndashboard. - Fixes some broken dashboard metrics, x509-exporter certificate watch paths and Grafana alerts.
- Bumps AlertManager to
- networking 📦 core module: v4.0.0
- Bumps Cilium to
v1.18.11and Tigera tov1.40.13. - Enables Whisker observability UI.
- Bumps Cilium to
- policy 📦 core module: v1.17.0
- Bumps Gatekeeper to
v3.22.2, Gatekeeper Policy Manager tov1.1.1and Kyverno tov1.18.1.
- Bumps Gatekeeper to
- tracing 📦 core module: v1.5.0
- Bumps tempo-distributed to
v2.10.5. - Updates MinIO image to the Chainguard fork.
- Bumps tempo-distributed to
New features 🌟
- [#504] Add Whisker Network Observability UI tool for clusters using Tigera Calico as CNI.
- [#513] Introduce new
Immutablekind in alpha status, based on Flatcar Container Linux. This new kind allows to create kubernetes clusters from scracth provisioning fresh (baremetal or virtual) machines with Flatcar Container Linux, gaining immutability and security benefits for your kubernetes clusters. - [#519] Allow overriding the
pomeriumauth ingress throughspec.distribution.modules.auth.overrides.ingresses.pomerium. - [#527] The distribution is now a data-only repository: it no longer ships the generated Go types. It provides the public JSON schemas, defaults, templates, rules and
kfd.yaml.furyctlnow owns its config types (see furyctl#674), so integrators that previously imported the generated Go library should migrate accordingly. - [#530] Add support for a per-host
dnsZoneoverride infuryctl.yamlformasters,etcd,nodes, andloadBalancershost entries. When set on a host, the local value takes precedence over the globalspec.kubernetes.dnsZonewhen computingkubernetes_hostnameandetcd_initial_cluster. This makes it possible to assign different FQDNs to hosts in different DNS zones. - [#539] Pin
ansible(with itspython+uvbuild toolchain and the galaxy collections) undertools.commoninkfd.yaml, sofuryctlinstalls a self-contained, versioned Ansible via the bundled mise for theOnPremisesandImmutablekinds instead of requiring it on the host. Optional and backward compatible: distributions without the block keep using the host Ansible. - [#543] New
customResourcesdistribution field: add a newcustomResourcesfield under the distribution phase configuration that allows the deployment of custom resources together with the distribution phase. This allows to solve some cyclic dependencies that could arise using Kustomize Plugins (like the storage). Plugins remain the preferred way to deploy additional resources.
Bug Fixes 🐛
- [#515] Don't try to delete Kyverno Policies when CRDs are not present: the distribution pre-apply script tried to delete the default Kyverno policies even when the CRDs were not present in the cluster. Now the script checks for the CRDs before attempting to delete them.
- [#532] Fix worker nodes not receiving custom registry in OnPremises clusters:
kubernetes_image_registrywas placed undermaster.varsinstead ofall.varsin the generatedhosts.yaml, causing worker nodes to fall back to the defaultregistry.sighup.io/fury/on-premisesregistry for the pause container (sandbox_image). - [#537] Fix
PrometheusOperatorRejectedResourcesfalse positive: Deploy the AlertmanagerConfigs included with the monitoring module only when URLs are set for the webhooks they use, otherwise aPrometheusOperatorRejectedResourcesalert would be triggered because of missing Secrets causing alert noise. - [#549] Fix Gatekeeper Policy Manager NetworkPolicy blocking ingress traffic when auth provider is not SSO.
Breaking changes 💔
- [#505] Support NFTables mode for kube-proxy in on-premises clusters. Now the boolean
kubeProxy.enabledfield is removed and replaced by thekubeProxy.typeenum (ipvs,nftables,none). Migrate existing configurations as follows:enabled: falsebecomestype: none;enabled: true(or the field omitted) becomestype: ipvs, which is also the default whentypeis omitted. - [#519] For the
EKSClusterandKFDDistributionkinds,spec.distribution.modules.auth.overrides.ingressesnow only accepts thegangplank,dexandpomeriumkeys. Previously any key was accepted; configurations using other keys will now fail schema validation. - cgroup v1 support removed in Kubernetes 1.35: the kubelet will refuse to start on nodes using cgroup v1. Most modern Linux distributions already use cgroup v2 by default. Before upgrading, verify your nodes are on cgroup v2 by running
stat -fc %T /sys/fs/cgroup/, the output must becgroup2fs. See the Kubernetes 1.35 release blog for more details.
Upgrade procedure
Check the upgrade docs for the steps to upgrade the SIGHUP Distribution from one version to the next using furyctl.