From b0359e37dff7d3207627cfa39f28c167a81426b5 Mon Sep 17 00:00:00 2001 From: Mark Goddard <mark@stackhpc.com> Date: Tue, 25 Feb 2020 16:24:28 +0000 Subject: [PATCH] CentOS 8: Add seed and overcloud CI jobs, drop CentOS 7 jobs CentOS 8 removes interfaces from their bridge during ifdown, and removes the bridge if there are no interfaces left. When Kayobe bounces veth links plugged into the bridge, it causes the bridge which has the IP we are using for SSH to be removed. Use a dummy interface in CI to avoid this problem. Kolla-ansible has dropped all CentOS 7 jobs on master now, and prechecks only allow CentOS 7 hosts. Drop all CentOS 7 jobs. We will have to run without upgrade jobs in place until Train supports CentOS 8. Depends-On: https://review.opendev.org/695881 Change-Id: I7c1a885b36445e33d4db1b1c8533db28a644b4a1 Story: 2006574 Task: 38870 --- ansible/baremetal-compute-inspect.yml | 2 +- .../kayobe-overcloud-base/overrides.yml.j2 | 7 +++++++ playbooks/kayobe-overcloud-base/pre.yml | 8 ++++++++ playbooks/kayobe-seed-base/overrides.yml.j2 | 7 +++++++ playbooks/kayobe-seed-base/pre.yml | 8 ++++++++ zuul.d/jobs.yaml | 16 +++++++-------- zuul.d/nodesets.yaml | 6 ++++++ zuul.d/project.yaml | 20 +++++++++++-------- 8 files changed, 57 insertions(+), 17 deletions(-) diff --git a/ansible/baremetal-compute-inspect.yml b/ansible/baremetal-compute-inspect.yml index 416f70ae..c6122437 100644 --- a/ansible/baremetal-compute-inspect.yml +++ b/ansible/baremetal-compute-inspect.yml @@ -6,7 +6,7 @@ # We install openstacksdk in a virtualenv on one of the controllers, and delegate to # it when executing the stackhpc.os-ironic-state role. -- name: Ensure dependencies are installed and the virtual environment is activated +- name: Ensure dependencies are installed hosts: controllers[0] gather_facts: true vars: diff --git a/playbooks/kayobe-overcloud-base/overrides.yml.j2 b/playbooks/kayobe-overcloud-base/overrides.yml.j2 index c5f1689b..c6d9ca05 100644 --- a/playbooks/kayobe-overcloud-base/overrides.yml.j2 +++ b/playbooks/kayobe-overcloud-base/overrides.yml.j2 @@ -17,3 +17,10 @@ pip_upper_constraints_file: "/tmp/upper-constraints.txt" # Use the CI infra's PyPI mirror. pip_local_mirror: true pip_index_url: "http://{{ zuul_site_mirror_fqdn }}/pypi/simple" + +# NOTE(mgoddard): CentOS 8 removes interfaces from their bridge during ifdown, +# and removes the bridge if there are no interfaces left. When Kayobe bounces +# veth links plugged into the bridge, it causes the bridge which has the IP we +# are using for SSH to be removed. Use a dummy interface. +aio_bridge_ports: + - dummy1 diff --git a/playbooks/kayobe-overcloud-base/pre.yml b/playbooks/kayobe-overcloud-base/pre.yml index f6d09b8a..8d471475 100644 --- a/playbooks/kayobe-overcloud-base/pre.yml +++ b/playbooks/kayobe-overcloud-base/pre.yml @@ -19,6 +19,14 @@ - "ip l add breth1 type bridge" - "ip l set breth1 up" - "ip a add 192.168.33.3/24 dev breth1" + # NOTE(mgoddard): CentOS 8 removes interfaces from their bridge during + # ifdown, and removes the bridge if there are no interfaces left. When + # Kayobe bounces veth links plugged into the bridge, it causes the + # bridge which has the IP we are using for SSH to be removed. Use a + # dummy interface. + - "ip l add dummy1 type dummy" + - "ip l set dummy1 up" + - "ip l set dummy1 master breth1" - name: Ensure kayobe is installed shell: diff --git a/playbooks/kayobe-seed-base/overrides.yml.j2 b/playbooks/kayobe-seed-base/overrides.yml.j2 index d0290d1e..b875cd23 100644 --- a/playbooks/kayobe-seed-base/overrides.yml.j2 +++ b/playbooks/kayobe-seed-base/overrides.yml.j2 @@ -21,3 +21,10 @@ overcloud_host_image_workaround_resolv_enabled: false # Use the CI infra's PyPI mirror. pip_local_mirror: true pip_index_url: "http://{{ zuul_site_mirror_fqdn }}/pypi/simple" + +# NOTE(mgoddard): CentOS 8 removes interfaces from their bridge during ifdown, +# and removes the bridge if there are no interfaces left. When Kayobe bounces +# veth links plugged into the bridge, it causes the bridge which has the IP we +# are using for SSH to be removed. Use a dummy interface. +aio_bridge_ports: + - dummy1 diff --git a/playbooks/kayobe-seed-base/pre.yml b/playbooks/kayobe-seed-base/pre.yml index 291fa90a..6e1dbd8e 100644 --- a/playbooks/kayobe-seed-base/pre.yml +++ b/playbooks/kayobe-seed-base/pre.yml @@ -29,6 +29,14 @@ - "ip l add breth1 type bridge" - "ip l set breth1 up" - "ip a add 192.168.33.5/24 dev breth1" + # NOTE(mgoddard): CentOS 8 removes interfaces from their bridge during + # ifdown, and removes the bridge if there are no interfaces left. When + # Kayobe bounces veth links plugged into the bridge, it causes the + # bridge which has the IP we are using for SSH to be removed. Use a + # dummy interface. + - "ip l add dummy1 type dummy" + - "ip l set dummy1 up" + - "ip l set dummy1 master breth1" - name: Ensure kayobe is installed shell: diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 196bef64..3a07b58e 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -92,9 +92,9 @@ timeout: 7200 - job: - name: kayobe-overcloud-centos + name: kayobe-overcloud-centos8 parent: kayobe-overcloud-base - nodeset: kayobe-centos + nodeset: kayobe-centos8 - job: name: kayobe-overcloud-upgrade-base @@ -112,9 +112,9 @@ attempts: 3 - job: - name: kayobe-overcloud-upgrade-centos + name: kayobe-overcloud-upgrade-centos8 parent: kayobe-overcloud-upgrade-base - nodeset: kayobe-centos + nodeset: kayobe-centos8 - job: name: kayobe-seed-base @@ -128,9 +128,9 @@ timeout: 5400 - job: - name: kayobe-seed-centos + name: kayobe-seed-centos8 parent: kayobe-seed-base - nodeset: kayobe-centos + nodeset: kayobe-centos8 - job: name: kayobe-seed-upgrade-base @@ -148,6 +148,6 @@ attempts: 3 - job: - name: kayobe-seed-upgrade-centos + name: kayobe-seed-upgrade-centos8 parent: kayobe-seed-upgrade-base - nodeset: kayobe-centos + nodeset: kayobe-centos8 diff --git a/zuul.d/nodesets.yaml b/zuul.d/nodesets.yaml index 04067f11..96d75a90 100644 --- a/zuul.d/nodesets.yaml +++ b/zuul.d/nodesets.yaml @@ -4,3 +4,9 @@ nodes: - name: primary label: centos-7 + +- nodeset: + name: kayobe-centos8 + nodes: + - name: primary + label: centos-8 diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml index 74d01e5d..5b059ae2 100644 --- a/zuul.d/project.yaml +++ b/zuul.d/project.yaml @@ -10,10 +10,12 @@ - kayobe-tox-ansible-syntax - kayobe-tox-ansible - kayobe-tox-molecule - - kayobe-overcloud-centos - - kayobe-overcloud-upgrade-centos - - kayobe-seed-centos - - kayobe-seed-upgrade-centos + - kayobe-overcloud-centos8 + # TODO(mgoddard): Enable upgrade jobs when CentOS 8 support in Train. + # - kayobe-overcloud-upgrade-centos8 + - kayobe-seed-centos8 + # TODO(mgoddard): Enable upgrade jobs when CentOS 8 support in Train. + # - kayobe-seed-upgrade-centos8 gate: queue: kayobe @@ -21,7 +23,9 @@ - kayobe-tox-ansible-syntax - kayobe-tox-ansible - kayobe-tox-molecule - - kayobe-overcloud-centos - - kayobe-overcloud-upgrade-centos - - kayobe-seed-centos - - kayobe-seed-upgrade-centos + - kayobe-overcloud-centos8 + # TODO(mgoddard): Enable upgrade jobs when CentOS 8 support in Train. + # - kayobe-overcloud-upgrade-centos8 + - kayobe-seed-centos8 + # TODO(mgoddard): Enable upgrade jobs when CentOS 8 support in Train. + # - kayobe-seed-upgrade-centos -- GitLab