Skip to content

Commit cf65a31

Browse files
author
Glenn Marcy
committed
fix: additional fixes testing uncovered
Signed-off-by: Glenn Marcy <[email protected]>
1 parent a640fd0 commit cf65a31

File tree

6 files changed

+171
-137
lines changed

6 files changed

+171
-137
lines changed

docs/src/roles/role-kubeinit_dnsmasq.rst

100755100644
File mode changed.

kubeinit/roles/kubeinit_k8s/defaults/main.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ kubeinit_k8s_debug: "{{ (ansible_verbosity | int) >= 2 | bool }}"
2222
kubeinit_k8s_hide_sensitive_logs: true
2323

2424
kubeinit_k8s_kubernetes_version: "1.30"
25-
kubeinit_k8s_kubernetes_version_full: "1.30.2"
2625

2726
# This is the default container runtime that
2827
# will be deployed when the Vanila k8s cluster

kubeinit/roles/kubeinit_k8s/tasks/prepare_cluster.yml

Lines changed: 159 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -24,42 +24,166 @@
2424
kubeinit_deployment_delegate: "{{ hostvars[kubeinit_provision_service_node].target }}"
2525
kubeinit_deployment_os: "{{ hostvars[kubeinit_provision_service_node].os }}"
2626

27-
- name: Configure the service node
27+
- name: Configure the provision service node
2828
block:
2929

