Skip to content

Commit 5988197

Browse files
committed
Etcd certs: use symlink in kubeadm config
1 parent 0243844 commit 5988197

File tree

7 files changed

+57
-4
lines changed

7 files changed

+57
-4
lines changed

roles/kubernetes/control-plane/defaults/main/etcd.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,11 @@ etcd_extra_vars: {}
2727
# etcd_max_request_bytes: "1572864"
2828

2929
etcd_compaction_retention: "8"
30+
31+
32+
# Harlink to etcd certs
33+
etcd_cert_paths:
34+
client:
35+
ca: "{{ etcd_cert_dir }}/ca.pem"
36+
cert: "{{ etcd_cert_dir }}/node-{{ inventory_hostname }}.pem"
37+
key: "{{ etcd_cert_dir }}/node-{{ inventory_hostname }}-key.pem"

roles/kubernetes/control-plane/defaults/main/main.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,6 @@ kube_apiserver_etcd_compaction_interval: "5m0s"
2323
# in the request is actually present in etcd.
2424
kube_apiserver_service_account_lookup: true
2525

26-
kube_etcd_cacert_file: ca.pem
27-
kube_etcd_cert_file: node-{{ inventory_hostname }}.pem
28-
kube_etcd_key_file: node-{{ inventory_hostname }}-key.pem
29-
3026
# Associated interfaces must be reachable by the rest of the cluster, and by
3127
# CLI/web clients.
3228
kube_controller_manager_bind_address: "::"
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
- name: Create etcd cert directory
3+
ansible.builtin.file:
4+
path: "{{ etcd_cert_dir }}"
5+
state: directory
6+
mode: '0750'
7+
when:
8+
- inventory_hostname in groups['kube_control_plane']
9+
10+
- name: Generate symlink to etcd certs
11+
ansible.builtin.file:
12+
src: "{{item.src}}"
13+
dest: "{{item.dest}}"
14+
state: link
15+
force: true
16+
loop:
17+
- src: "{{etcd_cert_paths.client.ca}}"
18+
dest: "{{ etcd_cert_dir }}/{{kube_etcd_cacert_file}}"
19+
- src: "{{etcd_cert_paths.client.cert}}"
20+
dest: "{{ etcd_cert_dir }}/{{kube_etcd_cert_file}}"
21+
- src: "{{etcd_cert_paths.client.key}}"
22+
dest: "{{ etcd_cert_dir }}/{{kube_etcd_key_file}}"
23+
when:
24+
- inventory_hostname in groups['kube_control_plane']

roles/kubernetes/control-plane/tasks/kubeadm-setup.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,10 @@
9696
mode: "0640"
9797
validate: "{{ kubeadm_config_validate_enabled | ternary(bin_dir + '/kubeadm config validate --config %s', omit) }}"
9898

99+
- name: Kubeadm | debug config
100+
ansible.builtin.debug:
101+
var: lookup('ansible.builtin.file', "{{ kube_config_dir }}/kubeadm-config.yaml")
102+
99103
- name: Kubeadm | Create directory to store admission control configurations
100104
file:
101105
path: "{{ kube_config_dir }}/admission-controls"

roles/kubernetes/control-plane/tasks/main.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@
44
tags:
55
- k8s-pre-upgrade
66

7+
- name: Create etcd cert symbolic links
8+
import_tasks: 0010-etcd-link.yml
9+
when:
10+
- etcd_deployment_type != "kubeadm"
11+
712
- name: Create webhook token auth config
813
template:
914
src: webhook-token-auth-config.yaml.j2

roles/kubernetes/control-plane/vars/main.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,7 @@ kube_apiserver_admission_plugins_needs_configuration:
77
- PodSecurity
88
- PodNodeSelector
99
- ResourceQuota
10+
11+
kube_etcd_cacert_file: "kube-client-ca.pem"
12+
kube_etcd_cert_file: "kube-client-cert.pem"
13+
kube_etcd_key_file: "kube-client-key.pem"

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -763,3 +763,15 @@ system_upgrade_reboot: on-upgrade # never, always
763763

764764
# Enables or disables the scheduler plugins.
765765
scheduler_plugins_enabled: false
766+
767+
# Symlinks to etcd certs
768+
kube_etcd_cacert_file: "kube-client-ca.pem"
769+
kube_etcd_cert_file: "kube-client-cert.pem"
770+
kube_etcd_key_file: "kube-client-key.pem"
771+
772+
# Harlink to etcd certs
773+
etcd_cert_paths:
774+
client:
775+
ca: "{{ etcd_cert_dir }}/ca.pem"
776+
cert: "{{ etcd_cert_dir }}/node-{{ inventory_hostname }}.pem"
777+
key: "{{ etcd_cert_dir }}/node-{{ inventory_hostname }}-key.pem"

0 commit comments

Comments
 (0)