a4ee07744e
The issue was that we used to add buildset registry name to the /etc/hosts file only on the primary node. This PR fixes this. Change-Id: I48a861c7c6661e3fe1e7384f4b987f1646d652d7
97 lines
3.4 KiB
YAML
97 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: >
|
|
find {{ override_paths | join(" ") }} -type f -exec sed -Ei
|
|
"s#['\"]?docker\.io/({{ repo }}):({{ tag }})['\"]?\$#{{ buildset_registry_alias }}:{{ buildset_registry.port }}/\1:\2#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: "{{ zj_zuul_artifact.metadata.repository }}"
|
|
override_paths:
|
|
- ../openstack-helm*/*/values*
|
|
- ../openstack-helm-infra/tools/deployment/
|
|
|
|
- name: Diff
|
|
shell: |
|
|
set -ex;
|
|
for dir in openstack-helm openstack-helm-infra; do
|
|
path="{{ work_dir }}/../${dir}/"
|
|
if [ ! -d "${path}" ]; then continue; fi
|
|
echo "${dir} diff"
|
|
cd "${path}"; git diff; cd -;
|
|
done
|
|
|
|
- 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
|
|
...
|