30-
- name: Remove repo before adding it
31-
ansible.builtin.file:
32-
path: /etc/yum.repos.d/kubernetes.repo
33-
state: absent
34-
35-
- name: Creating a repository file for Kubernetes
36-
ansible.builtin.file:
37-
path: /etc/yum.repos.d/kubernetes.repo
38-
state: touch
39-
mode: '0644'
40-
41-
- name: Adding repository details in Kubernetes repo file.
42-
ansible.builtin.blockinfile:
43-
path: /etc/yum.repos.d/kubernetes.repo
44-
block: |
45-
[kubernetes]
46-
name=Kubernetes
47-
baseurl=https://pkgs.k8s.io/core:/stable:/v{{ kubeinit_k8s_kubernetes_version }}/rpm/
48-
enabled=1
49-
gpgcheck=1
50-
gpgkey=https://pkgs.k8s.io/core:/stable:/v{{ kubeinit_k8s_kubernetes_version }}/rpm/repodata/repomd.xml.key
51-
# exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
52-
53-
- name: Install requirements
54-
ansible.builtin.command: dnf install -y kubectl-{{ kubeinit_k8s_kubernetes_version }}.* --disableexcludes=kubernetes
55-
register: _result
56-
changed_when: "_result.rc == 0"
57-
58-
- name: Install common requirements
59-
ansible.builtin.package:
60-
name: "{{ kubeinit_k8s_common_dependencies }}"
61-
state: present
62-
use: dnf
63-
when: kubeinit_k8s_common_dependencies is defined
30+
- when: hostvars[kubeinit_provision_service_node].os == 'centos'
31+
block:
32+
33+
- name: Remove repo before adding it
34+
ansible.builtin.file:
35+
path: /etc/yum.repos.d/kubernetes.repo
36+
state: absent
37+
38+
- name: Creating a repository file for Kubernetes
39+
ansible.builtin.file:
40+
path: /etc/yum.repos.d/kubernetes.repo
41+
state: touch
42+
mode: '0644'
43+
44+
- name: Adding repository details in Kubernetes repo file.
45+
ansible.builtin.blockinfile:
46+
block: |
47+
[kubernetes]
48+
name=Kubernetes
49+
baseurl=https://pkgs.k8s.io/core:/stable:/v{{ kubeinit_k8s_kubernetes_version }}/rpm/
50+
enabled=1
51+
gpgcheck=1
52+
gpgkey=https://pkgs.k8s.io/core:/stable:/v{{ kubeinit_k8s_kubernetes_version }}/rpm/repodata/repomd.xml.key
53+
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
54+
path: /etc/yum.repos.d/kubernetes.repo
55+
56+
- name: Install requirements
57+
ansible.builtin.command: dnf install -y kubectl-{{ kubeinit_k8s_kubernetes_version }}.* --disableexcludes=kubernetes
58+
register: _result
59+
changed_when: "_result.rc == 0"
60+
61+
#### Debian-based distributions
62+
###
63+
#### These instructions are for Kubernetes v1.30.
64+
###
65+
#### Update the apt package index and install packages needed to use the Kubernetes apt repository:
66+
###
67+
### sudo apt-get update
68+
### # apt-transport-https may be a dummy package; if so, you can skip that package
69+
### sudo apt-get install -y apt-transport-https ca-certificates curl gpg
70+
###
71+
#### Download the public signing key for the Kubernetes package repositories. The same signing key is used for all repositories so you can disregard the version in the URL:
72+
###
73+
### # If the directory `/etc/apt/keyrings` does not exist, it should be created before the curl command, read the note below.
74+
### # sudo mkdir -p -m 755 /etc/apt/keyrings
75+
### curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
76+
###
77+
#### Note:
78+
#### In releases older than Debian 12 and Ubuntu 22.04, directory /etc/apt/keyrings does not exist by default, and it should be created before the curl command.
79+
###
80+
#### Add the appropriate Kubernetes apt repository. Please note that this repository have packages only for Kubernetes 1.30; for other Kubernetes minor versions, you need to change the Kubernetes minor version in the URL to match your desired minor version (you should also check that you are reading the documentation for the version of Kubernetes that you plan to install).
81+
###
82+
### # This overwrites any existing configuration in /etc/apt/sources.list.d/kubernetes.list
83+
### echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
84+
###
85+
#### Update the apt package index, install kubelet, kubeadm and kubectl, and pin their version:
86+
###
87+
### sudo apt-get update
88+
### sudo apt-get install -y kubelet kubeadm kubectl
89+
### sudo apt-mark hold kubelet kubeadm kubectl
90+
###
91+
#### (Optional) Enable the kubelet service before running kubeadm:
92+
###
93+
### sudo systemctl enable --now kubelet
94+
###
95+
####
96+
#### END
97+
####
98+
#### Distributions using deb packages
99+
###
100+
#### Install the dependencies for adding repositories
101+
### apt-get update
102+
### apt-get install -y software-properties-common curl
103+
###
104+
#### Add the Kubernetes repository
105+
### curl -fsSL https://pkgs.k8s.io/core:/stable:/$KUBERNETES_VERSION/deb/Release.key |
106+
### gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
107+
###
108+
### echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/$KUBERNETES_VERSION/deb/ /" |
109+
### tee /etc/apt/sources.list.d/kubernetes.list
110+
###
111+
#### Add the CRI-O repository
112+
### curl -fsSL https://pkgs.k8s.io/addons:/cri-o:/stable:/$CRIO_VERSION/deb/Release.key |
113+
### gpg --dearmor -o /etc/apt/keyrings/cri-o-apt-keyring.gpg
114+
###
115+
### echo "deb [signed-by=/etc/apt/keyrings/cri-o-apt-keyring.gpg] https://pkgs.k8s.io/addons:/cri-o:/stable:/$CRIO_VERSION/deb/ /" |
116+
### tee /etc/apt/sources.list.d/cri-o.list
117+
###
118+
#### Install the packages
119+
### apt-get update
120+
### apt-get install -y cri-o kubelet kubeadm kubectl
121+
###
122+
#### Start CRI-O
123+
### systemctl start crio.service
124+
###
125+
#### Bootstrap a cluster
126+
### swapoff -a
127+
### modprobe br_netfilter
128+
### sysctl -w net.ipv4.ip_forward=1
129+
###
130+
### kubeadm init
131+
####
132+
#### END
133+
####
134+
- when: hostvars[kubeinit_provision_service_node].os != 'centos'
135+
block:
136+
137+
- fail: msg=stopping
138+
139+
- name: Add kubernetes repo for latest kubectl (Debian)
140+
ansible.builtin.shell: |
141+
set -eo pipefail
142+
apt-get update
143+
apt-get install -y software-properties-common curl
144+
145+
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key |
146+
gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
147+
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /" |
148+
tee /etc/apt/sources.list.d/kubernetes.list
149+
150+
curl -fsSL https://pkgs.k8s.io/addons:/cri-o:/prerelease:/main/deb/Release.key |
151+
gpg --dearmor -o /etc/apt/keyrings/cri-o-apt-keyring.gpg
152+
echo "deb [signed-by=/etc/apt/keyrings/cri-o-apt-keyring.gpg] https://pkgs.k8s.io/addons:/cri-o:/prerelease:/main/deb/ /" |
153+
tee /etc/apt/sources.list.d/cri-o.list
154+
155+
apt-get update
156+
apt-get install -y cri-o kubelet kubeadm kubectl
157+
158+
systemctl start crio.service
159+
args:
160+
executable: /bin/bash
161+
register: _result
162+
changed_when: "_result.rc == 0"
163+
164+
###
165+
# The Project's prerelease:/main prefix at the CRI-O's package path, can be replaced with stable:/v1.28, stable:/v1.29, prerelease:/v1.28 or prerelease:/v1.29 if another stream package is used.
166+
###
167+
168+
- name: Add kubernetes repo for latest kubectl (Ubuntu)
169+
ansible.builtin.shell: |
170+
set -eo pipefail
171+
apt-get install -y apt-transport-https ca-certificates curl gnupg
172+
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
173+
chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg # allow unprivileged APT programs to read this keyring
174+
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | tee /etc/apt/sources.list.d/kubernetes.list
175+
chmod 644 /etc/apt/sources.list.d/kubernetes.list # helps tools such as command-not-found to work correctly
176+
apt-get update --allow-insecure-repositories
177+
args:
178+
executable: /bin/bash
179+
register: _result
180+
changed_when: "_result.rc == 0"
181+
182+
- name: Install services requirements
183+
ansible.builtin.package:
184+
name:
185+
- kubectl
186+
state: present
187+
use: apt
64188

