update
This commit is contained in:
65
kubespray/extra_playbooks/roles/etcdctl/tasks/main.yml
Normal file
65
kubespray/extra_playbooks/roles/etcdctl/tasks/main.yml
Normal file
@@ -0,0 +1,65 @@
|
||||
---
|
||||
# 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
|
||||
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
# {{ ansible_managed }}
|
||||
# example invocation: etcdctl.sh get --keys-only --from-key ""
|
||||
|
||||
etcdctl \
|
||||
--cacert {{ kube_cert_dir }}/etcd/ca.crt \
|
||||
--cert {{ kube_cert_dir }}/etcd/server.crt \
|
||||
--key {{ kube_cert_dir }}/etcd/server.key "$@"
|
||||
Reference in New Issue
Block a user