
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>
117 lines
4.8 KiB
YAML
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
|
|
...
|