65189
delegate_to: "{{ kubeinit_provision_service_node }}"

kubeinit/roles/kubeinit_libvirt/tasks/deploy_centos_guest.yml

Lines changed: 7 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -182,12 +182,7 @@
182182
- name: Install official package dependencies
183183
ansible.builtin.package:
184184
name:
185-
- conntrack
186185
- container-selinux
187-
- ebtables
188-
- ethtool
189-
- iptables
190-
- socat
191186
state: present
192187
use: dnf
193188

@@ -214,18 +209,18 @@
214209
block: |
215210
[cri-o]
216211
name=CRI-O
217-
baseurl=https://pkgs.k8s.io/addons:/cri-o:/prerelease:/main/rpm/
212+
baseurl=https://pkgs.k8s.io/addons:/cri-o:/stable:/v{{ kubeinit_k8s_kubernetes_version }}/rpm/
218213
enabled=1
219214
gpgcheck=1
220-
gpgkey=https://pkgs.k8s.io/addons:/cri-o:/prerelease:/main/rpm/repodata/repomd.xml.key
215+
gpgkey=https://pkgs.k8s.io/addons:/cri-o:/stable:/v{{ kubeinit_k8s_kubernetes_version }}/rpm/repodata/repomd.xml.key
221216
222217
#
223218
# cri-o config
224219
#
225220

226-
- name: Install the latest version of cri-o
221+
- name: Install the matching version of cri-o
227222
ansible.builtin.package:
228-
name: cri-o
223+
name: "{{ 'cri-o-' + kubeinit_k8s_kubernetes_version + '.*' }}"
229224
state: present
230225
use: dnf
231226

@@ -310,7 +305,7 @@
310305
when: kubeinit_k8s_container_runtime == "containerd"
311306

312307
#
313-
# kubernetes repos
308+
# kubernetes repo
314309
#
315310

316311
- name: Remove repo before adding it
@@ -326,7 +321,6 @@
326321

327322
- name: Adding repository details in Kubernetes repo file.
328323
ansible.builtin.blockinfile:
329-
path: /etc/yum.repos.d/kubernetes.repo
330324
block: |
331325
[kubernetes]
332326
name=Kubernetes
@@ -335,23 +329,11 @@
335329
gpgcheck=1
336330
gpgkey=https://pkgs.k8s.io/core:/stable:/v{{ kubeinit_k8s_kubernetes_version }}/rpm/repodata/repomd.xml.key
337331
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
338-
339-
#
340-
# Kubernetes config
341-
#
342-
343-
- name: Install requirements
344-
ansible.builtin.package:
345-
name:
346-
- device-mapper-persistent-data
347-
- lvm2
348-
state: present
349-
use: dnf
350-
when: false
332+
path: /etc/yum.repos.d/kubernetes.repo
351333

352334
- name: Install requirements
353335
ansible.builtin.command: |
354-
dnf install -y kubelet-{{ kubeinit_k8s_kubernetes_version_full }} kubeadm-{{ kubeinit_k8s_kubernetes_version_full }} kubectl-{{ kubeinit_k8s_kubernetes_version_full }} --disableexcludes=kubernetes
336+
dnf install -y kubelet-{{ kubeinit_k8s_kubernetes_version }}.* kubeadm-{{ kubeinit_k8s_kubernetes_version }}.* kubectl-{{ kubeinit_k8s_kubernetes_version }}.* --disableexcludes=kubernetes
355337
register: _result
356338
changed_when: "_result.rc == 0"
357339

