Skip to content

Commit 08c9ec8

Browse files
committed
Parameterize kubelet root directory(/var/lib/kubelet)
1 parent e332375 commit 08c9ec8

File tree

4 files changed

+46
-0
lines changed

4 files changed

+46
-0
lines changed

roles/kubernetes/preinstall/defaults/main.yml

+1
Original file line numberDiff line numberDiff line change
@@ -148,3 +148,4 @@ systemd_resolved_disable_stub_listener: "{{ ansible_os_family in ['Flatcar', 'Fl
148148
# Used to disable File Access Policy Daemon service.
149149
# If service is enabled, the CNI plugin installation will fail
150150
disable_fapolicyd: true
151+
kubelet_root_dir: /var/lib/kubelet
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# mount bind the kubelet root to the default location.
2+
# many csi and software in the ecosystem have this location hardcoded
3+
4+
- name: "Make sure /var/lib/kubelet exists"
5+
ansible.builtin.file:
6+
path: "/var/lib/kubelet"
7+
state: directory
8+
mode: '0750'
9+
when:
10+
- kubelet_root_dir != '/var/lib/kubelet'
11+
12+
- name: "Make sure kubelet_root_dir exists"
13+
ansible.builtin.file:
14+
path: "{{kubelet_root_dir}}"
15+
state: directory
16+
mode: '0750'
17+
when:
18+
- kubelet_root_dir != '/var/lib/kubelet'
19+
20+
- name: "Synchronize old /var/lib/kubelet to new location before mounting"
21+
command: "rsync -avh --ignore-existing /var/lib/kubelet/ {{kubelet_root_dir}}"
22+
changed_when: false
23+
when:
24+
- kubelet_root_dir != '/var/lib/kubelet'
25+
26+
27+
- name: "Mount bind kubelet-root to /var/lib/kubelet and add it to fstab"
28+
ansible.posix.mount:
29+
path: /var/lib/kubelet
30+
src: "{{kubelet_root_dir}}"
31+
opts: bind,nofail
32+
state: mounted
33+
boot: true
34+
fstype: none
35+
when:
36+
- kubelet_root_dir != '/var/lib/kubelet'

roles/kubernetes/preinstall/tasks/main.yml

+8
Original file line numberDiff line numberDiff line change
@@ -137,3 +137,11 @@
137137
when:
138138
- kube_network_plugin == 'calico'
139139
- not ignore_assert_errors
140+
141+
142+
- import_tasks: 0200_kubeletroot.yaml
143+
tags:
144+
- bootstrap-os
145+
- kubelet-root
146+
when:
147+
- kubelet_root_dir != '/var/lib/kubelet'

roles/kubespray-defaults/defaults/main/main.yml

+1
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,7 @@ kubelet_rotate_server_certificates: false
565565
# If set to true, kubelet errors if any of kernel tunables is different than kubelet defaults
566566
kubelet_protect_kernel_defaults: true
567567

568+
kubelet_root_dir: /var/lib/kubelet
568569
# Set additional sysctl variables to modify Linux kernel variables, for example:
569570
# additional_sysctl:
570571
# - { name: kernel.pid_max, value: 131072 }

0 commit comments

Comments
 (0)