Files
openstack-helm/playbooks/run-scripts.yaml
Vladimir Kozhukalov b5876e3274 Fix run-scripts playbook to test images
We updated images used by default to quay.io/airshipit
in all values files but didn't update the image
replacement script that is used when we need to
test built images before publishing them.

Change-Id: Id2b78dba5c99f38599345f16707683f3bde533e4
2025-05-14 19:57:30 -05:00

96 lines
3.4 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
- name: Run gate scripts
include_role:
name: "{{ ([item] | flatten | length == 1) | ternary('osh-run-script', 'osh-run-script-set') }}"
vars:
workload: "{{ [item] | flatten }}"
loop: "{{ gate_scripts }}"
- name: "Downloads artifacts to executor"
synchronize:
src: "/tmp/artifacts"
dest: "{{ zuul.executor.log_root }}/{{ inventory_hostname }}"
mode: pull
ignore_errors: True
...