diff --git a/.gitlab-ci/kubevirt.yml b/.gitlab-ci/kubevirt.yml index 171bd4183..aaf57abe7 100644 --- a/.gitlab-ci/kubevirt.yml +++ b/.gitlab-ci/kubevirt.yml @@ -41,6 +41,7 @@ pr: - debian12-cilium - debian13-cilium - fedora39-kube-router + - fedora41-kube-router - openeuler24-calico - rockylinux9-cilium - rockylinux10-cilium @@ -91,6 +92,8 @@ pr_full: - debian12-custom-cni-helm - fedora39-calico-swap-selinux - fedora39-crio + - fedora41-calico-swap-selinux + - fedora41-crio - ubuntu24-calico-ha-wireguard - ubuntu24-flannel-ha - ubuntu24-flannel-ha-once @@ -150,6 +153,7 @@ periodic: - debian12-cilium-svc-proxy - fedora39-calico-selinux - fedora40-docker-calico + - fedora41-calico-selinux - ubuntu24-calico-etcd-kubeadm-upgrade-ha - ubuntu24-calico-ha-recover - ubuntu24-calico-ha-recover-noquorum diff --git a/README.md b/README.md index a53c77223..455680d8b 100644 --- a/README.md +++ b/README.md @@ -90,7 +90,7 @@ vagrant up - **Debian** Bookworm, Bullseye, Trixie - **Ubuntu** 22.04, 24.04 - **CentOS Stream / RHEL** [9, 10](docs/operating_systems/rhel.md#rhel-8) -- **Fedora** 39, 40 +- **Fedora** 39, 40, 41 - **Fedora CoreOS** (see [fcos Note](docs/operating_systems/fcos.md)) - **openSUSE** Leap 15.x/Tumbleweed - **Oracle Linux** [9, 10](docs/operating_systems/rhel.md#rhel-8) diff --git a/Vagrantfile b/Vagrantfile index 833ca95ee..701de5859 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -35,6 +35,8 @@ SUPPORTED_OS = { "fedora40" => {box: "fedora/40-cloud-base", user: "vagrant"}, "fedora39-arm64" => {box: "bento/fedora-39-arm64", user: "vagrant"}, "fedora40-arm64" => {box: "bento/fedora-40", user: "vagrant"}, + "fedora41" => {box: "fedora/41-cloud-base", user: "vagrant"}, + "fedora41-bento" => {box: "bento/fedora-41", user: "vagrant"}, "opensuse" => {box: "opensuse/Leap-15.6.x86_64", user: "vagrant"}, "opensuse-tumbleweed" => {box: "opensuse/Tumbleweed.x86_64", user: "vagrant"}, "oraclelinux" => {box: "generic/oracle7", user: "vagrant"}, diff --git a/docs/developers/ci.md b/docs/developers/ci.md index b755ff602..4e1935e1e 100644 --- a/docs/developers/ci.md +++ b/docs/developers/ci.md @@ -13,6 +13,7 @@ debian12 | :white_check_mark: | :white_check_mark: | :white_check_mark: | :x: | debian13 | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | fedora39 | :white_check_mark: | :x: | :x: | :x: | :x: | :white_check_mark: | :x: | fedora40 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | +fedora41 | :white_check_mark: | :x: | :x: | :x: | :x: | :white_check_mark: | :x: | flatcar4081 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | openeuler24 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | rockylinux10 | :white_check_mark: | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | @@ -31,6 +32,7 @@ debian12 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | debian13 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | fedora39 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | fedora40 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | +fedora41 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | flatcar4081 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | openeuler24 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | rockylinux10 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | @@ -49,6 +51,7 @@ debian12 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | debian13 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | fedora39 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | fedora40 | :white_check_mark: | :x: | :x: | :x: | :x: | :x: | :x: | +fedora41 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | flatcar4081 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | openeuler24 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | rockylinux10 | :x: | :x: | :x: | :x: | :x: | :x: | :x: | diff --git a/roles/system_packages/tasks/main.yml b/roles/system_packages/tasks/main.yml index d9cffada6..f0bc875df 100644 --- a/roles/system_packages/tasks/main.yml +++ b/roles/system_packages/tasks/main.yml @@ -34,6 +34,17 @@ tags: - bootstrap_os +# Remove this after ansible-core >= 2.19.0 +# See https://github.com/kubernetes-sigs/kubespray/pull/12138#issuecomment-3019304574 +- name: Install python3-libdnf5 on Fedora >= 41 + raw: > + dnf install --assumeyes python3-libdnf5 + become: true + retries: "{{ pkg_install_retries }}" + when: + - ansible_distribution == "Fedora" + - ansible_distribution_major_version | int >= 41 + - name: Manage packages package: name: "{{ item.packages | dict2items | selectattr('value', 'ansible.builtin.all') | map(attribute='key') }}" diff --git a/tests/files/fedora41-calico-selinux.yml b/tests/files/fedora41-calico-selinux.yml new file mode 100644 index 000000000..0e7886479 --- /dev/null +++ b/tests/files/fedora41-calico-selinux.yml @@ -0,0 +1,9 @@ +--- +# Instance settings +cloud_image: fedora-41 + +# Kubespray settings +auto_renew_certificates: true + +# Test with SELinux in enforcing mode +preinstall_selinux_state: enforcing diff --git a/tests/files/fedora41-calico-swap-selinux.yml b/tests/files/fedora41-calico-swap-selinux.yml new file mode 100644 index 000000000..707cfc24e --- /dev/null +++ b/tests/files/fedora41-calico-swap-selinux.yml @@ -0,0 +1,14 @@ +--- +# Instance settings +cloud_image: fedora-41 + +# Kubespray settings +auto_renew_certificates: true + +# Test with SELinux in enforcing mode +preinstall_selinux_state: enforcing + +# Test Alpha swap feature by leveraging zswap default config in Fedora 35 +kubelet_fail_swap_on: false +kube_feature_gates: + - "NodeSwap=True" diff --git a/tests/files/fedora41-crio.yml b/tests/files/fedora41-crio.yml new file mode 100644 index 000000000..a9fd24ac4 --- /dev/null +++ b/tests/files/fedora41-crio.yml @@ -0,0 +1,7 @@ +--- +# Instance settings +cloud_image: fedora-41 + +# Kubespray settings +container_manager: crio +auto_renew_certificates: true diff --git a/tests/files/fedora41-kube-router.yml b/tests/files/fedora41-kube-router.yml new file mode 100644 index 000000000..247b6b47e --- /dev/null +++ b/tests/files/fedora41-kube-router.yml @@ -0,0 +1,7 @@ +--- +cloud_image: fedora-41 +cluster_layout: + - node_groups: ['kube_control_plane', 'etcd', 'kube_node'] + - node_groups: ['kube_node'] + +kube_network_plugin: "kube-router"