kubeinit/roles/kubeinit_prepare/tasks/prepare_podman.yml

Lines changed: 0 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -17,81 +17,6 @@
1717
- name: Install podman dependencies if requested
1818
block:
1919

20-
- name: Setup kubeinit repo for Debian distribution
21-
block:
22-
23-
- name: Create folder if missing
24-
ansible.builtin.file:
25-
path: '/etc/containers'
26-
state: directory
27-
mode: '0755'
28-
become: true
29-
become_user: root
30-
31-
- name: Set cgroup_manager for debian release
32-
ansible.builtin.copy:
33-
content: |
34-
[engine]
35-
cgroup_manager = "cgroupfs"
36-
dest: '/etc/containers/containers.conf'
37-
mode: '0644'
38-
become: true
39-
become_user: root
40-
41-
- name: Set version facts
42-
ansible.builtin.set_fact:
43-
_version: "{{ _param_hostvars.ansible_distribution_version.split('.')[0] }}"
44-
45-
- name: Set version facts
46-
ansible.builtin.set_fact:
47-
_stability: "{{ 'stable' if ((_version | int) is version('12', 'le')) else 'testing' }}"
48-
49-
- name: Set version facts
50-
ansible.builtin.set_fact:
51-
_path_element: "{{ _param_hostvars.ansible_distribution + '_' + (_version if (_stability == 'stable') else 'testing') }}"
52-
53-
when: _param_hostvars.ansible_distribution == 'Debian'
54-
55-
- name: Setup kubeinit repo for Ubuntu distribution
56-
block:
57-
58-
- name: Set version facts
59-
ansible.builtin.set_fact:
60-
_version: "{{ _param_hostvars.ansible_distribution_version }}"
61-
_stability: "{{ 'stable' if (_param_hostvars.ansible_distribution_version is version('22.04', 'le')) else 'testing' }}"
62-
63-
- name: Set version facts
64-
ansible.builtin.set_fact:
65-
_path_element: "{{ '/x' + _param_hostvars.ansible_distribution + '_' + _version }}"
66-
67-
when: _param_hostvars.ansible_distribution == 'Ubuntu'
68-
69-
- name: Setup kubeinit repo for Debian family
70-
block:
71-
72-
- name: Make sure we have curl installed
73-
ansible.builtin.package:
74-
name: curl
75-
state: present
76-
use: apt
77-
become: true
78-
become_user: root
79-
80-
- name: Add the Podman kubeinit package repository to Apt
81-
ansible.builtin.shell: |
82-
set -eo pipefail
83-
echo "deb https://download.opensuse.org/repositories/home:/kubeinit/{{ _path_element }}/ /" | tee /etc/apt/sources.list.d/kubeinit.list
84-
curl -L "https://download.opensuse.org/repositories/home:/kubeinit/{{ _path_element }}/Release.key" | tee /etc/apt/trusted.gpg.d/kubeinit.asc
85-
apt-get update
86-
args:
87-
executable: /bin/bash
88-
become: true
89-
become_user: root
90-
register: _result
91-
changed_when: "_result.rc == 0"
92-
93-
when: _param_hostvars.distribution_family == 'Debian'
94-
9520
- name: Install podman dependencies
9621
ansible.builtin.package:
9722
name: "{{ kubeinit_prepare_podman_dependencies }}"

kubeinit/roles/kubeinit_services/tasks/00_create_service_pod.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,9 +161,13 @@
161161
state: started
162162
register: _result_pod_info
163163

164+
- name: Set _pod_info_first_pod fact
165+
ansible.builtin.set_fact:
166+
_pod_info_first_pod: "{{ _result_pod_info.pod[0] | default(_result_pod_info.pod) }}"
167+
164168
- name: Gather info about the infra container of the services pod
165169
containers.podman.podman_container_info:
166-
name: "{{ _result_pod_info.pod.Containers[0].Name }}"
170+
name: "{{ _pod_info_first_pod.Containers[0].Name }}"
167171
register: _result_infra_container_info
168172

169173
delegate_to: "{{ kubeinit_deployment_delegate }}"

0 commit comments

Comments
 (0)