c12s-kubespray/roles/etcdctl/tasks/main.yml

66 lines
1.9 KiB
YAML
Raw Normal View History

---
# To get the binary from container to host, use the etcd data directory mounted
# rw from host into the container.
- name: Check unintentional include of this role
assert:
that: etcd_deployment_type == "kubeadm"
- name: Check if etcdctl exist
stat:
path: "{{ bin_dir }}/etcdctl"
get_attributes: no
get_checksum: no
get_mime: no
register: stat_etcdctl
- block:
- name: Check version
command: "{{ bin_dir }}/etcdctl version"
register: etcdctl_version
check_mode: no
changed_when: false
- name: Remove old binary if version is not OK
file:
path: "{{ bin_dir }}/etcdctl"
state: absent
when: etcd_version.lstrip('v') not in etcdctl_version.stdout
when: stat_etcdctl.stat.exists
- name: Check if etcdctl still exist after version check
stat:
path: "{{ bin_dir }}/etcdctl"
get_attributes: no
get_checksum: no
get_mime: no
register: stat_etcdctl
- block:
- name: Copy etcdctl script to host
shell: "{{ docker_bin_dir }}/docker exec \"$({{ docker_bin_dir }}/docker ps -qf ancestor={{ etcd_image_repo }}:{{ etcd_image_tag }})\" cp /usr/local/bin/etcdctl {{ etcd_data_dir }}/etcdctl"
when: container_manager == "docker"
- name: Copy etcdctl script to host
shell: "{{ bin_dir }}/crictl exec \"$({{ bin_dir }}/crictl ps -q --image {{ etcd_image_repo }}:{{ etcd_image_tag }})\" cp /usr/local/bin/etcdctl {{ etcd_data_dir }}/etcdctl"
when: container_manager in ['crio', 'containerd']
- name: Copy etcdctl to {{ bin_dir }}
copy:
src: "{{ etcd_data_dir }}/etcdctl"
dest: "{{ bin_dir }}"
remote_src: true
mode: 0755
when: not stat_etcdctl.stat.exists
- name: Remove binary in etcd data dir
file:
path: "{{ etcd_data_dir }}/etcdctl"
state: absent
- name: Create etcdctl wrapper script
template:
src: etcdctl.sh.j2
dest: "{{ bin_dir }}/etcdctl.sh"
mode: 0755