commit 1aa21350902918c309a5f0536fd7b4d4e049bb13 Author: Chandan Kumar (raukadah) Date: Thu Sep 17 15:05:12 2020 +0530 Added tasks for building containers on CentOS-7 It will be used with the content provider job. Set buildcontainers_venv: false to use dlrn installed packages. buildcontainers_rpm_setup_config: "" as kolla will download the required dlrn repos and gating repo. Added undercloud tag to prepare and use old container workflow for c7 based env. Added insecure registry for docker. Change-Id: Ic5f569a78b5341fcee9cd013eddfffd3eeb66fa0 Signed-off-by: Chandan Kumar (raukadah) diff --git a/playbooks/multinode-standalone-pre.yml b/playbooks/multinode-standalone-pre.yml index de6c0c0..0fc6c05 100644 --- a/playbooks/multinode-standalone-pre.yml +++ b/playbooks/multinode-standalone-pre.yml @@ -1,9 +1,28 @@ --- +- name: Discover a real branch for a running job + hosts: undercloud + tags: + - standalone + - undercloud + tasks: + - name: Set branch for building containers check jobs + set_fact: + ci_branch: "{{ job.zuul.branch | regex_replace('(stable|cloudsig)/', '') }}" + cacheable: true + when: job.zuul is defined + + - name: Set branch for building containers branchless + set_fact: + ci_branch: "{{ job.branch_override | regex_replace('(stable|cloudsig)/', '') }}" + cacheable: true + when: job.branch_override is defined + - name: Add the overcloud nodes to the generated inventory hosts: undercloud gather_facts: true tags: - standalone + - undercloud vars: inventory: multinode roles: @@ -15,6 +34,7 @@ - undercloud-setup tags: - standalone + - undercloud - name: Run DLRN gate role and install repo hosts: undercloud @@ -26,14 +46,59 @@ tags: - build -- name: Deploy Standalone +- name: Build containers for content provider job hosts: undercloud tasks: - - include_role: + - name: Build containers for CentOS 8 + include_role: name: standalone tasks_from: containers apply: tags: - standalone + when: ansible_distribution_major_version is version('8', '>=') + + - name: Build containers for CentOS 7 + when: ansible_distribution_major_version is version('8', '<') + block: + + - name: Include pre tasks from build-containers role + vars: + buildcontainers_venv: false + include_role: + name: build-containers + tasks_from: pre + + - name: Check for gating repo + stat: + path: "/etc/yum.repos.d/gating.repo" + register: new_repo + + - name: Set proper repos + set_fact: + buildcontainers_rpm_setup_config: >- + http://{{ ansible_default_ipv4.address }}/delorean.repo, + http://{{ ansible_default_ipv4.address }}/delorean-current.repo, + {% if new_repo.stat.exists %} + http://{{ ansible_default_ipv4.address }}/gating.repo, + {% endif %} + {% if release in ['queens'] %} + http://{{ ansible_default_ipv4.address }}/quickstart-centos-ceph-luminous.repo, + http://{{ ansible_default_ipv4.address }}/quickstart-centos-extras.repo, + http://{{ ansible_default_ipv4.address }}/quickstart-centos-opstools.repo, + http://{{ ansible_default_ipv4.address }}/quickstart-centos-updates.repo, + http://{{ ansible_default_ipv4.address }}/quickstart-centos7-rt.repo, + {% else %} + http://{{ ansible_default_ipv4.address }}/delorean-{{ ci_branch }}-build-deps.repo, + {% endif %} + http://{{ ansible_default_ipv4.address }}/quickstart-centos-qemu.repo, + http://{{ ansible_default_ipv4.address }}/delorean-{{ ci_branch }}-deps.repo + + - name: Build containers for provider job + vars: + buildcontainers_venv: false + include_role: + name: build-containers tags: - standalone + - undercloud diff --git a/roles/extras-common/defaults/main.yml b/roles/extras-common/defaults/main.yml index d58f1d4..6e5d43d 100644 --- a/roles/extras-common/defaults/main.yml +++ b/roles/extras-common/defaults/main.yml @@ -77,7 +77,12 @@ rhel_containers: >- {%- else -%} false {%- endif -%} -additional_insecure_registry: false +additional_insecure_registry: >- + {% if job.registry_ip_address_branch is defined and release in ['queens'] -%} + true + {%- else -%} + false + {%- endif -%} deployed_server: false overcloud_templates_path: /usr/share/openstack-tripleo-heat-templates enable_tls_everywhere: false diff --git a/roles/overcloud-prep-containers/templates/overcloud-prep-containers.sh.j2 b/roles/overcloud-prep-containers/templates/overcloud-prep-containers.sh.j2 index e542cb3..abff75b 100644 --- a/roles/overcloud-prep-containers/templates/overcloud-prep-containers.sh.j2 +++ b/roles/overcloud-prep-containers/templates/overcloud-prep-containers.sh.j2 @@ -15,6 +15,17 @@ set -eux ## * Add an additional insecure registry if needed ## :: {% if additional_insecure_registry|bool %} +{% if job.registry_ip_address_branch is defined %} +if egrep -q "^INSECURE_REGISTRY=.*{{ job.registry_ip_address_branch[release] }}:{{ local_registry_port }}.*" /etc/sysconfig/docker; then + echo "/etc/sysconfig/docker contains the correct settings" +else + echo "updating /etc/sysconfig/docker for internal registry" + sudo sed -i \ + -e "s/^INSECURE_REGISTRY=\"\(.*\)\"/INSECURE_REGISTRY=\"\1 --insecure-registry {{ job.registry_ip_address_branch[release] }}:{{ local_registry_port }}\"/g" \ + /etc/sysconfig/docker + sudo systemctl restart docker +fi +{% else %} if egrep -q "^INSECURE_REGISTRY=.*{{docker_registry_host}}.*" /etc/sysconfig/docker; then echo "/etc/sysconfig/docker contains the correct settings" else @@ -23,6 +34,7 @@ else sudo systemctl restart docker fi {% endif %} +{% endif %} PREPARE_ARGS=${PREPARE_ARGS:-"{{ prepare_service_env_args }}"} diff --git a/roles/undercloud-deploy/templates/containers-prepare-parameter.yaml.j2 b/roles/undercloud-deploy/templates/containers-prepare-parameter.yaml.j2 index 4734b8f..37e84d6 100644 --- a/roles/undercloud-deploy/templates/containers-prepare-parameter.yaml.j2 +++ b/roles/undercloud-deploy/templates/containers-prepare-parameter.yaml.j2 @@ -3,6 +3,8 @@ parameter_defaults: - {{ local_docker_registry_host }}:8787 {% if job.consumer_job | default(false) | bool %} - {{ job.registry_ip_address_branch[release] }}:{{ local_registry_port }} +{% else %} + - docker.io {% endif %} {% if undercloud_docker_registry_mirror is defined and undercloud_docker_registry_mirror %} DockerRegistryMirror: {{ undercloud_docker_registry_mirror }}