From c0da28610dd4e24ef6791f44a8741e405653be86 Mon Sep 17 00:00:00 2001 From: Vladimir Kozhukalov Date: Sat, 27 Apr 2024 00:26:16 -0500 Subject: [PATCH] [WIP] Refactor Openstack image build Change-Id: I7c63ee98125bf0988b3926e40dd916087cbb9476 --- zuul.d/base.yaml | 8 +-- zuul.d/openstack-2023.2.yaml | 46 ++++++------- zuul.d/openstack-2024.1.yaml | 38 +++++----- zuul.d/playbooks/build-openstack-base.yml | 52 ++++++++++++++ zuul.d/playbooks/build-openstack.yml | 84 +++++++++++------------ 5 files changed, 140 insertions(+), 88 deletions(-) create mode 100644 zuul.d/playbooks/build-openstack-base.yml diff --git a/zuul.d/base.yaml b/zuul.d/base.yaml index 428af3be..7d3d78e0 100644 --- a/zuul.d/base.yaml +++ b/zuul.d/base.yaml @@ -56,9 +56,9 @@ - openstack-helm-images-compute-kit-2023-1-ubuntu_jammy - openstack-helm-images-cinder-2023-1-ubuntu_jammy - openstack-helm-images-horizon-2023-1-ubuntu_jammy - templates: - - publish-openstack-docs-pti - - release-notes-jobs-python3 + # templates: + # - publish-openstack-docs-pti + # - release-notes-jobs-python3 # This takes the same structure as other infra jobs. # This dict keyname matter. See also job definition for more explanations. @@ -92,7 +92,7 @@ name: openstack-helm-images-buildset-registry parent: opendev-buildset-registry timeout: 10800 - voting: false + # voting: false # In docker_images: # `context` is the folder in osh-images diff --git a/zuul.d/openstack-2023.2.yaml b/zuul.d/openstack-2023.2.yaml index 135b0541..4ccdb4b0 100644 --- a/zuul.d/openstack-2023.2.yaml +++ b/zuul.d/openstack-2023.2.yaml @@ -11,29 +11,29 @@ # See the License for the specific language governing permissions and # limitations under the License. -- project: - check: - jobs: - - openstack-helm-images-build-openstack-2023-2-ubuntu_jammy - - openstack-helm-images-compute-kit-2023-2-ubuntu_jammy - - openstack-helm-images-cinder-2023-2-ubuntu_jammy - gate: - jobs: - - openstack-helm-images-upload-openstack-2023-2-ubuntu_jammy - - openstack-helm-images-compute-kit-2023-2-ubuntu_jammy - - openstack-helm-images-cinder-2023-2-ubuntu_jammy - promote: - jobs: - - openstack-helm-images-promote-openstack-2023-2-ubuntu_jammy - periodic-weekly: - jobs: - - openstack-helm-images-upload-openstack-2023-2-ubuntu_jammy - - openstack-helm-images-promote-openstack-2023-2-ubuntu_jammy: - dependencies: - - name: openstack-helm-images-compute-kit-2023-2-ubuntu_jammy - - name: openstack-helm-images-cinder-2023-2-ubuntu_jammy - - openstack-helm-images-compute-kit-2023-2-ubuntu_jammy - - openstack-helm-images-cinder-2023-2-ubuntu_jammy +# - project: +# check: +# jobs: +# - openstack-helm-images-build-openstack-2023-2-ubuntu_jammy +# - openstack-helm-images-compute-kit-2023-2-ubuntu_jammy +# - openstack-helm-images-cinder-2023-2-ubuntu_jammy +# gate: +# jobs: +# - openstack-helm-images-upload-openstack-2023-2-ubuntu_jammy +# - openstack-helm-images-compute-kit-2023-2-ubuntu_jammy +# - openstack-helm-images-cinder-2023-2-ubuntu_jammy +# promote: +# jobs: +# - openstack-helm-images-promote-openstack-2023-2-ubuntu_jammy +# periodic-weekly: +# jobs: +# - openstack-helm-images-upload-openstack-2023-2-ubuntu_jammy +# - openstack-helm-images-promote-openstack-2023-2-ubuntu_jammy: +# dependencies: +# - name: openstack-helm-images-compute-kit-2023-2-ubuntu_jammy +# - name: openstack-helm-images-cinder-2023-2-ubuntu_jammy +# - openstack-helm-images-compute-kit-2023-2-ubuntu_jammy +# - openstack-helm-images-cinder-2023-2-ubuntu_jammy - job: name: openstack-helm-images-build-openstack-2023-2-ubuntu_jammy diff --git a/zuul.d/openstack-2024.1.yaml b/zuul.d/openstack-2024.1.yaml index ca684a56..134bc55b 100644 --- a/zuul.d/openstack-2024.1.yaml +++ b/zuul.d/openstack-2024.1.yaml @@ -44,25 +44,25 @@ vars: &build_vars branchname: "stable/2024.1" shortbranchname: "2024.1" - openstack_docker_images: - - requirements - - keystone - - glance - - cinder - - designate - - nova - - ironic - - neutron - - horizon - - heat - - barbican - - placement - - cyborg - - magnum - - masakari - - masakari_monitors - - manila - - tacker + openstack_docker_images: [] + # - requirements + # - keystone + # - glance + # - cinder + # - designate + # - nova + # - ironic + # - neutron + # - horizon + # - heat + # - barbican + # - placement + # - cyborg + # - magnum + # - masakari + # - masakari_monitors + # - manila + # - tacker files: &openstack_files - ^openstack/loci/.* - zuul.d/openstack-2024.1.yaml diff --git a/zuul.d/playbooks/build-openstack-base.yml b/zuul.d/playbooks/build-openstack-base.yml new file mode 100644 index 00000000..4b993404 --- /dev/null +++ b/zuul.d/playbooks/build-openstack-base.yml @@ -0,0 +1,52 @@ +--- +# 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[0] + gather_facts: true + vars_files: + - vars-openstack.yml + + pre_tasks: + - name: Use buildset registry + include_role: + name: use-buildset-registry + + tasks: + - name: Export the right vars + shell: | + source /etc/ci/mirror_info.sh + echo ${NODEPOOL_PYPI_MIRROR} + echo ${NODEPOOL_MIRROR_HOST} + args: + executable: /bin/bash + changed_when: False + register: _zuul_mirrors + + - name: Set fact with the exported variables + set_fact: + pip_index_url: "{{ _zuul_mirrors.stdout_lines[0] | default('https://pypi.python.org/simple/') }}" + pip_trusted_host: "{{ _zuul_mirrors.stdout_lines[1] | default('pypi.python.org') }}" + + - name: Build base image + include_role: + name: build-docker-image + vars: + zuul_work_dir: "{{ zuul.project.src_dir }}" + docker_images: "{{ base_docker_images }}" + + - name: Build requirements image + include_role: + name: build-docker-image + vars: + zuul_work_dir: "src/opendev.org/openstack/loci" + docker_images: "{{ requirements_docker_images }}" diff --git a/zuul.d/playbooks/build-openstack.yml b/zuul.d/playbooks/build-openstack.yml index 29c9d406..21c706d6 100644 --- a/zuul.d/playbooks/build-openstack.yml +++ b/zuul.d/playbooks/build-openstack.yml @@ -22,21 +22,21 @@ include_role: name: use-buildset-registry tasks: - - name: Export the right vars - shell: | - source /etc/ci/mirror_info.sh - echo ${NODEPOOL_OPENSUSE_MIRROR}/ - echo ${NODEPOOL_PYPI_MIRROR} - echo ${NODEPOOL_MIRROR_HOST} - args: - executable: /bin/bash - changed_when: False - register: _zuul_mirrors - - name: Set fact with the exported variables - set_fact: - opensuse_package_mirror: "{{ _zuul_mirrors.stdout_lines[0] }}" - pip_index_url: "{{ _zuul_mirrors.stdout_lines[1] | default('https://pypi.python.org/simple/') }}" - pip_trusted_host: "{{ _zuul_mirrors.stdout_lines[2] | default('pypi.python.org') }}" + # - name: Export the right vars + # shell: | + # source /etc/ci/mirror_info.sh + # echo ${NODEPOOL_OPENSUSE_MIRROR}/ + # echo ${NODEPOOL_PYPI_MIRROR} + # echo ${NODEPOOL_MIRROR_HOST} + # args: + # executable: /bin/bash + # changed_when: False + # register: _zuul_mirrors + # - name: Set fact with the exported variables + # set_fact: + # opensuse_package_mirror: "{{ _zuul_mirrors.stdout_lines[0] }}" + # pip_index_url: "{{ _zuul_mirrors.stdout_lines[1] | default('https://pypi.python.org/simple/') }}" + # pip_trusted_host: "{{ _zuul_mirrors.stdout_lines[2] | default('pypi.python.org') }}" - name: Build base image include_role: @@ -52,34 +52,34 @@ zuul_work_dir: "src/opendev.org/openstack/loci" docker_images: "{{ requirements_docker_images }}" - - name: Build webserver serving wheels - include_role: - name: build-docker-image - vars: - zuul_work_dir: "{{ zuul.project.src_dir }}" - docker_images: - - context: zuul.d/playbooks/ - repository: openstackhelm/loci_wheels + # - name: Build webserver serving wheels + # include_role: + # name: build-docker-image + # vars: + # zuul_work_dir: "{{ zuul.project.src_dir }}" + # docker_images: + # - context: zuul.d/playbooks/ + # repository: openstackhelm/loci_wheels - - name: Allow access to wheels server - iptables: - action: insert - chain: INPUT - in_interface: docker0 - jump: ACCEPT - become: yes + # - name: Allow access to wheels server + # iptables: + # action: insert + # chain: INPUT + # in_interface: docker0 + # jump: ACCEPT + # become: yes - - name: Run http server containing wheels - command: docker run -d -p 0.0.0.0:8080:80 openstackhelm/loci_wheels:latest + # - name: Run http server containing wheels + # command: docker run -d -p 0.0.0.0:8080:80 openstackhelm/loci_wheels:latest - - name: Build project images - include_role: - name: build-docker-image - vars: - zuul_work_dir: "src/opendev.org/openstack/loci" + # - name: Build project images + # include_role: + # name: build-docker-image + # vars: + # zuul_work_dir: "src/opendev.org/openstack/loci" - - name: Return images to zuul - include_tasks: _return-image.yml - loop: "{{ docker_images }}" - loop_control: - loop_var: zj_image + # - name: Return images to zuul + # include_tasks: _return-image.yml + # loop: "{{ docker_images }}" + # loop_control: + # loop_var: zj_image