github kubernetes-sigs/kubespray v2.22.0

14 days ago

Deprecation / Removal

  • [Cilium] Delete the probe option of cilium_kube_proxy_replacement (#9929, @XiuguangHuang)
  • [Cilium] Remove use_localhost_as_kubeapi_loadbalancer and detect wether we can use localhost apiserver loadbalancer if cilium/calico replace kube-proxy (#9718, @MrFreezeex)
  • Drop crun_bin_dir unused variable, now using only bin_dir var (#9845, @electrocucaracha)
  • Drop the canal network_plugin support because the network_plugin is unmaintained. (#10100, @oomichi)
  • Remove the support of Debian 9 (#10097, @yankay)
  • Replaces with (#10066, @KlwntSingh)

Feature / Major Changes

  • Add Kubernetes 1.26.x (#9570, @mzaian ; #9732, @yankay; #9829, @mzaian; #9900, @mzaian)
  • Make kubernetes v1.26.5 default (#9983, @mzaian)
  • "native" snapshotter of nerdctl config is replaced by new var nerdctl_snapshotter with default "overlayfs" value (#9979, @dmitrytretyakov)
  • Support multi-arch using the same image name (#9978, @ErikJiang)
  • Add DNS configuration for cert-manager (using new variables cert_manager_dns_policy|config) (#9673, @ErikJiang)
  • Add Retry for restart kube-controller-manager (#10013, @hangscer8)
  • Add coredns_additional_configuration variable to define extra Coredns configurations (#10025, @navidnabavi)
  • Add coredns_rewrite_block to perform internal message rewriting (#10045, @maxime1907)
  • Add a new simple network_plugins custom_cni to install user provided manifests (#9819, @MrFreezeex)
  • Add back openssh-client to docker image (#9835, @maxime1907)
  • Add download retries option download_retries (#9911, @tu1h)
  • Add support to install ContainerD on any Linux Distributions using new var allow_unsupported_distribution_setup (#9827, @XDRAGON2002)
  • Add the kube-profile config to the kubeadm's kube-scheduler config. (#9993, @yankay)
  • Add vim to kubespray docker image (#9805, @XDRAGON2002)
  • Adds support for Kubelet-CSR-approver to auto-approve kubelet CSR when kubelet_rotate_server_certificates. (#9877, @j4m3s-s)
  • Add dns_cpu_limit value to support large scaled coredns deployments (#10103, @mzaian)
  • Add provider meta module_name in Equinix Metal TF configs (#10044, @vasubabu)
  • Allow to configure image garbage collection (using kubelet_image_gc_high_threshold and kubelet_image_gc_low_threshold) (#9832, @zhan9san)
  • Apply kubeadm patches during upgrade as recommended by k8s (#9781, @mvandergiesen)
  • Cinder-csi: Allow VolumeSnapshotClass' deletionPolicy to be configurable (#9736, @huangkevin404)
  • Containerd add containerd_use_config_path config field. (#9770, @lengrongfu)
  • Enable control plane load balancing for kube-vip (#9785, @ErikJiang)
  • Feat(contrib/terraform): support custom ssh port (#9836, @maxime1907)
  • Fix kube-bench 1.2.20 to enhance security (Ensure that the --audit-log-maxbackup argument is set to 10) (#9939, @yankay)
  • Fix kube-bench 1.1.19 to enhance security (Change Kubernetes Cert directory and file ownership is set to root:root) (#9937, @yankay)
  • Fix kube-bench 4.1.1 to enhance security (Change kubelet systemd init file from 644 to 600) (#9934, @yankay)
  • Fix kubernetes-app/argocd: download related things with the download role (#9786, @pli01)
  • now supports kubeconfig (#9982, @liupeng0518)
  • MetricsServer: Add extras nodeselector, affinity, tolerations (using metrics_server_nodeselector, metrics_server_extra_affinity ,metrics_server_extra_tolerations) (#9972, @pli01)
  • Refactor Hetzner terraform (fixing flatcar configs and remove deprecated provider) (#10002, @ThisIsQasim)
  • Support for MetalLB v0.13.9 with CRD (#9120, @Jeroen0494)
  • Throw an error when specifying unsupported os in Vagrant (#9965, @THUzxj)
  • Update CoreDNS manifests (remove deprecated annotations) (#9977, @mzaian)
  • Update dns-autoscaler configuration and remove deprecated annotations (#9996, @mzaian)
  • Update metrics server to v0.6.3 (#10026, @mzaian)
  • Upgrade argocd to v2.6.3 (#9848, @panguicai008)
  • Upgrades the following Python libraries to their latest available releases (cryptography / jinja2 / jmespath / MarkupSafe/ netaddr / pbr / ruamel.yaml / ruamel.yaml.clib) (#9938, @luksi1)
  • Add IPv6 listen directive to haproxy if enable_dual_stack_networks (#9674, @yankay)
  • Add support for Ansible collections in Kubespray (⚠️ See notes !) (#9582, @luksi1)
  • Support mTLS for Hubble and upgrade backend to v0.11.0 (#9959, @jeremythuon)
  • Update nodelocaldns to 1.22.18 (#9800, @sathieu)
  • Replace disable_swap variable with kubelet_fail_swap_on (#10036, @Manuelraa)
  • Replace nodelocaldns label to k8s-app: node-local-dns (#9745, @stelucz)
  • Upgrade rancher local-path-provisioner to v0.0.23 (#9855, @panguicai008)
  • Use kube_apiserver_address variable for advertiseAddress (#9967, @liupeng0518)
  • Use string for ipv6 forward conf value (#9992, @liupeng0518)
  • Update pause image version to v3.9 (#10112, @mzaian)
  • Upgrade cni version to v1.3.0 (#10058, @cyclinder)
  • [argocd] update argocd to v2.6.7 (#9953, @mzaian)
  • [helm] support to 3.11.1 (#9849, @mzaian)
  • [helm] support to 3.11.3 (#10022, @mzaian)
  • [helm] support to 3.11.2 (#9951, @mzaian)
  • [helm] upgrade to 3.12.0 (#10085, @mzaian)
  • [UpCloud] Add server group support for vms and target port for loadbalancers (#9831, @robinAwallace)
  • [argocd] update argocd to v2.5.10 (#9753, @yanggangtony)
  • [cert-manager] Upgrade to v1.11.1 (#9964, @rtsp)
  • [flannel] update to v0.21.4 (#10027, @mzaian)
  • [nerdctl] support version 1.3.1 (#10024, @mzaian)
  • [nerdctl] update to version 1.4.0 (#10119, @mzaian)




API Change

  • Openstack cloud controller manager bind address is now configurable using external_openstack_cloud_controller_bind_address (#9958, @dominykasn)


  • Add a mention for custom_cni in CNI list (#9878, @j4m3s-s)
  • ArgoCD no longer uses the pod name as initial password (#9930, @peschmae)
  • Drop remaining part for supporting ansible 2.9 and 2.10 (#9842, @oomichi)
  • Fix sidebar documentation (#9988, @lijin-union)
  • Fixup link in docs/ (#9940, @kundan2707)
  • Remove stale contents for cni documention (#9778, @tu1h)
  • Reword confusing etcd download url comment when etcd_deployment=host (#9686, @tjanson)
  • Suggest to run reset.yml playbook for first-time users (#9865, @kerryeon)
  • Update docker tag to v2.21.0 in (#9802, @Payback159)
  • Update link for baremetel consideration (#9944, @kundan2707)
  • Add port requirements documentation (#9969, @yankay)

Failing Test

  • Update Terraform to 1.3.7 and Vagrant to 2.3.4 (#9699, @floryut)
  • [CI] Migrate CI_BUILD_ID to CI_JOB_ID and CI_BUILD_REF to CI_COMMIT_SHA following gitlab upgrade (#10063, @floryut)

Bug or Regression

  • Add PSS labels to metallb namespace (#9713, @manzsolutions-lpr)
  • Add jmespath back to Dockerfile image (#9697, @floryut)
  • Add missing krew_download_url to offline.yml (#9788, @jianse)
  • Add proxy_env variable to apt_key cleanup task (#9766, @SamuelBECK1)
  • Add rsync in Dockerfile (#9839, @zhan9san)
  • Add ruamel.yaml back to Dockerfile image (#9707, @floryut)
  • Cleanup MetalLB install following update (#10004, @eugene-marchanka)
  • Copy contrib/ to Dockerfile (#9774, @oomichi)
  • Downgrade the version of CoreDNS to 1.8.6 for compatibility with Kubernetes versions older than 1.25. (#9846, @JiffsMaverick)
  • Explicitly disable rhsm repo when rhel_enable_repos is false (#9973, @tu1h)
  • Fix cert_manager_trusted_internal_ca manifest failing when dns policy is set (#9922, @peschmae)
  • Fix containerd_insecure_registries => move with_item to with_dict (#9729, @lengrongfu)
  • Fix allow unsupported distribution (#9904, @ErikJiang)
  • Fix cilium's hubble ui configuration (#9735, @j4m3s-s)
  • Fix comma-separated-list splitting of kubelet_enforce_node_allocatable variable (#9694, @Tristan971)
  • Fix confusing instance sizing (etcd, kube_master) in Vagrantfile (#9966, @THUzxj)
  • Fix ingress url not found issue (#9789, @JaneLiuL)
  • Fix playbook names to support import via galaxy (#10021, @dkasanic)
  • Fix restart k8s components, checking yml files instead of manifest (#9962, @liupeng0518)
  • Fix uniontech OS installation failure (#9862, @ErikJiang)
  • Fixing default cgroups for kubelet and container_manager (#9834, @MrFreezeex)
  • Localhost task (validate mirror) don't need to ask for become (#9669, @chok)
  • Remove unneeded access_ip when not wanted in terraform scripts (#9869, @maxime1907)
  • Replace semicolons by commas in networkmanager dns configuration options (#9840, @lystor)
  • Retry other masters during upgrade and not only the first one (#9768, @maxime1907)
  • Skip steps of ensuring NTP and tzdata packages in the CoreOS and Flatcar (#9742, @ErthoAers)
  • Support extended settings for the Debian os family (#9943, @ErikJiang)
  • Fix calico rbac issue (#9806, @JaneLiuL)
  • Update nodes in etc hosts after cluster scale (#9837, @zhan9san)
  • Update rhsm repo trigger if no subscriptions is found (#10001, @tu1h)
  • Bootstrap ansible requirement in the facts playbook (#10069, @MrFreezeex)
  • Clear http scheme on containerd insecure-registry tls config (#10084, @tu1h)
  • Ignore errors in check mode performing "Disable swapOnZram for Fedora" (#10077, @gorozhin)
  • [etcd] fix; move pem files only if any new certs exist (#9974, @2k0ri)
  • [vSphere-csi-driver] Fixes the run of the cluster.yml playbook when vsphere_csi_namespace is set to non-default (#9946, @eugene-marchanka)

Other (Cleanup or Flake)

  • Add checksum verification for kubectl binary in dockerfile (#9963, @alekseyolg)
  • Add generic pre-commit hook to the repository (#9750, @bbaassssiiee)
  • Cleanup of external-openstack-cloud-config to be in the same order/values as the documentation and not clutter config when defaults are used. (#9899, @jadams)
  • Cleanup v1.23.x references/conditions/hashes (#9698, @floryut)
  • Dockerfile update ubuntu version to 22.04 which has newer system packages with fewer (#10033, @alekseyolg)
  • Drop support for Kubernetes 1.23.x (move min version to 1.24.x) (#9691, @floryut)
  • Fix(contrib/terraform): do not set ansible_ssh_port to 22 (#9828, @maxime1907)
  • Move multus url to k8snetworkplumbingwg repository (#9850, @panguicai008)
  • New automated method to collect binaries checksums (#9782, @electrocucaracha)
  • Reducing the number of layers and commands for docker image (#9822, @alekseyolg)
  • Remove deprecated udpIdleTimeout field in KubeProxyConfiguration (#9925, @HirazawaUi)
  • Remove invalid character in crictl tasks file (#9970, @tu1h)
  • Replace bash for loop when checking API server SANs (#9060, @rptaylor)
  • Use var etcd_deployment_type instead of etcd_kubeadm_enabled (#9823, @liupeng0518)
  • Reducing the number of layers, increasing readability, reducing the size of the image (#9821, @alekseyolg)
  • Fix arithmetic outside of jinja (#10106, @MrFreezeex)
  • Fix CI broken by flannel-cni-plugin docker hub rate limit (#10083, @yankay)
  • [CI] Add CI for containerd insecure_registries (#9797, @yankay)
  • [CI] Updated version of ara included in CI job logs collection from 1.5.7 to 1.6.1 (#9737, @dmsimard)
  • [CI] Add checksum verification of kubectl binary in pipeline image (#9971, @alekseyolg)
  • [CI] Fix CentOS Extras repo url for Oracle Linux 7 aarch64 (#9791, @bin456789)
  • [CI] Use Docker buildkit + caching for builds to speed up the CI pipeline (#10008, @luksi1)
  • [CI] Add six module into openstack-cleanup/requirements.txt (#10099, @oomichi)
  • [CI] Fix tests for files lookup path for custom-cni (#10088, @j4m3s-s)

Supported Components

Known issues



  • Support for MetalLB v0.13.9 with CRD (⚠️ This release includes user facing changes for which there is action required. The way the inventory is setup for MetalLB deployment has changed significantly. Most prominently, we have switched from underscores to a dictionary for defining resources. Please follow the documentation for restructuring your MetalLB inventory variables.
  • Replace disable_swap variable with kubelet_fail_swap_on
  • Fix playbook names to support import via galaxy (⚠️ ADD NOTE : recover-control-panel => recover_control_plane, remove-node => remove_node, upgrade-cluster => upgrade_cluster)
  • [Cilium] IPAM uses "Cluster Scope" mode by default.
  • Add support for Ansible collections in Kubespray (This would cause a change to the repository's structure, meaning downstream users would either need to change their code to point to the playbooks directory or use the ansible.builtin.import_playbook module)

Don't miss a new kubespray release

NewReleases is sending notifications on new releases.