diff options
Diffstat (limited to 'roles/etcd')
| -rw-r--r-- | roles/etcd/defaults/main.yaml | 4 | ||||
| -rw-r--r-- | roles/etcd/tasks/main.yml | 8 | ||||
| -rw-r--r-- | roles/etcd/tasks/restart.yml | 21 | ||||
| -rw-r--r-- | roles/etcd/tasks/version_detect.yml | 55 | 
4 files changed, 83 insertions, 5 deletions
| diff --git a/roles/etcd/defaults/main.yaml b/roles/etcd/defaults/main.yaml index 9a3652a2b..a069e4d87 100644 --- a/roles/etcd/defaults/main.yaml +++ b/roles/etcd/defaults/main.yaml @@ -2,8 +2,10 @@  r_etcd_common_backup_tag: ''  r_etcd_common_backup_sufix_name: '' +l_is_etcd_system_container: "{{ (openshift_use_etcd_system_container | default(openshift_use_system_containers | default(false)) | bool) }}" +  # runc, docker, host -r_etcd_common_etcd_runtime: "docker" +r_etcd_common_etcd_runtime: "{{ 'runc' if l_is_etcd_system_container else 'docker' if l_is_containerized else 'host' }}"  r_etcd_common_embedded_etcd: false  osm_etcd_image: 'registry.access.redhat.com/rhel7/etcd' diff --git a/roles/etcd/tasks/main.yml b/roles/etcd/tasks/main.yml index fabe66b91..78ec2cedb 100644 --- a/roles/etcd/tasks/main.yml +++ b/roles/etcd/tasks/main.yml @@ -30,7 +30,7 @@        src: etcd.docker.service    when:    - etcd_is_containerized | bool -  - not openshift.common.is_etcd_system_container | bool +  - not l_is_etcd_system_container | bool  # Start secondary etcd instance for third party integrations  # TODO: Determine an alternative to using thirdparty variable @@ -90,7 +90,7 @@        enabled: no        masked: yes        daemon_reload: yes -    when: not openshift.common.is_etcd_system_container | bool +    when: not l_is_etcd_system_container | bool      register: task_result      failed_when: task_result|failed and 'could not' not in task_result.msg|lower @@ -98,11 +98,11 @@      template:        dest: "/etc/systemd/system/etcd_container.service"        src: etcd.docker.service -    when: not openshift.common.is_etcd_system_container | bool +    when: not l_is_etcd_system_container | bool    - name: Install Etcd system container      include: system_container.yml -    when: openshift.common.is_etcd_system_container | bool +    when: l_is_etcd_system_container | bool    when: etcd_is_containerized | bool  - name: Validate permissions on the config dir diff --git a/roles/etcd/tasks/restart.yml b/roles/etcd/tasks/restart.yml new file mode 100644 index 000000000..d4a016eec --- /dev/null +++ b/roles/etcd/tasks/restart.yml @@ -0,0 +1,21 @@ +--- + +- name: restart etcd +  service: +    name: "{{ etcd_service }}" +    state: restarted +  when: +    - not g_etcd_certificates_expired | default(false) | bool + +- name: stop etcd +  service: +    name: "{{ etcd_service }}" +    state: stopped +  when: +    - g_etcd_certificates_expired | default(false) | bool +- name: start etcd +  service: +    name: "{{ etcd_service }}" +    state: started +  when: +    - g_etcd_certificates_expired | default(false) | bool diff --git a/roles/etcd/tasks/version_detect.yml b/roles/etcd/tasks/version_detect.yml new file mode 100644 index 000000000..fe1e418d8 --- /dev/null +++ b/roles/etcd/tasks/version_detect.yml @@ -0,0 +1,55 @@ +--- +- block: +  - name: Record RPM based etcd version +    command: rpm -qa --qf '%{version}' etcd\* +    args: +      warn: no +    register: etcd_rpm_version +    failed_when: false +    # AUDIT:changed_when: `false` because we are only inspecting +    # state, not manipulating anything +    changed_when: false +  - debug: +      msg: "Etcd rpm version {{ etcd_rpm_version.stdout }} detected" +  when: +  - not openshift.common.is_containerized | bool + +- block: +  - name: Record containerized etcd version (docker) +    command: docker exec etcd_container rpm -qa --qf '%{version}' etcd\* +    register: etcd_container_version_docker +    failed_when: false +    # AUDIT:changed_when: `false` because we are only inspecting +    # state, not manipulating anything +    changed_when: false +    when: +    - not l_is_etcd_system_container | bool + +    # Given a register variables is set even if the whwen condition +    # is false, we need to set etcd_container_version separately +  - set_fact: +      etcd_container_version: "{{ etcd_container_version_docker.stdout }}" +    when: +    - not l_is_etcd_system_container | bool + +  - name: Record containerized etcd version (runc) +    command: runc exec etcd rpm -qa --qf '%{version}' etcd\* +    register: etcd_container_version_runc +    failed_when: false +    # AUDIT:changed_when: `false` because we are only inspecting +    # state, not manipulating anything +    changed_when: false +    when: +    - l_is_etcd_system_container | bool + +    # Given a register variables is set even if the whwen condition +    # is false, we need to set etcd_container_version separately +  - set_fact: +      etcd_container_version: "{{ etcd_container_version_runc.stdout }}" +    when: +    - l_is_etcd_system_container | bool + +  - debug: +      msg: "Etcd containerized version {{ etcd_container_version }} detected" +  when: +  - openshift.common.is_containerized | bool | 
