Browse Source

Merge pull request #12219 from VannTen/test/ha_etcd_separate

Fix broken workaround for separate etcd setup
pull/11964/head
Kubernetes Prow Robot 4 months ago
committed by GitHub
parent
commit
acd6872c80
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
3 changed files with 36 additions and 22 deletions
  1. 1
      .gitlab-ci/kubevirt.yml
  2. 44
      roles/etcd/tasks/gen_certs_script.yml
  3. 13
      tests/files/ubuntu24-ha-separate-etcd.yml

1
.gitlab-ci/kubevirt.yml

@ -55,6 +55,7 @@ pr:
- ubuntu22-calico-all-in-one
- ubuntu22-calico-all-in-one-upgrade
- ubuntu24-calico-etcd-datastore
- ubuntu24-ha-separate-etcd
# The ubuntu20-calico-all-in-one jobs are meant as early stages to prevent running the full CI if something is horribly broken
ubuntu20-calico-all-in-one:

44
roles/etcd/tasks/gen_certs_script.yml

@ -98,28 +98,6 @@
loop_control:
label: "{{ item.item }}"
# This is a hack around the fact kubeadm expect the same certs path on all kube_control_plane
# TODO: fix certs generation to have the same file everywhere
# OR work with kubeadm on node-specific config
- name: Gen_certs | Pretend all control plane have all certs (with symlinks)
file:
state: link
src: "{{ etcd_cert_dir }}/node-{{ inventory_hostname }}{{ item[0] }}.pem"
dest: "{{ etcd_cert_dir }}/node-{{ item[1] }}{{ item[0] }}.pem"
mode: "0640"
loop: "{{ suffixes | product(groups['kube_control_plane']) }}"
vars:
suffixes:
- ''
- '-key'
when:
- ('kube_control_plane' in group_names)
- item[1] != inventory_hostname
register: symlink_created
failed_when:
- symlink_created is failed
- ('refusing to convert from file to symlink' not in symlink_created.msg)
- name: Gen_certs | Gather node certs from first etcd node
slurp:
src: "{{ item }}"
@ -175,3 +153,25 @@
owner: "{{ etcd_owner }}"
mode: "{{ etcd_cert_dir_mode }}"
recurse: true
# This is a hack around the fact kubeadm expect the same certs path on all kube_control_plane
# TODO: fix certs generation to have the same file everywhere
# OR work with kubeadm on node-specific config
- name: Gen_certs | Pretend all control plane have all certs (with symlinks)
file:
state: link
src: "{{ etcd_cert_dir }}/node-{{ inventory_hostname }}{{ item[0] }}.pem"
dest: "{{ etcd_cert_dir }}/node-{{ item[1] }}{{ item[0] }}.pem"
mode: "0640"
loop: "{{ suffixes | product(groups['kube_control_plane']) }}"
vars:
suffixes:
- ''
- '-key'
when:
- ('kube_control_plane' in group_names)
- item[1] != inventory_hostname
register: symlink_created
failed_when:
- symlink_created is failed
- ('refusing to convert from file to symlink' not in symlink_created.msg)

13
tests/files/ubuntu24-ha-separate-etcd.yml

@ -0,0 +1,13 @@
---
cloud_image: ubuntu-2404
cluster_layout:
- node_groups: ['kube_control_plane']
- node_groups: ['kube_control_plane']
- node_groups: ['kube_control_plane']
- node_groups: ['kube_node']
- node_groups: ['etcd']
- node_groups: ['etcd']
- node_groups: ['etcd']
kube_network_plugin: calico
calico_datastore: etcd
Loading…
Cancel
Save