Compare commits

...

16 Commits

Author SHA1 Message Date
Jeff Geerling
83e86bb88b
Merge pull request #166 from vivian-hafener/master
Moves apiversions for kubeadm, kubelet, and kubeproxy from kubeadm-kubelet-config.j2 into defaults/main.yml
2025-07-26 20:03:13 -07:00
Vivian Hafener
321375f702 Moves apiversions for kubeadm, kubelet, and proxy
apiVersions for kubeadm, the kubelet, and the kubeproxy are hardcoded in
kubeadm-kubelet-config.j2. This commit parameterizes those values and
moves them to main.yml.
2025-07-26 15:02:37 -06:00
Jeff Geerling
2b2efa7f9f Bump to version 1.32. 2025-01-30 22:35:55 -06:00
Jeff Geerling
63ba1cf471 Update CI status badges. 2025-01-30 21:25:15 -06:00
Jeff Geerling
92a5694f6f Don't use sudo inside molecule CI tests. 2025-01-29 21:39:37 -06:00
Jeff Geerling
6baa5d7838
Merge pull request #153 from ndouglas/nd_patch_1
Adopt `deb822_repository` format.
2024-12-13 12:26:45 -06:00
Jeff Geerling
210a0ab262 Fixup CI versions. Drop all older RHEL releases which are broken. 2024-07-16 14:22:27 -05:00
Nathan Douglas
32292cfd89 Just kidding, adding back in the release channel option. 2024-03-06 15:24:35 -05:00
Nathan Douglas
8bfb1d772f Removed some unnecessary stuff. 2024-03-06 13:57:07 -05:00
Nathan Douglas
d4517950a4 Code style. 2024-03-06 06:41:19 -05:00
Nathan Douglas
e35045cc6c FML 2024-03-06 06:40:49 -05:00
Nathan Douglas
904f5be944 Update apt cache when Kubernetes repo is added. 2024-03-06 06:25:22 -05:00
Nathan Douglas
baadacdb3c Add python3-debian to list of dependencies. 2024-03-06 06:15:42 -05:00
Nathan Douglas
038cda429a Revert "Add debian package to be able to use deb822_repository."
This reverts commit 054af0d977.
2024-03-06 06:13:56 -05:00
Nathan Douglas
054af0d977 Add debian package to be able to use deb822_repository. 2024-03-06 06:11:38 -05:00
Nathan Douglas
a8ed657fb3 deb822_repository format 2024-03-06 06:11:38 -05:00
8 changed files with 32 additions and 39 deletions

View File

@ -41,7 +41,7 @@ jobs:
strategy:
matrix:
include:
- distro: rockylinux8
- distro: rockylinux9
playbook: converge.yml
- distro: ubuntu2004
playbook: converge.yml

View File

