From 31a3dc6b8327ca2f2ddff89b54a5ec70a6728872 Mon Sep 17 00:00:00 2001 From: Sergiy Markin Date: Tue, 12 Mar 2024 15:19:33 +0000 Subject: [PATCH] Kubeadm based Airskiff gate This PS replaces old airskiff integration gate with new kubeadm based airskiff integration gate. The main goal of this gate is to test new deckhand image and chart together with other Airship components. Change-Id: I4221b7be64e9a7e07964fa817d42c21a3f172db0 --- .zuul.yaml | 76 +++++++++---------- tools/gate/playbooks/docker-image-build.yaml | 4 +- tools/gate/playbooks/docker-image-tag.yaml | 2 +- .../airship-run-script-set/defaults/main.yaml | 23 +++++- .../airship-run-script-set/tasks/main.yaml | 23 +++++- .../airship-run-script/defaults/main.yaml | 23 +++++- .../roles/airship-run-script/tasks/main.yaml | 24 +++++- .../tasks/build-airship-deckhand-image.yaml | 4 +- 8 files changed, 122 insertions(+), 57 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index 454fb947..f82a655c 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -29,8 +29,7 @@ - deckhand-docker-build-gate - deckhand-openstack-tox-pep8-focal - deckhand-openstack-tox-cover-focal - - deckhand-airskiff-deployment-focal - # - deckhand-airskiff-deployment-focal-kubeadm + - deckhand-airskiff-deployment-focal-kubeadm gate: jobs: @@ -44,7 +43,7 @@ - deckhand-docker-build-gate - deckhand-openstack-tox-pep8-focal - deckhand-openstack-tox-cover-focal - - deckhand-airskiff-deployment-focal + post: jobs: @@ -168,7 +167,7 @@ vars: tox_envlist: py38-functional disable_keystone: true - distro: ubuntu_focal + DISTRO: ubuntu_focal irrelevant-files: *irrelevant-files - job: @@ -182,7 +181,7 @@ nodeset: treasuremap-airskiff-1node-ubuntu_focal vars: tox_envlist: py38-functional-dev - distro: ubuntu_focal + DISTRO: ubuntu_focal irrelevant-files: *irrelevant-files @@ -198,7 +197,7 @@ irrelevant-files: *irrelevant-files vars: disable_keystone: true - distro: ubuntu_focal + DISTRO: ubuntu_focal - job: name: deckhand-integration-docker-py38 @@ -211,7 +210,7 @@ vars: tox_envlist: py38-functional disable_keystone: false - distro: ubuntu_focal + DISTRO: ubuntu_focal irrelevant-files: *irrelevant-files - job: @@ -234,29 +233,29 @@ vars: HTK_COMMIT: master -- job: - name: deckhand-airskiff-deployment-focal - voting: true - nodeset: treasuremap-airskiff-1node-ubuntu_focal - description: | - Deploy Memcached using Airskiff and submitted Deckhand changes. - timeout: 9600 - pre-run: - - tools/gate/playbooks/git-config.yaml - - tools/gate/playbooks/airskiff-reduce-site.yaml - run: tools/gate/playbooks/airskiff-deploy.yaml - post-run: tools/gate/playbooks/debug-report.yaml - required-projects: - - airship/treasuremap - vars: - CLONE_DECKHAND: false - DECKHAND_IMAGE_DISTRO: ubuntu_focal - HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.13.2-linux-amd64.tar.gz - HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f - OSH_INFRA_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f - OSH_COMMIT: 2d9457e34ca4200ed631466bd87569b0214c92e7 - distro: ubuntu_focal - irrelevant-files: *irrelevant-files +# - job: +# name: deckhand-airskiff-deployment-focal +# voting: true +# nodeset: treasuremap-airskiff-1node-ubuntu_focal +# description: | +# Deploy Memcached using Airskiff and submitted Deckhand changes. +# timeout: 9600 +# pre-run: +# - tools/gate/playbooks/git-config.yaml +# - tools/gate/playbooks/airskiff-reduce-site.yaml +# run: tools/gate/playbooks/airskiff-deploy.yaml +# post-run: tools/gate/playbooks/debug-report.yaml +# required-projects: +# - airship/treasuremap +# vars: +# CLONE_DECKHAND: false +# DECKHAND_IMAGE_DISTRO: ubuntu_focal +# HELM_ARTIFACT_URL: https://get.helm.sh/helm-v3.13.2-linux-amd64.tar.gz +# HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f +# OSH_INFRA_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f +# OSH_COMMIT: 2d9457e34ca4200ed631466bd87569b0214c92e7 +# DISTRO: ubuntu_focal +# irrelevant-files: *irrelevant-files - job: name: deckhand-airskiff-deployment-focal-kubeadm @@ -270,9 +269,10 @@ HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f OSH_INFRA_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f OSH_COMMIT: 2d9457e34ca4200ed631466bd87569b0214c92e7 - distro: ubuntu_focal CLONE_DECKHAND: false - DECKHAND_IMAGE_DISTRO: ubuntu_focal + DISTRO: ubuntu_focal + DOCKER_REGISTRY: localhost:5000 + MAKE_DECKHAND_IMAGES: true gate_scripts_relative_path: ../../airship/treasuremap gate_scripts: - ./tools/deployment/airskiff/developer/000-prepare-k8s.sh @@ -280,17 +280,13 @@ - ./tools/deployment/airskiff/developer/000-clone-dependencies.sh - ./tools/deployment/airskiff/developer/020-setup-client.sh - ./tools/deployment/airskiff/developer/015-make-all-charts.sh + - ./tools/deployment/airskiff/developer/017-make-all-images.sh - ./tools/deployment/airskiff/developer/025-start-artifactory.sh - ./tools/deployment/airskiff/developer/026-reduce-site.sh - - ./tools/deployment/airskiff/common/sleep.sh - # TODO - # in treasuremap we need to create make local images script that will build - # local version of the image in order to be used instead of upstream image - ./tools/deployment/airskiff/developer/030-armada-bootstrap.sh - ./tools/deployment/airskiff/developer/100-deploy-osh.sh - ./tools/deployment/airskiff/common/os-env.sh - ./tools/gate/wait-for-shipyard.sh - - ./tools/deployment/airskiff/common/sleep.sh irrelevant-files: *irrelevant-files - job: @@ -307,7 +303,7 @@ - ^setup.cfg$ vars: publish: false - distro: ubuntu_focal + DISTRO: ubuntu_focal tags: dynamic: patch_set: true @@ -326,7 +322,7 @@ irrelevant-files: *non-code-files-template vars: publish: true - distro: ubuntu_focal + DISTRO: ubuntu_focal tags: dynamic: branch: true @@ -349,7 +345,7 @@ secrets: - airship_deckhand_quay_creds vars: - distro: ubuntu_focal + DISTRO: ubuntu_focal - secret: diff --git a/tools/gate/playbooks/docker-image-build.yaml b/tools/gate/playbooks/docker-image-build.yaml index e075c6a4..f06db57e 100644 --- a/tools/gate/playbooks/docker-image-build.yaml +++ b/tools/gate/playbooks/docker-image-build.yaml @@ -70,7 +70,7 @@ target: images params: IMAGE_TAG: "{{ item }}" - DISTRO: "{{ distro }}" + DISTRO: "{{ DISTRO }}" with_items: "{{ image_tags.stdout_lines }}" - shell: "docker images" @@ -100,7 +100,7 @@ IMAGE_TAG: "{{ item }}" COMMIT: "{{ zuul.newrev | default('') }}" PUSH_IMAGE: "true" - DISTRO: "{{ distro }}" + DISTRO: "{{ DISTRO }}" with_items: "{{ image_tags.stdout_lines }}" - shell: "docker images" diff --git a/tools/gate/playbooks/docker-image-tag.yaml b/tools/gate/playbooks/docker-image-tag.yaml index f0375e1d..c8f1c8d3 100644 --- a/tools/gate/playbooks/docker-image-tag.yaml +++ b/tools/gate/playbooks/docker-image-tag.yaml @@ -30,7 +30,7 @@ - block: - name: Get id of the distro specific container image currently tagged as latest uri: - url: "{{ quay_repo_api_url }}/{{ org }}/{{ image }}/tag/?specificTag={{ latest_tag }}-{{ Distro }}&limit=1" + url: "{{ quay_repo_api_url }}/{{ org }}/{{ image }}/tag/?specificTag={{ latest_tag }}-{{ DISTRO }}&limit=1" return_content: yes register: response_1 - name: Debug response diff --git a/tools/gate/roles/airship-run-script-set/defaults/main.yaml b/tools/gate/roles/airship-run-script-set/defaults/main.yaml index d160971b..725f4b23 100644 --- a/tools/gate/roles/airship-run-script-set/defaults/main.yaml +++ b/tools/gate/roles/airship-run-script-set/defaults/main.yaml @@ -24,7 +24,24 @@ HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f OSH_INFRA_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f OSH_COMMIT: 2d9457e34ca4200ed631466bd87569b0214c92e7 COREDNS_VERSION: v1.11.1 -distro: ubuntu_focal -CLONE_DECKHAND: false -DECKHAND_IMAGE_DISTRO: ubuntu_focal +DISTRO: ubuntu_focal +DOCKER_REGISTRY: quay.io +MAKE_ARMADA_IMAGES: false +MAKE_DECKHAND_IMAGES: false +MAKE_SHIPYARD_IMAGES: false +MAKE_PORTHOLE_IMAGES: false +MAKE_PROMENADE_IMAGES: false +CLONE_ARMADA: true +CLONE_DECKHAND: true +CLONE_SHIPYARD: true +CLONE_PORTHOLE: true +CLONE_PROMENADE: true +CLONE_MAAS: true +CLONE_OSH: true +MAKE_ARMADA_IMAGES: false +MAKE_DECKHAND_IMAGES: false +MAKE_SHIPYARD_IMAGES: false +MAKE_DECKHAND_IMAGES: false +MAKE_PORTHOLE_IMAGES: false +MAKE_PROMENADE_IMAGES: false ... diff --git a/tools/gate/roles/airship-run-script-set/tasks/main.yaml b/tools/gate/roles/airship-run-script-set/tasks/main.yaml index 0fea2a19..4129a2c1 100644 --- a/tools/gate/roles/airship-run-script-set/tasks/main.yaml +++ b/tools/gate/roles/airship-run-script-set/tasks/main.yaml @@ -40,9 +40,26 @@ OSH_INFRA_COMMIT: "{{ OSH_INFRA_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}" OSH_COMMIT: "{{ OSH_COMMIT | default('2d9457e34ca4200ed631466bd87569b0214c92e7') }}" COREDNS_VERSION: "{{ coredns_version | default('v1.11.1') }}" - distro: "{{ coredns_version | default('ubuntu_focal') }}" - CLONE_DECKHAND: "{{ coredns_version | default('false') }}" - DECKHAND_IMAGE_DISTRO: "{{ coredns_version | default('ubuntu_focal') }}" + DISTRO: "{{ DISTRO | default('ubuntu_focal') }}" + DOCKER_REGISTRY: "{{ DOCKER_REGISTRY | default('quay.io') }}" + MAKE_ARMADA_IMAGES: "{{ MAKE_ARMADA_IMAGES | default('false') }}" + MAKE_DECKHAND_IMAGES: "{{ MAKE_DECKHAND_IMAGES | default('false') }}" + MAKE_SHIPYARD_IMAGES: "{{ MAKE_SHIPYARD_IMAGES | default('false') }}" + MAKE_PORTHOLE_IMAGES: "{{ MAKE_PORTHOLE_IMAGES | default('false') }}" + MAKE_PROMENADE_IMAGES: "{{ MAKE_PROMENADE_IMAGES | default('false') }}" + CLONE_ARMADA: "{{ CLONE_ARMADA | default('true') }}" + CLONE_DECKHAND: "{{ CLONE_DECKHAND | default('true') }}" + CLONE_SHIPYARD: "{{ CLONE_SHIPYARD | default('true') }}" + CLONE_PORTHOLE: "{{ CLONE_PORTHOLE | default('true') }}" + CLONE_PROMENADE: "{{ CLONE_PROMENADE | default('true') }}" + CLONE_MAAS: "{{ CLONE_MAAS | default('true') }}" + CLONE_OSH: "{{ CLONE_OSH | default('true') }}" + MAKE_ARMADA_IMAGES: "{{ MAKE_ARMADA_IMAGES | default('false') }}" + MAKE_DECKHAND_IMAGES: "{{ MAKE_DECKHAND_IMAGES | default('false') }}" + MAKE_SHIPYARD_IMAGES: "{{ MAKE_SHIPYARD_IMAGES | default('false') }}" + MAKE_DECKHAND_IMAGES: "{{ MAKE_DECKHAND_IMAGES | default('false') }}" + MAKE_PORTHOLE_IMAGES: "{{ MAKE_PORTHOLE_IMAGES | default('false') }}" + MAKE_PROMENADE_IMAGES: "{{ MAKE_PROMENADE_IMAGES | default('false') }}" # NOTE(aostapenko) using bigger than async_status timeout due to async_status issue with # not recognizing timed out jobs: https://github.com/ansible/ansible/issues/25637 async: 3600 diff --git a/tools/gate/roles/airship-run-script/defaults/main.yaml b/tools/gate/roles/airship-run-script/defaults/main.yaml index d160971b..725f4b23 100644 --- a/tools/gate/roles/airship-run-script/defaults/main.yaml +++ b/tools/gate/roles/airship-run-script/defaults/main.yaml @@ -24,7 +24,24 @@ HTK_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f OSH_INFRA_COMMIT: cfff60ec10a6c386f38db79bb9f59a552c2b032f OSH_COMMIT: 2d9457e34ca4200ed631466bd87569b0214c92e7 COREDNS_VERSION: v1.11.1 -distro: ubuntu_focal -CLONE_DECKHAND: false -DECKHAND_IMAGE_DISTRO: ubuntu_focal +DISTRO: ubuntu_focal +DOCKER_REGISTRY: quay.io +MAKE_ARMADA_IMAGES: false +MAKE_DECKHAND_IMAGES: false +MAKE_SHIPYARD_IMAGES: false +MAKE_PORTHOLE_IMAGES: false +MAKE_PROMENADE_IMAGES: false +CLONE_ARMADA: true +CLONE_DECKHAND: true +CLONE_SHIPYARD: true +CLONE_PORTHOLE: true +CLONE_PROMENADE: true +CLONE_MAAS: true +CLONE_OSH: true +MAKE_ARMADA_IMAGES: false +MAKE_DECKHAND_IMAGES: false +MAKE_SHIPYARD_IMAGES: false +MAKE_DECKHAND_IMAGES: false +MAKE_PORTHOLE_IMAGES: false +MAKE_PROMENADE_IMAGES: false ... diff --git a/tools/gate/roles/airship-run-script/tasks/main.yaml b/tools/gate/roles/airship-run-script/tasks/main.yaml index ca53759b..006106b3 100644 --- a/tools/gate/roles/airship-run-script/tasks/main.yaml +++ b/tools/gate/roles/airship-run-script/tasks/main.yaml @@ -37,7 +37,25 @@ OSH_INFRA_COMMIT: "{{ OSH_INFRA_COMMIT | default('cfff60ec10a6c386f38db79bb9f59a552c2b032f') }}" OSH_COMMIT: "{{ OSH_COMMIT | default('2d9457e34ca4200ed631466bd87569b0214c92e7') }}" COREDNS_VERSION: "{{ coredns_version | default('v1.11.1') }}" - distro: "{{ coredns_version | default('ubuntu_focal') }}" - CLONE_DECKHAND: "{{ coredns_version | default('false') }}" - DECKHAND_IMAGE_DISTRO: "{{ coredns_version | default('ubuntu_focal') }}" + DISTRO: "{{ DISTRO | default('ubuntu_focal') }}" + DOCKER_REGISTRY: "{{ DOCKER_REGISTRY | default('quay.io') }}" + MAKE_ARMADA_IMAGES: "{{ MAKE_ARMADA_IMAGES | default('false') }}" + MAKE_DECKHAND_IMAGES: "{{ MAKE_DECKHAND_IMAGES | default('false') }}" + MAKE_SHIPYARD_IMAGES: "{{ MAKE_SHIPYARD_IMAGES | default('false') }}" + MAKE_PORTHOLE_IMAGES: "{{ MAKE_PORTHOLE_IMAGES | default('false') }}" + MAKE_PROMENADE_IMAGES: "{{ MAKE_PROMENADE_IMAGES | default('false') }}" + CLONE_ARMADA: "{{ CLONE_ARMADA | default('true') }}" + CLONE_DECKHAND: "{{ CLONE_DECKHAND | default('true') }}" + CLONE_SHIPYARD: "{{ CLONE_SHIPYARD | default('true') }}" + CLONE_PORTHOLE: "{{ CLONE_PORTHOLE | default('true') }}" + CLONE_PROMENADE: "{{ CLONE_PROMENADE | default('true') }}" + CLONE_MAAS: "{{ CLONE_MAAS | default('true') }}" + CLONE_OSH: "{{ CLONE_OSH | default('true') }}" + MAKE_ARMADA_IMAGES: "{{ MAKE_ARMADA_IMAGES | default('false') }}" + MAKE_DECKHAND_IMAGES: "{{ MAKE_DECKHAND_IMAGES | default('false') }}" + MAKE_SHIPYARD_IMAGES: "{{ MAKE_SHIPYARD_IMAGES | default('false') }}" + MAKE_DECKHAND_IMAGES: "{{ MAKE_DECKHAND_IMAGES | default('false') }}" + MAKE_PORTHOLE_IMAGES: "{{ MAKE_PORTHOLE_IMAGES | default('false') }}" + MAKE_PROMENADE_IMAGES: "{{ MAKE_PROMENADE_IMAGES | default('false') }}" + ... diff --git a/tools/gate/roles/build-images/tasks/build-airship-deckhand-image.yaml b/tools/gate/roles/build-images/tasks/build-airship-deckhand-image.yaml index 388546d8..4ea099d6 100644 --- a/tools/gate/roles/build-images/tasks/build-airship-deckhand-image.yaml +++ b/tools/gate/roles/build-images/tasks/build-airship-deckhand-image.yaml @@ -38,7 +38,7 @@ --force-rm \ --tag deckhand \ --label zuul \ - --file images/deckhand/Dockerfile.{{ distro }} \ + --file images/deckhand/Dockerfile.{{ DISTRO }} \ {% if zuul_site_mirror_fqdn is defined and zuul_site_mirror_fqdn %} --build-arg UBUNTU_URL="http://{{ zuul_site_mirror_fqdn }}/ubuntu/" \ --build-arg ALLOW_UNAUTHENTICATED="true" \ @@ -60,7 +60,7 @@ --force-rm \ --tag deckhand \ --label zuul \ - --file images/deckhand/Dockerfile.{{ distro }} \ + --file images/deckhand/Dockerfile.{{ DISTRO }} \ --build-arg HTTP_PROXY="{{ proxy.http }}" \ --build-arg HTTPS_PROXY="{{ proxy.https }}" \ --build-arg NO_PROXY="{{ proxy.noproxy }}" \