Skip to content

Commit

Permalink
Feat/new release 1.27.6 (#66)
Browse files Browse the repository at this point in the history
* feat: add new version for 1.27.7

* feat(docs): update docs with 1.27.7

* feat(docs): fix docs 1.27.7 release

* feat(kubeadm): update kubeadm api version on templates

* feat(kubeadm): remove deprecate field on kubeadm template

* feat: fix critools_version

* chore: changed kubernetes version to 1.27.6

* chore (docs): changed release version to 1.27.6

* feat: remove support for version 1.21

* feat(docs): update compatibility matrix

* feat: add correct become directive to ansible playbooks to be able to use a passwordless sudoer user

* fix: use root user on keepalived.conf instead of ansible_user (breaks if using a sudoer user instead of root)

* docs: update main readme with more informations about compatibility

---------

Co-authored-by: Samuele Chiocca <[email protected]>
  • Loading branch information
giusepperotella and nutellinoit authored Nov 23, 2023
1 parent 9f67ff5 commit 964b65e
Show file tree
Hide file tree
Showing 17 changed files with 73 additions and 40 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
</h1>
<!-- markdownlint-enable MD033 -->

![Release](https://img.shields.io/badge/Latest%20Release-v1.26.7-blue)
![Release](https://img.shields.io/badge/Latest%20Release-v1.27.6-blue)
![License](https://img.shields.io/github/license/sighupio/fury-kubernetes-on-premises?label=License)
![Slack](https://img.shields.io/badge/slack-@kubernetes/fury-yellow.svg?logo=slack&label=Slack)

Expand Down Expand Up @@ -37,7 +37,7 @@ Click on each package to see its full documentation.

## Compatibility

This version is compatible with Kubernetes 1.26.7
This version is compatible with Kubernetes 1.27.6 plus the complete list in the compatibility matrix.

Check the [compatibility matrix][compatibility-matrix] for additional information about previous releases of the module.

Expand All @@ -56,7 +56,7 @@ Check the [compatibility matrix][compatibility-matrix] for additional informatio
```yaml
roles:
- name: on-premises
version: v1.26.7
version: v1.27.6
```
> See `furyctl` [documentation][furyctl-repo] for additional details about `Furyfile.yml` format.
Expand Down
24 changes: 12 additions & 12 deletions docs/COMPATIBILITY_MATRIX.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# Compatibility Matrix

| Module Version / Kubernetes Version | 1.26.7 | 1.26.3 | 1.25.12 | 1.25.6 | 1.24.16 | 1.24.7 | 1.23.12 | 1.22.13 | 1.21.14 | 1.20.15 | 1.19.X |
| ----------------------------------- | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :-------: |
| v1.21.14 | | | | | | | | | :white_check_mark: | :white_check_mark: | |
| v1.22.13 | | | | | | | | :warning: | :warning: | | |
| v1.23.12 | | | | | | | :warning: | :warning: | :warning: | | |
| v1.23.12-rev.1 | | | | | | | :white_check_mark: | :white_check_mark: | :white_check_mark: | | |
| v1.24.7 | | | | | | :white_check_mark: | :white_check_mark: | | | | |
| v1.25.6 | | :white_check_mark: | | :white_check_mark: | | :white_check_mark: | :white_check_mark: | | | | |
| v1.26.3 | | :white_check_mark: | | :white_check_mark: | | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :warning: |
| v1.26.7 | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | |
| v1.26.7-rev.1 | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | |

| Module Version / Kubernetes Version | 1.27.6 | 1.26.7 | 1.26.3 | 1.25.12 | 1.25.6 | 1.24.16 | 1.24.7 | 1.23.12 | 1.22.13 | 1.21.14 | 1.20.15 | 1.19.X |
| ----------------------------------- | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :----------------: | :-------: |
| v1.21.14 | | | | | | | | | | :white_check_mark: | :white_check_mark: | |
| v1.22.13 | | | | | | | | | :warning: | :warning: | | |
| v1.23.12 | | | | | | | | :warning: | :warning: | :warning: | | |
| v1.23.12-rev.1 | | | | | | | | :white_check_mark: | :white_check_mark: | :white_check_mark: | | |
| v1.24.7 | | | | | | | :white_check_mark: | :white_check_mark: | | | | |
| v1.25.6 | | | :white_check_mark: | | :white_check_mark: | | :white_check_mark: | :white_check_mark: | | | | |
| v1.26.3 | | | :white_check_mark: | | :white_check_mark: | | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :warning: |
| v1.26.7 | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | |
| v1.26.7-rev.1 | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | |
| v1.27.6 | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | |

| Icon | Legend |
| :----------------: | ------------ |
Expand Down
26 changes: 26 additions & 0 deletions docs/releases/v1.27.6.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# On Premises add-on module release 1.27.6

Welcome to the latest release of `on-premises` module of [`Kubernetes Fury Distribution`](https://github.com/sighupio/fury-distribution) maintained by SIGHUP team.

This minor release adds the compatibility with Kubernetes 1.27.6.

## Package Versions 🚢

| Package | Supported Version | Previous Version |
| ---------------------------------------------- | ----------------- | ---------------- |
| [etcd](roles/etcd) | `3.5.8` | `No update` |
| [haproxy](roles/haproxy) | `2.6` | `No update` |
| [containerd](roles/containerd) | `1.7.0` | `No update` |
| [kube-node-common](roles/kube-node-common) | `-` | `Updated` |
| [kube-control-plane](roles/kube-control-plane) | `-` | `Updated` |
| [kube-worker](roles/kube-worker) | `-` | `Updated` |

## Update Guide 🦮

In this guide, we will try to summarize the update process from `v1.26.7` to this release.

> NOTE: Each on-premises environment can be different, always double-check before updating components.
1. Update Kubernetes control plane nodes (see the [example playbooks](examples/playbooks))
2. Update workers (see the [example playbooks](examples/playbooks))
3. Update KFD if applicable (see the [KFD `1.27.x` release notes](https://github.com/sighupio/fury-distribution/tree/master/docs/releases))
1 change: 1 addition & 0 deletions examples/playbooks/1.containerd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

- name: Containerd install
hosts: master,nodes
become: true
roles:
- containerd
tags:
Expand Down
1 change: 1 addition & 0 deletions examples/playbooks/100.reset.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
- name: Reset Kubernetes cluster
hosts: master,nodes
become: true
tasks:
- name: Reset kubeadm
shell: "kubeadm reset -f"
Expand Down
2 changes: 2 additions & 0 deletions examples/playbooks/2.loadbalancer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
- name: Load balancer installation
hosts: haproxy
become: true
become_method: sudo
become_user: root
roles:
- haproxy
tags:
Expand Down
4 changes: 4 additions & 0 deletions examples/playbooks/3.cluster.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,15 @@

- name: Kubernetes node preparation
hosts: master,nodes
become: true
roles:
- kube-node-common
tags:
- kube-node-common

- name: etcd cluster preparation
hosts: master
become: true
vars:
etcd_address: "{{ ansible_host }}"
roles:
Expand All @@ -67,6 +69,7 @@

- name: Control plane configuration
hosts: master
become: true
serial: 1
roles:
- kube-control-plane
Expand All @@ -75,6 +78,7 @@

- name: Kubernetes join nodes
hosts: nodes
become: true
vars:
kubernetes_bootstrap_token: "{{ hostvars[groups.master[0]].kubernetes_bootstrap_token.stdout }}"
kubernetes_ca_hash: "{{ hostvars[groups.master[0]].kubernetes_ca_hash.stdout }}"
Expand Down
3 changes: 3 additions & 0 deletions examples/playbooks/55.upgrade-control-plane.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
- name: Upgrade etcd
hosts: master
become: true
serial: 1
roles:
- etcd
Expand All @@ -9,6 +10,7 @@

- name: Control plane upgrade
hosts: master
become: true
serial: 1
vars:
skip_kubelet_upgrade: true
Expand All @@ -21,6 +23,7 @@

- name: Kubelet and Containerd upgrade
hosts: master
become: true
serial: 1
vars:
skip_kubelet_upgrade: false
Expand Down
3 changes: 3 additions & 0 deletions examples/playbooks/56.upgrade-worker-nodes.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
- name: Kubernetes node preparation
hosts: nodes
become: true
vars:
skip_kubelet_upgrade: True
roles:
Expand All @@ -19,12 +20,14 @@

- name: Kubernetes kubeadm upgrade node
hosts: nodes
become: true
tasks:
- name: Upgrade kubelet config
shell: "kubeadm upgrade node"

- name: Kubelet and Containerd upgrade
hosts: nodes
become: true
vars:
skip_kubelet_upgrade: False
roles:
Expand Down
5 changes: 3 additions & 2 deletions examples/playbooks/hosts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,9 @@ all:
ansible_ssh_private_key_file: "../ssh-key"
ansible_user: root
kubernetes_kubeconfig_path: ./
# kubernetes_version: '1.21.14'
# kubernetes_version: '1.22.13'
kubernetes_version: '1.23.12'
# kubernetes_version: '1.23.12'
# kubernetes_version: '1.24.7'
# kubernetes_version: "1.25.6"
# kubernetes_version: "1.26.7"
kubernetes_version: "1.27.6"
11 changes: 4 additions & 7 deletions roles/containerd/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,9 @@ runc_checksum: "sha256:https://github.com/opencontainers/runc/releases/download/
image_arch: "{{host_architecture | default('amd64')}}"

# Customize versions based on Kubernetes version to maintain compatibility
kubernetes_version: "1.25.6"
kubernetes_version: "1.27.6"

versions:
1.20.15:
containerd_version: "1.5.8"
runc_version: "v1.0.3"
1.21.14:
containerd_version: "1.5.8"
runc_version: "v1.0.3"
1.22.13:
containerd_version: "1.5.8"
runc_version: "v1.0.3"
Expand All @@ -46,6 +40,9 @@ versions:
1.26.7:
containerd_version: "1.7.0"
runc_version: "v1.1.7"
1.27.6:
containerd_version: "1.7.0"
runc_version: "v1.1.7"

# Service options.
containerd_service_state: started
Expand Down
2 changes: 1 addition & 1 deletion roles/etcd/templates/kubeadm-etcd.yml.j2
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
apiVersion: kubeadm.k8s.io/v1beta2
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
etcd:
local:
Expand Down
2 changes: 1 addition & 1 deletion roles/haproxy/templates/keepalived.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
global_defs {
router_id LVS_DEVEL
enable_script_security
script_user {{ ansible_user }}
script_user root
}

{% if keepalived_on_k8s_master %}
Expand Down
6 changes: 3 additions & 3 deletions roles/kube-control-plane/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ kubernetes_api_SAN:
- localhost
- kubernetes.local
kubernetes_control_plane_address: "{{ ansible_hostname }}"
kubernetes_version: "1.26.7"
kubernetes_version: "1.27.6"
kubernetes_image_registry: "{{ dependencies[kubernetes_version].kubernetes_image_registry }}"
coredns_image_prefix: "{{ dependencies[kubernetes_version].coredns_image_prefix | default('/coredns') }}"
kubernetes_hostname: "{{ ansible_fqdn }}"
Expand Down Expand Up @@ -43,8 +43,6 @@ upgrade: False

dependencies:
# To pin dependencies for each Kubernetes version
"1.21.14":
kubernetes_image_registry: "registry.sighup.io/fury/on-premises"
"1.22.13":
kubernetes_image_registry: "registry.sighup.io/fury/on-premises"
"1.23.12":
Expand All @@ -61,3 +59,5 @@ dependencies:
kubernetes_image_registry: "registry.sighup.io/fury/on-premises"
"1.26.7":
kubernetes_image_registry: "registry.sighup.io/fury/on-premises"
"1.27.6":
kubernetes_image_registry: "registry.sighup.io/fury/on-premises"
5 changes: 2 additions & 3 deletions roles/kube-control-plane/templates/kubeadm.yml.j2
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: kubeadm.k8s.io/v1beta2
apiVersion: kubeadm.k8s.io/v1beta3
kind: InitConfiguration
nodeRegistration:
name: {{ kubernetes_hostname }}
Expand All @@ -8,7 +8,7 @@ localAPIEndpoint:
advertiseAddress: {{ kubernetes_apiserver_advertise_address }}
bindPort: 6443
---
apiVersion: kubeadm.k8s.io/v1beta2
apiVersion: kubeadm.k8s.io/v1beta3
kind: ClusterConfiguration
etcd:
external:
Expand All @@ -22,7 +22,6 @@ kubernetesVersion: {{ kubernetes_version }}
imageRepository: "{{ kubernetes_image_registry }}"
controlPlaneEndpoint: {{ kubernetes_control_plane_address }}
dns:
type: CoreDNS
{% if coredns_image_prefix != "" %}
imageRepository: {{ kubernetes_image_registry }}{{ coredns_image_prefix }}
{% endif %}
Expand Down
10 changes: 3 additions & 7 deletions roles/kube-node-common/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Kubernetes components versions
kubernetes_repo_distribution: "xenial"

kubernetes_version: "1.26.7"
kubernetes_version: "1.27.6"
kubelet_version: "{{ kubernetes_version }}"
kubectl_version: "{{ kubernetes_version }}"
kubeadm_version: "{{ kubernetes_version }}"
Expand All @@ -15,12 +15,6 @@ skip_kubelet_upgrade: False

dependencies:
# To pin dependencies for each Kubernetes version
"1.19.16":
critools_version: "1.25.0"
"1.20.15":
critools_version: "1.25.0"
"1.21.14":
critools_version: "1.25.0"
"1.22.13":
critools_version: "1.25.0"
"1.23.12":
Expand All @@ -37,3 +31,5 @@ dependencies:
critools_version: "1.26.0"
"1.26.7":
critools_version: "1.26.0"
"1.27.6":
critools_version: "1.26.0"
2 changes: 1 addition & 1 deletion roles/kube-worker/templates/kubeadm.yml.j2
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
apiVersion: kubeadm.k8s.io/v1beta2
apiVersion: kubeadm.k8s.io/v1beta3
kind: JoinConfiguration
discovery:
bootstrapToken:
Expand Down

0 comments on commit 964b65e

Please sign in to comment.