- name: create osp-secret ansible.builtin.shell: | {{ shell_header }} {{ oc_header }} cd {{ install_yamls_path }} make input - name: execute alternative tasks when source env is ODPdO ansible.builtin.include_tasks: ospdo_backend_services.yaml when: ospdo_src| bool vars: get_svc_pass: true - name: set service passwords no_log: "{{ use_no_log }}" ansible.builtin.shell: | {{ shell_header }} {{ oc_header }} {% if aodh_password %} oc set data secret/osp-secret "AodhPassword={{ aodh_password }}" {% endif %} {% if barbican_password %} oc set data secret/osp-secret "BarbicanPassword={{ barbican_password }}" {% endif %} {% if ceilometer_password %} oc set data secret/osp-secret "CeilometerPassword={{ ceilometer_password }}" {% endif %} {% if cinder_password %} oc set data secret/osp-secret "CinderPassword={{ cinder_password }}" {% endif %} {% if designate_password %} oc set data secret/osp-secret "DesignatePassword={{ designate_password }}" {% endif %} {% if glance_password %} oc set data secret/osp-secret "GlancePassword={{ glance_password }}" {% endif %} {% if ironic_password %} oc set data secret/osp-secret "IronicPassword={{ ironic_password }}" oc set data secret/osp-secret "IronicInspectorPassword={{ ironic_password }}" {% endif %} {% if neutron_password %} oc set data secret/osp-secret "NeutronPassword={{ neutron_password }}" {% endif %} {% if nova_password %} oc set data secret/osp-secret "NovaPassword={{ nova_password }}" {% endif %} {% if octavia_password %} oc set data secret/osp-secret "OctaviaPassword={{ octavia_password }}" {% endif %} {% if placement_password %} oc set data secret/osp-secret "PlacementPassword={{ placement_password }}" {% endif %} {% if heat_password %} oc set data secret/osp-secret "HeatPassword={{ heat_password }}" oc set data secret/osp-secret "HeatAuthEncryptionKey={{ heat_auth_encryption_key }}" oc set data secret/osp-secret "HeatStackDomainAdminPassword={{ heat_stack_domain_admin_password }}" {% endif %} {% if manila_password %} oc set data secret/osp-secret "ManilaPassword={{ manila_password }}" {% endif %} {% if swift_password %} oc set data secret/osp-secret "SwiftPassword={{ swift_password }}" {% endif %} - name: create tmp directory ansible.builtin.command: cmd: mkdir -p "{{ dpa_tests_dir }}/config/tmp" - name: template out the controlplane deployment ansible.builtin.template: src: openstack_control_plane.j2 dest: "../config/tmp/test_deployment.yaml" mode: '644' force: true when: not ospdo_src| bool - name: when periodic, create OpenStackVersion CR with container overrides when: - cifmw_update_containers_openstack|default(true) - periodic|default(false) - container_registry is defined - container_tag is defined - container_namespace is defined block: - name: template out the OpenStackVersion deployment with container overrides ansible.builtin.template: src: openstack_version.j2 dest: "{{ dpa_tests_dir }}/config/openstack_version_overrides.yaml" mode: '644' force: true - name: Apply OpenStackVersion with container overrides to environment ansible.builtin.shell: | {{ shell_header }} {{ oc_header }} oc apply -f openstack_version_overrides.yaml args: chdir: "{{ dpa_tests_dir }}/config" - name: Get OpenStackVersion resource name for custom Barbican images when: >- (barbican_custom_api_image is defined and barbican_custom_api_image) or (barbican_custom_worker_image is defined and barbican_custom_worker_image) ansible.builtin.shell: | {{ shell_header }} {{ oc_header }} oc get openstackversions -o jsonpath='{.items[0].metadata.name}' register: openstack_version_name changed_when: false failed_when: openstack_version_name.stdout == "" - name: Patch OpenStackVersion with custom Barbican images when: >- (barbican_custom_api_image is defined and barbican_custom_api_image) or (barbican_custom_worker_image is defined and barbican_custom_worker_image) ansible.builtin.shell: | {{ shell_header }} {{ oc_header }} {% if barbican_custom_api_image is defined and barbican_custom_api_image %} oc patch openstackversion {{ openstack_version_name.stdout }} --type=merge -p '{"spec":{"customContainerImages":{"barbicanAPIImage":"{{ barbican_custom_api_image }}"}}}' {% endif %} {% if barbican_custom_worker_image is defined and barbican_custom_worker_image %} oc patch openstackversion {{ openstack_version_name.stdout }} --type=merge -p '{"spec":{"customContainerImages":{"barbicanWorkerImage":"{{ barbican_custom_worker_image }}"}}}' {% endif %} - name: execute alternative tasks when source env is ODPdO ansible.builtin.include_tasks: ospdo_backend_services.yaml when: ospdo_src| bool vars: deploy_ctlplane_ospdo: true - name: deploy the OpenStackControlPlane CR ansible.builtin.shell: | {{ shell_header }} {{ oc_header }} oc apply -f ../config/tmp/test_deployment.yaml when: not ospdo_src| bool - name: verify that MariaDB and RabbitMQ are running, for all defined cells ansible.builtin.shell: | {{ shell_header }} {{ oc_header }} {{ cells_env }} oc get pod openstack-galera-0 -o jsonpath='{.status.phase}{"\n"}' | grep Running oc get pod rabbitmq-server-0 -o jsonpath='{.status.phase}{"\n"}' | grep Running for CELL in $(echo $RENAMED_CELLS); do oc get pod openstack-$CELL-galera-0 -o jsonpath='{.status.phase}{"\n"}' | grep Running oc get pod rabbitmq-$CELL-server-0 -o jsonpath='{.status.phase}{"\n"}' | grep Running done register: mariadb_running_result until: mariadb_running_result is success retries: 60 delay: "{{ backend_retry_delay }}" # TODO- debug value (was 2) - name: verify that MariaDB and RabbitMQ CR's deployed, for all defined cells ansible.builtin.shell: | {{ shell_header }} {{ oc_header }} oc get {{ item }} -o json | jq -e '[ .items[].status.conditions[] | select(.type == "Ready") | .message] | select(length > 0) | all(. == "Setup complete")' register: service_cr_result until: service_cr_result.stdout == "true" retries: 60 delay: "{{ backend_retry_delay }}" failed_when: service_cr_result.rc != 0 and service_cr_result.stdout != "true" loop: - "Galera" - "Rabbitmqs" - name: Patch openstack upstream dns server to set the correct value for the environment when: upstream_dns is defined ansible.builtin.shell: | {{ shell_header }} {{ oc_header }} crname=$(oc get openstackcontrolplane -o name) oc patch ${crname} --type json \ -p='[{"op": "replace", "path": "/spec/dns/template/options", "value": [{"key": "server", "values": ["{{ upstream_dns }}"]}]}]' - name: Patch rabbitmq resources for lower resource consumption changed_when: false ansible.builtin.shell: | {{ shell_header }} {{ oc_header }} crname=$(oc get openstackcontrolplane -o name) oc patch ${crname} --type json \ -p='[{"op": "replace", "path": "/spec/rabbitmq/templates/rabbitmq/resources/requests/cpu", "value": 500m}]' oc patch ${crname} --type json \ -p='[{"op": "replace", "path": "/spec/rabbitmq/templates/rabbitmq/resources/requests/memory", "value": 500Mi}]' oc patch ${crname} --type json \ -p='[{"op": "replace", "path": "/spec/rabbitmq/templates/rabbitmq-cell1/resources/requests/cpu", "value": 500m}]' oc patch ${crname} --type json \ -p='[{"op": "replace", "path": "/spec/rabbitmq/templates/rabbitmq-cell1/resources/requests/memory", "value": 500Mi}]' - name: Verify that OpenStackControlPlane is waiting for openstackclient ansible.builtin.shell: | {{ shell_header }} {{ oc_header }} oc get openstackcontrolplane openstack -o jsonpath='{.status.conditions[?(@.type=="Ready")].message}{"\n"}' | grep 'OpenStackControlPlane Client not started' register: openstack_control_plane_cr_result until: openstack_control_plane_cr_result is success retries: 60 delay: "{{ backend_retry_delay }}"