From 3d8acef64471efce1770f799fc86eeb9788acf38 Mon Sep 17 00:00:00 2001 From: Lukas Bezdicka Date: Wed, 14 Apr 2021 19:20:15 +0200 Subject: [PATCH] [train-only] Introduce hybrid state for iscsi Turns out iscsi will not work if the train nova tries to talk with EL7 based iscsid. We bump the container expecting the kernel parts to be compatible. Resolves: rhbz#1949525 Change-Id: I245f71fc2de01a5390bc2fbef2d796e27fd2e0c4 --- .../iscsid/iscsid-container-puppet.yaml | 70 ++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/deployment/iscsid/iscsid-container-puppet.yaml b/deployment/iscsid/iscsid-container-puppet.yaml index 995edba57d..174b18ebc4 100644 --- a/deployment/iscsid/iscsid-container-puppet.yaml +++ b/deployment/iscsid/iscsid-container-puppet.yaml @@ -33,6 +33,12 @@ parameters: default: {} description: Parameters specific to the role type: json + DockerInsecureRegistryAddress: + description: Optional. The IP Address and Port of an insecure docker + namespace that will be configured in /etc/sysconfig/docker. + The value can be multiple addresses separated by commas. + type: comma_delimited_list + default: [] DefaultPasswords: default: {} type: json @@ -65,6 +71,9 @@ parameters: tags: - role_specific +conditions: + insecure_registry_is_empty: {equals : [{get_param: DockerInsecureRegistryAddress}, []]} + resources: ContainersCommon: @@ -171,4 +180,63 @@ outputs: when: - iscsi_service_enabled_result is changed - iscsi_service_enabled_result.rc == 0 - upgrade_tasks: [] + upgrade_tasks: + - name: Switch iscsid to hybrid state + vars: + iscsid_image: {get_param: ContainerIscsidImage} + tags: + - never + - nova_hybrid_state + when: step|int == 0 + block: + - name: Check if we need to create iscsid paunch config + stat: + path: /var/lib/tripleo-config/docker-container-hybrid_iscsid.json + register: hybrid_iscsid + - name: Implement the hybrid state (only if the compute is still Queens) + when: not hybrid_iscsid.stat.exists + block: + - name: Update the iscsid paunch image in config + shell: | + set -o pipefail + jq '.iscsid.image = "{{ iscsid_image }}" | {"iscsid": .iscsid }' \ + /var/lib/tripleo-config/docker-container-startup-config-step_3.json >\ + /var/lib/tripleo-config/docker-container-hybrid_iscsid.json + # In case UC is registry we need to be able to resolve it + - name: Make sure the Undercloud hostname is included in /etc/hosts + when: + - undercloud_hosts_entries is defined + lineinfile: + dest: /etc/hosts + line: "{{ undercloud_hosts_entries | join('') }}" + state: present + - name: Set container_registry_insecure_registries fact. + set_fact: + container_registry_insecure_registries: + if: + - insecure_registry_is_empty + - [] + - {get_param: DockerInsecureRegistryAddress} + - name: Set container_registry_insecure registries + when: container_registry_insecure_registries != [] + ini_file: + path: /etc/containers/registries.conf + section: registries.insecure + option: registries + value: "{{ container_registry_insecure_registries }}" + register: ini_read_result + - name: Restart docker + when: + - container_registry_insecure_registries != [] + - ini_read_result is changed + service: + name: docker + state: restarted + - name: Remove iscsid container before applying new paunch config + docker_container: + name: iscsid + state: absent + # Finally apply the paunch config to start the new iscsid + - name: Apply paunch config for iscsid + shell: | + paunch apply --file /var/lib/tripleo-config/docker-container-hybrid_iscsid.json --config-id hybrid_iscsid