@ -1,6 +1,6 @@
# Ansible Role: Kubernetes
[![CI](https://github.com/geerlingguy/ansible-role-kubernetes/workflows/CI/badge.svg?event=push)](https://github.com/geerlingguy/ansible-role-kubernetes/actions?query=workflow%3ACI)
[![CI](https://github.com/geerlingguy/ansible-role-kubernetes/actions/workflows/ci.yml/badge.svg)](https://github.com/geerlingguy/ansible-role-kubernetes/actions/workflows/ci.yml)
An Ansible Role that installs [Kubernetes](https://kubernetes.io) on Linux.
@ -27,8 +27,8 @@ kubernetes_packages:
Kubernetes packages to be installed on the server. You can either provide a list of package names, or set `name` and `state` to have more control over whether the package is `present`, `absent`, `latest`, etc.
```yaml
kubernetes_version: '1.25'
kubernetes_version_rhel_package: '1.25.1'
kubernetes_version: '1.32'
kubernetes_version_rhel_package: '1.32'
```
The minor version of Kubernetes to install. The plain `kubernetes_version` is used to pin an apt package version on Debian, and as the Kubernetes version passed into the `kubeadm init` command (see `kubernetes_version_kubeadm`). The `kubernetes_version_rhel_package` variable must be a specific Kubernetes release, and is used to pin the version on Red Hat / CentOS servers.
@ -141,8 +141,7 @@ Options passed to `kubeadm init` when initializing the Kubernetes control plane.
```yaml
kubernetes_apt_release_channel: "stable"
kubernetes_apt_keyring_file: "/etc/apt/keyrings/kubernetes-apt-keyring.asc"
kubernetes_apt_repository: "deb [signed-by={{ kubernetes_apt_keyring_file }}] https://pkgs.k8s.io/core:/{{ kubernetes_apt_release_channel }}:/v{{ kubernetes_version }}/deb/ /"
kubernetes_apt_repository: "https://pkgs.k8s.io/core:/{{ kubernetes_apt_release_channel }}:/v{{ kubernetes_version }}/deb/"
```
Apt repository options for Kubernetes installation.

View File

@ -9,8 +9,8 @@ kubernetes_packages:
- name: kubernetes-cni
state: present
kubernetes_version: '1.25'
kubernetes_version_rhel_package: '1.25.1'
kubernetes_version: '1.32'
kubernetes_version_rhel_package: '1.32'
kubernetes_role: control_plane
@ -29,6 +29,11 @@ kubernetes_pod_network:
# cidr: '192.168.0.0/16'
kubernetes_kubeadm_kubelet_config_file_path: '/etc/kubernetes/kubeadm-kubelet-config.yaml'
kubernetes_config_kubeadm_apiversion: v1beta3
kubenetes_config_kubelet_apiversion: v1beta1
kubernetes_config_kubeproxy_apiversion: v1alpha1
kubernetes_config_kubelet_configuration:
cgroupDriver: "systemd"
@ -52,8 +57,7 @@ kubernetes_version_kubeadm: 'stable-{{ kubernetes_version }}'
kubernetes_ignore_preflight_errors: 'all'
kubernetes_apt_release_channel: "stable"
kubernetes_apt_keyring_file: "/etc/apt/keyrings/kubernetes-apt-keyring.asc"
kubernetes_apt_repository: "deb [signed-by={{ kubernetes_apt_keyring_file }}] https://pkgs.k8s.io/core:/{{ kubernetes_apt_release_channel }}:/v{{ kubernetes_version }}/deb/ /"
kubernetes_apt_repository: "https://pkgs.k8s.io/core:/{{ kubernetes_apt_release_channel }}:/v{{ kubernetes_version }}/deb/"
kubernetes_yum_base_url: "https://pkgs.k8s.io/core:/stable:/v{{ kubernetes_version }}/rpm/"
kubernetes_yum_gpg_key: "https://pkgs.k8s.io/core:/stable:/v{{ kubernetes_version }}/rpm/repodata/repomd.xml.key"

View File

@ -1,7 +1,7 @@
---
- name: Converge
hosts: all
become: true
#become: true
vars:
kubernetes_pod_network:

View File

@ -1,7 +1,7 @@
---
- name: Converge
hosts: all
become: true
#become: true
vars:
# Allow swap in test environments (hard to control in some envs).

View File

@ -8,7 +8,7 @@ driver:
name: docker
platforms:
- name: instance
image: "geerlingguy/docker-${MOLECULE_DISTRO:-rockylinux8}-ansible:latest"
image: "geerlingguy/docker-${MOLECULE_DISTRO:-rockylinux9}-ansible:latest"
command: ${MOLECULE_DOCKER_COMMAND:-""}
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:rw

View File

@ -4,32 +4,22 @@
name:
- apt-transport-https
- ca-certificates
- python3-debian
state: present
- name: Prepare apt keyring directory.
ansible.builtin.file:
path: "{{ kubernetes_apt_keyring_file | dirname }}"
state: directory
mode: 0755
- name: Get Kubernetes apt key.
ansible.builtin.get_url:
url: "https://pkgs.k8s.io/core:/{{ kubernetes_apt_release_channel }}:/v{{ kubernetes_version }}/deb/Release.key"
dest: "{{ kubernetes_apt_keyring_file }}"
mode: '0644'
force: true
- name: Be sure deprecated Kubernetes repository is absent.
file:
path: "/etc/apt/sources.list.d/apt_kubernetes_io.list"
state: absent
- name: Add Kubernetes repository.
ansible.builtin.apt_repository:
repo: "{{ kubernetes_apt_repository }}"
filename: pkgs_k8s_io
state: present
deb822_repository:
name: kubernetes
types: deb
uris: "{{ kubernetes_apt_repository }}"
suites: /
signed_by: "{{ kubernetes_apt_repository }}/Release.key"
register: kubernetes_repository
- name: Update Apt cache.
apt:
update_cache: true
when: kubernetes_repository.changed
- name: Add Kubernetes apt preferences file to pin a version.
template:

View File

@ -1,20 +1,20 @@
---
apiVersion: kubeadm.k8s.io/v1beta3
apiVersion: kubeadm.k8s.io/{{ kubernetes_config_kubeadm_apiversion }}
kind: InitConfiguration
{{ kubernetes_config_init_configuration | to_nice_yaml }}
---
apiVersion: kubeadm.k8s.io/v1beta3
apiVersion: kubeadm.k8s.io/{{ kubernetes_config_kubeadm_apiversion }}
kind: ClusterConfiguration
{{ kubernetes_config_cluster_configuration | to_nice_yaml }}
{% if kubernetes_config_kubelet_configuration|length > 0 %}
---
apiVersion: kubelet.config.k8s.io/v1beta1
apiVersion: kubelet.config.k8s.io/{{ kubenetes_config_kubelet_apiversion }}
kind: KubeletConfiguration
{{ kubernetes_config_kubelet_configuration | to_nice_yaml }}
{% endif %}
{% if kubernetes_config_kube_proxy_configuration|length > 0 %}
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
apiVersion: kubeproxy.config.k8s.io/{{ kubernetes_config_kubeproxy_apiversion }}
kind: KubeProxyConfiguration
{{ kubernetes_config_kube_proxy_configuration | to_nice_yaml }}
{% endif %}