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..d3cf5b14 100644 --- a/zuul.d/openstack-2024.1.yaml +++ b/zuul.d/openstack-2024.1.yaml @@ -16,6 +16,7 @@ check: jobs: - openstack-helm-images-build-openstack-2024-1-ubuntu_jammy + - openstack-helm-images-build-openstack-base-2024-1-ubuntu_jammy # - openstack-helm-images-compute-kit-2024-1-ubuntu_jammy # - openstack-helm-images-cinder-2024-1-ubuntu_jammy gate: @@ -37,32 +38,43 @@ # - openstack-helm-images-compute-kit-2024-1-ubuntu_jammy # - openstack-helm-images-cinder-2024-1-ubuntu_jammy +- job: + name: openstack-helm-images-build-openstack-base-2024-1-ubuntu_jammy + description: Build base 2024.1 Jammy images + parent: openstack-helm-images-build-openstack-ubuntu_jammy + vars: + branchname: "stable/2024.1" + shortbranchname: "2024.1" + run: + - zuul.d/playbooks/build-openstack-base.yml + - job: name: openstack-helm-images-build-openstack-2024-1-ubuntu_jammy description: Build 2024.1 Jammy images parent: openstack-helm-images-build-openstack-ubuntu_jammy + dependencies: + - name: openstack-helm-images-build-openstack-base-2024-1-ubuntu_jammy 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 + # - 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/Dockerfile b/zuul.d/playbooks/Dockerfile index 109bef2b..61cbd0a1 100644 --- a/zuul.d/playbooks/Dockerfile +++ b/zuul.d/playbooks/Dockerfile @@ -1,5 +1,7 @@ FROM nginx:alpine +ARG COPY_WHEELS_FROM="openstackhelm/requirements:latest" + # Previously built requirements image -COPY --from=openstackhelm/requirements:latest / /usr/share/nginx/html +COPY --from=${COPY_WHEELS_FROM} / /usr/share/nginx/html RUN cd /usr/share/nginx/html; tar c -f wheels.tar.gz -z *.whl *.txt; rm -f *.whl diff --git a/zuul.d/playbooks/build-openstack-base.yml b/zuul.d/playbooks/build-openstack-base.yml new file mode 100644 index 00000000..d000bdf0 --- /dev/null +++ b/zuul.d/playbooks/build-openstack-base.yml @@ -0,0 +1,35 @@ +--- +# 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: Build base image + include_role: + name: build-docker-image + vars: + zuul_work_dir: "{{ zuul.project.src_dir }}" + docker_images: "{{ base_docker_images }}" + + - name: Build base 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..07d25a62 100644 --- a/zuul.d/playbooks/build-openstack.yml +++ b/zuul.d/playbooks/build-openstack.yml @@ -22,44 +22,19 @@ include_role: name: use-buildset-registry tasks: - - name: Export the right vars + - name: Pull base images from buildset registry 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: - name: build-docker-image - vars: - zuul_work_dir: "{{ zuul.project.src_dir }}" - docker_images: "{{ base_docker_images }}" - - - name: Build base requirements image - include_role: - name: build-docker-image - vars: - zuul_work_dir: "src/opendev.org/openstack/loci" - docker_images: "{{ requirements_docker_images }}" + docker pull "{{ buildset_registry_alias }}:{{ buildset_registry.port }}/{{ base_repository }}:{{ shortbranchname }}-{{ distroname }}" + docker tag "{{ buildset_registry_alias }}:{{ buildset_registry.port }}/{{ base_repository }}:{{ shortbranchname }}-{{ distroname }}" "{{ base_repository }}:{{ shortbranchname }}-{{ distroname }}" + docker pull "{{ buildset_registry_alias }}:{{ buildset_registry.port }}/{{ requirements_repository }}:{{ shortbranchname }}-{{ distroname }}" + docker tag "{{ buildset_registry_alias }}:{{ buildset_registry.port }}/{{ requirements_repository }}:{{ shortbranchname }}-{{ distroname }}" "{{ requirements_repository }}:{{ shortbranchname }}-{{ distroname }}" - 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 + docker_images: "{{ serve_requirements_images }}" - name: Allow access to wheels server iptables: @@ -70,7 +45,7 @@ become: yes - name: Run http server containing wheels - command: docker run -d -p 0.0.0.0:8080:80 openstackhelm/loci_wheels:latest + command: docker run -d -p 0.0.0.0:8080:80 "{{ serve_requirements_repository }}:{{ shortbranchname }}-{{ distroname }}" - name: Build project images include_role: diff --git a/zuul.d/playbooks/vars-openstack.yml b/zuul.d/playbooks/vars-openstack.yml index b8bd0760..85427772 100644 --- a/zuul.d/playbooks/vars-openstack.yml +++ b/zuul.d/playbooks/vars-openstack.yml @@ -16,6 +16,8 @@ python3: "yes" #172.17.0.1 is default docker0 ip. wheels_location: "http://172.17.0.1:8080/wheels.tar.gz" base_repository: "base" +requirements_repository: "requirements" +serve_requirements_repository: "serve_requirements" base_docker_images: - context: "zuul.d/playbooks/" @@ -25,33 +27,33 @@ base_docker_images: - "FROM='{{ from }}'" - "CEPH_REPO='{{ ceph_repo }}'" - "CEPH_KEY='{{ ceph_key }}'" + tags: &imagetag + - "{{ shortbranchname }}-{{ distroname }}" + - "{{ shortbranchname }}-{{ distroname }}-{{ currentdate }}" requirements_docker_images: - context: "." - repository: openstackhelm/requirements + repository: "{{ requirements_repository }}" build_args: - - "FROM='{{ base_repository }}'" + - "FROM='{{ base_repository }}:{{ shortbranchname }}-{{ distroname }}'" - "PROJECT='requirements'" - "PROJECT_REF={{ branchname }}" - "KEEP_ALL_WHEELS=yes" + tags: *imagetag + +serve_requirements_images: + - context: "zuul.d/playbooks/" + repository: "{{ serve_requirements_repository }}" + build_args: + - "COPY_WHEELS_FROM='{{ requirements_repository }}:{{ shortbranchname }}-{{ distroname }}'" + tags: *imagetag openstack_docker_images_dict: - requirements: - context: "." - repository: openstackhelm/requirements - build_args: - - "FROM='{{ base_repository }}'" - - "PROJECT='requirements'" - - "PROJECT_REF={{ branchname }}" - - "KEEP_ALL_WHEELS=yes" - tags: &imagetag - - "{{ shortbranchname }}-{{ distroname }}" - - "{{ shortbranchname }}-{{ distroname }}-{{ currentdate }}" # Frozen tag keystone: context: "." repository: openstackhelm/keystone build_args: - - "FROM='{{ base_repository }}'" + - "FROM='{{ base_repository }}:{{ shortbranchname }}-{{ distroname }}'" - "PROJECT='keystone'" - "PROJECT_REF={{ branchname }}" - "PROFILES='fluent apache ldap {{ shortbranchname }}'"