Files
openstack-helm/playbooks/run-scripts.yaml
Vladimir Kozhukalov 34e3615f29 Fix console xtrace for Ansible shell module
After switching to Ansible 11 by default the shell module
in included roles does not send xtrace to the zuul console.
So we run deployment scripts directly in the playbook.

Change-Id: I5a61579ceac4371515f683a4463fb69c7f53a9d0
Signed-off-by: Vladimir Kozhukalov <kozhukalov@gmail.com>
2025-09-23 03:50:02 -05:00

117 lines
4.8 KiB
YAML

# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
---
- hosts: all
become: true
tasks:
- name: Configure /etc/hosts for buildset_registry to workaround docker not understanding ipv6 addresses
lineinfile:
path: /etc/hosts
state: present
regex: "^{{ buildset_registry.host }}\tzuul-jobs.buildset-registry$"
line: "{{ buildset_registry.host }}\tzuul-jobs.buildset-registry"
insertafter: EOF
when:
- buildset_registry is defined
- buildset_registry.host | ipaddr
- hosts: primary
tasks:
- name: Override images
when: buildset_registry is defined
vars:
work_dir: "{{ zuul.project.src_dir }}"
block:
- name: Set buildset_registry alias variable when using ip
set_fact:
buildset_registry_alias: zuul-jobs.buildset-registry
when:
- buildset_registry.host | ipaddr
- name: Set buildset_registry alias variable when using name
set_fact:
buildset_registry_alias: "{{ buildset_registry.host }}"
when:
- not ( buildset_registry.host | ipaddr )
- name: Print zuul
debug:
var: zuul
- name: Override proposed images from artifacts
shell: >
set -ex;
find {{ override_paths | join(" ") }} -type f -exec sed -Ei
"s#['\"]?(docker|quay)\.io/(openstackhelm|loci|airshipit)/({{ repo }}):({{ tag }})['\"]?\$#{{ buildset_registry_alias }}:{{ buildset_registry.port }}/{{ repo_org }}/{{ repo }}:\4#g" {} +
loop: "{{ zuul.artifacts | default([]) }}"
args:
chdir: "{{ work_dir }}"
loop_control:
loop_var: zj_zuul_artifact
when: "'metadata' in zj_zuul_artifact and zj_zuul_artifact.metadata.type | default('') == 'container_image'"
vars:
tag: "{{ zj_zuul_artifact.metadata.tag }}"
repo_org: "{{ zj_zuul_artifact.metadata.repository | dirname }}"
repo: "{{ zj_zuul_artifact.metadata.repository | basename }}"
override_paths:
- ../openstack-helm/values_overrides
- ../openstack-helm/*/values*
- ../openstack-helm/tools/deployment/
- name: Diff
shell: |
set -ex
cd "{{ work_dir }}/../openstack-helm"
git diff
- name: "creating directory for run artifacts"
file:
path: "/tmp/artifacts"
state: directory
# NOTE: After switching to Ansible 2.11 then xtrace stopped working
# for shell tasks in included roles. So instead of using
# osh-run-script-* roles we directly run the scripts in the
# playbook.
- name: "Run script {{ item }}"
shell: |
set -xe
env
{{ item }}
args:
chdir: "{{ zuul.project.src_dir }}/{{ gate_scripts_relative_path }}"
executable: /bin/bash
environment:
CEPH_OSD_DATA_DEVICE: "{{ ceph_osd_data_device }}"
POD_NETWORK_CIDR: "{{ kubeadm.pod_network_cidr }}"
zuul_site_mirror_fqdn: "{{ zuul_site_mirror_fqdn }}"
OSH_EXTRA_HELM_ARGS: "{{ zuul_osh_extra_helm_args | default('') }}"
OSH_HELM_REPO: "{{ osh_helm_repo | default('../openstack-helm') }}"
DOWNLOAD_OVERRIDES: "{{ download_overrides | default('') }}"
OSH_PATH: "{{ zuul_osh_relative_path | default('../openstack-helm/') }}"
OSH_VALUES_OVERRIDES_PATH: "{{ osh_values_overrides_path }}"
OPENSTACK_RELEASE: "{{ osh_params.openstack_release | default('') }}"
CONTAINER_DISTRO_NAME: "{{ osh_params.container_distro_name | default('') }}"
CONTAINER_DISTRO_VERSION: "{{ osh_params.container_distro_version | default('') }}"
FEATURES: "{{ osh_params.feature_gates | default('') | regex_replace(',', ' ') }} {{ osh_params.openstack_release | default('') }} {{ osh_params.container_distro_name | default('') }}_{{ osh_params.container_distro_version | default('') }} {{ osh_params.container_distro_name | default('') }}"
RUN_HELM_TESTS: "{{ run_helm_tests | default('yes') }}"
loop: "{{ gate_scripts }}"
- name: "Downloads artifacts to executor"
synchronize:
src: "/tmp/artifacts"
dest: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}"
mode: pull
ignore_errors: True
...