--- # Copyright 2018, SUSE LINUX GmbH. # # 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. - project: check: jobs: - openstack-helm-images-build-openstack-loci-train-ubuntu_bionic - openstack-helm-images-build-openstack-loci-ussuri-ubuntu_bionic - openstack-helm-images-build-openstack-loci-victoria-ubuntu_focal - openstack-helm-images-build-openstack-loci-wallaby-ubuntu_focal - openstack-helm-images-build-openstack-loci-master-ubuntu_focal gate: jobs: - openstack-helm-images-upload-openstack-loci-train-ubuntu_bionic - openstack-helm-images-upload-openstack-loci-ussuri-ubuntu_bionic - openstack-helm-images-upload-openstack-loci-victoria-ubuntu_focal - openstack-helm-images-upload-openstack-loci-wallaby-ubuntu_focal - openstack-helm-images-upload-openstack-loci-master-ubuntu_focal promote: jobs: - openstack-helm-images-promote-openstack-loci-train-ubuntu_bionic - openstack-helm-images-promote-openstack-loci-ussuri-ubuntu_bionic - openstack-helm-images-promote-openstack-loci-victoria-ubuntu_focal - openstack-helm-images-promote-openstack-loci-wallaby-ubuntu_focal - openstack-helm-images-promote-openstack-loci-master-ubuntu_focal periodic: jobs: - openstack-helm-images-upload-openstack-loci-train-ubuntu_bionic - openstack-helm-images-promote-openstack-loci-train-ubuntu_bionic: dependencies: - name: openstack-helm-images-compute-kit-train-ubuntu_bionic - name: openstack-helm-images-cinder-train-ubuntu_bionic - name: openstack-helm-images-horizon-train-ubuntu_bionic - openstack-helm-images-upload-openstack-loci-ussuri-ubuntu_bionic - openstack-helm-images-promote-openstack-loci-ussuri-ubuntu_bionic: dependencies: - name: openstack-helm-images-compute-kit-ussuri-ubuntu_bionic - name: openstack-helm-images-cinder-ussuri-ubuntu_bionic - openstack-helm-images-upload-openstack-loci-victoria-ubuntu_focal - openstack-helm-images-promote-openstack-loci-victoria-ubuntu_focal: dependencies: - name: openstack-helm-images-compute-kit-victoria-ubuntu_focal - name: openstack-helm-images-cinder-victoria-ubuntu_focal - openstack-helm-images-upload-openstack-loci-wallaby-ubuntu_focal - openstack-helm-images-promote-openstack-loci-wallaby-ubuntu_focal: dependencies: - name: openstack-helm-images-compute-kit-wallaby-ubuntu_focal - name: openstack-helm-images-cinder-wallaby-ubuntu_focal - openstack-helm-images-upload-openstack-loci-master-ubuntu_focal - openstack-helm-images-promote-openstack-loci-master-ubuntu_focal: dependencies: - name: openstack-helm-images-upload-openstack-loci-master-ubuntu_focal ################ # Abstract job # ################ # This is a sample job, for which it is easy to inherit. # It gives an example structure, should something be edited/copy pasted. # At each release, copy the whole blob, and edit the variables appropriately. - job: name: openstack-helm-images-build-openstack-loci-master # Inherits secrets, descriptions, and details for the building parent: openstack-helm-images-build abstract: true timeout: 5400 # This enables depends-on to work by using local repos required-projects: - openstack/loci # TODO(evrardjp): Now that infra has buildset registry # We should move to it. # In the meantime, keep our pseudo "buildset" registry in here # through prep_docker_images. # Fork of standard playbook to build prep images first (reusing # role) with a different zuul_role_dir, publish wheels on http server. # zuul_work_dir: "src/opendev.org/openstack/loci" run: zuul.d/playbooks/build-loci.yml vars: &build_master_images currentdate: "{{ now(utc=True,fmt='%Y%m%d') }}" branchname: "master" shortbranchname: "master" distroname: "" from: "" python3: "yes" #172.17.0.1 is default docker0 ip. wheels_location: "http://172.17.0.1:8080/wheels.tar.gz" # the macros named *_project apply project wide. Be careful # if editing those. base_repository: "base" ceph_repo: "" ceph_key: "" requirements_pip_packages: "git+https://opendev.org/openstack/heat-dashboard@{{ branchname }}#egg=heat-dashboard" base_docker_image: - &base_image context: "zuul.d/playbooks/" dockerfile: "Dockerfile_base" repository: '{{ base_repository }}' build_args: - "FROM='{{ from }}'" - "CEPH_REPO='{{ ceph_repo }}'" - "CEPH_KEY='{{ ceph_key }}'" prep_docker_images: - &prep_requirements_project context: "." repository: openstackhelm/requirements build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='requirements'" - "PROJECT_REF={{ branchname }}" - "PIP_PACKAGES='{{ requirements_pip_packages }}'" - "KEEP_ALL_WHEELS=yes" docker_images: &project_images - &requirements_project <<: *prep_requirements_project tags: &imagetag - "{{ shortbranchname }}-{{ distroname }}" - "{{ shortbranchname }}-{{ distroname }}-{{ currentdate }}" # Frozen tag - &keystone_project context: "." repository: openstackhelm/keystone build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='keystone'" - "PROJECT_REF={{ branchname }}" - "PROFILES='fluent apache ldap {{ shortbranchname }}'" - "PIP_PACKAGES='python-openstackclient'" - "WHEELS='{{ wheels_location }}'" - "KEEP_ALL_WHEELS=yes" tags: *imagetag - &heat_project context: "." repository: openstackhelm/heat build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='heat'" - "PROJECT_REF={{ branchname }}" - "PROFILES='fluent apache'" - "WHEELS='{{ wheels_location }}'" - "DIST_PACKAGES='curl'" - "KEEP_ALL_WHEELS=yes" tags: *imagetag - &barbican_project context: "." repository: openstackhelm/barbican build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='barbican'" - "PROJECT_REF={{ branchname }}" - "PROFILES='fluent'" - "WHEELS='{{ wheels_location }}'" - "KEEP_ALL_WHEELS=yes" tags: *imagetag - &glance_project context: "." repository: openstackhelm/glance build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='glance'" - "PROJECT_REF={{ branchname }}" - "PROFILES='fluent ceph'" - "PIP_PACKAGES='python-swiftclient'" - "WHEELS='{{ wheels_location }}'" - "KEEP_ALL_WHEELS=yes" tags: *imagetag - &cinder_project context: "." repository: openstackhelm/cinder build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='cinder'" - "PROJECT_REF={{ branchname }}" - "PROFILES='fluent lvm ceph qemu apache'" - "PIP_PACKAGES='python-swiftclient'" - "WHEELS='{{ wheels_location }}'" - "KEEP_ALL_WHEELS=yes" tags: *imagetag - &neutron_project context: "." repository: openstackhelm/neutron build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='neutron'" - "PROJECT_REF={{ branchname }}" - "PROFILES='fluent linuxbridge openvswitch apache'" - "PIP_PACKAGES='tap-as-a-service'" - "DIST_PACKAGES='jq ethtool lshw'" - "WHEELS='{{ wheels_location }}'" - "KEEP_ALL_WHEELS=yes" tags: *imagetag - &neutron_sriov_project context: "." repository: openstackhelm/neutron build_args: - "FROM=docker.io/ubuntu:18.04" - "PYTHON3={{ python3 }}" - "PROJECT='neutron'" - "PROJECT_REF={{ branchname }}" - "PROFILES='fluent neutron linuxbridge openvswitch'" - "PIP_PACKAGES='tap-as-a-service'" - "DIST_PACKAGES='ethtool lshw'" - "WHEELS='{{ wheels_location }}'" - "KEEP_ALL_WHEELS=yes" tags: - "{{ shortbranchname }}-18.04-sriov" - "{{ shortbranchname }}-18.04-sriov-{{ currentdate }}" - &nova_project context: "." repository: openstackhelm/nova build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='nova'" - "PROJECT_REF={{ branchname }}" - "PROFILES='fluent ceph linuxbridge openvswitch configdrive qemu apache migration'" - "WHEELS='{{ wheels_location }}'" - "KEEP_ALL_WHEELS=yes" tags: *imagetag - &horizon_project context: "." repository: openstackhelm/horizon build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='horizon'" - "PROJECT_REF={{ branchname }}" - "PROFILES='fluent apache'" - "PIP_PACKAGES='heat-dashboard'" - "WHEELS='{{ wheels_location }}'" - "KEEP_ALL_WHEELS=yes" tags: *imagetag - &senlin_project context: "." repository: openstackhelm/senlin build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='senlin'" - "PROJECT_REF={{ branchname }}" - "PROFILES='fluent'" - "WHEELS='{{ wheels_location }}'" - "KEEP_ALL_WHEELS=yes" tags: *imagetag - &magnum_project context: "." repository: openstackhelm/magnum build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='magnum'" - "PROJECT_REF={{ branchname }}" - "PROFILES='fluent'" - "WHEELS='{{ wheels_location }}'" - "KEEP_ALL_WHEELS=yes" tags: *imagetag - &ironic_project context: "." repository: openstackhelm/ironic build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='ironic'" - "PROJECT_REF={{ branchname }}" - "PROFILES='fluent ipxe ipmi qemu tftp'" - "DIST_PACKAGES='ethtool lshw iproute2'" - "WHEELS='{{ wheels_location }}'" - "KEEP_ALL_WHEELS=yes" tags: *imagetag - &placement_project context: "." repository: openstackhelm/placement build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='placement'" - "PROJECT_REF={{ branchname }}" - "PROFILES='apache'" - "PIP_PACKAGES='httplib2'" - "WHEELS='{{ wheels_location }}'" - "KEEP_ALL_WHEELS=yes" tags: *imagetag - &watcher_project context: "." repository: openstackhelm/watcher build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='watcher'" - "PROJECT_REF={{ branchname }}" - "WHEELS='{{ wheels_location }}'" - "KEEP_ALL_WHEELS=yes" tags: *imagetag - &monasca_api_project context: "." repository: openstackhelm/monasca-api build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='monasca-api'" - "PROJECT_REF={{ branchname }}" - "PROFILES='monasca api'" - "PIP_PACKAGES='influxdb cassandra-driver sqlalchemy'" - "WHEELS='{{ wheels_location }}'" - "KEEP_ALL_WHEELS=yes" tags: *imagetag - &cyborg_project context: "." repository: openstackhelm/cyborg build_args: - "FROM='{{ base_repository }}'" - "PYTHON3={{ python3 }}" - "PROJECT='cyborg'" - "PROJECT_REF={{ branchname }}" - "WHEELS='{{ wheels_location }}'" - "KEEP_ALL_WHEELS=yes" tags: *imagetag files: &loci-files - ^openstack/loci/.* - zuul.d/openstack-loci.yaml # The upload in openstack-helm-images-upload happens as post-run, # so we can inherit from this. The post run is not caring about context, # only repository, and tags. - job: name: openstack-helm-images-upload-openstack-loci-master parent: openstack-helm-images-upload abstract: true # Increase timeout due to many images to build timeout: 5400 required-projects: - openstack/loci run: - zuul.d/playbooks/build-loci.yml - zuul.d/playbooks/upload.yml secrets: name: docker_credentials secret: openstack-helm-dockerhub vars: *build_master_images files: *loci-files # Promote is a run job. Let's not change it. - job: name: openstack-helm-images-promote-openstack-loci-master parent: openstack-helm-images-promote abstract: true vars: *build_master_images files: *loci-files ############# # Real jobs # ############# - job: name: openstack-helm-images-build-openstack-loci-master-ubuntu_focal description: Build LOCI master focal images parent: openstack-helm-images-build-openstack-loci-master vars: &build_master_focal_images currentdate: "{{ now(utc=True,fmt='%Y%m%d') }}" branchname: "master" shortbranchname: "master" distroname: "ubuntu_focal" from: "docker.io/ubuntu:20.04" python3: "yes" #172.17.0.1 is default docker0 ip. wheels_location: "http://172.17.0.1:8080/wheels.tar.gz" base_repository: "base" ceph_repo: "deb https://download.ceph.com/debian-octopus/ focal main" ceph_key: "http://download.ceph.com/keys/release.asc" base_docker_image: - <<: *base_image prep_docker_images: - <<: *prep_requirements_project docker_images: - <<: *requirements_project - <<: *keystone_project - <<: *glance_project - <<: *cinder_project - <<: *nova_project - <<: *neutron_project - <<: *horizon_project - <<: *heat_project - <<: *barbican_project - <<: *placement_project - <<: *monasca_api_project - <<: *watcher_project - <<: *cyborg_project - job: name: openstack-helm-images-upload-openstack-loci-master-ubuntu_focal description: Build and upload LOCI master focal images parent: openstack-helm-images-upload-openstack-loci-master vars: *build_master_focal_images files: *loci-files - job: name: openstack-helm-images-promote-openstack-loci-master-ubuntu_focal parent: openstack-helm-images-promote-openstack-loci-master description: Promote previously published LOCI master focal images vars: *build_master_focal_images files: *loci-files ########### # WALLABY # ########### - job: name: openstack-helm-images-build-openstack-loci-wallaby-ubuntu_focal description: Build LOCI wallaby focal images parent: openstack-helm-images-build-openstack-loci-master vars: &build_wallaby_focal_images currentdate: "{{ now(utc=True,fmt='%Y%m%d') }}" branchname: "stable/wallaby" shortbranchname: "wallaby" distroname: "ubuntu_focal" from: "docker.io/ubuntu:20.04" python3: "yes" wheels_location: "http://172.17.0.1:8080/wheels.tar.gz" base_repository: "base" ceph_repo: "deb https://download.ceph.com/debian-octopus/ focal main" ceph_key: "https://download.ceph.com/keys/release.asc" base_docker_image: - <<: *base_image prep_docker_images: - <<: *prep_requirements_project docker_images: - <<: *requirements_project - <<: *keystone_project - <<: *glance_project - <<: *cinder_project - <<: *nova_project - <<: *ironic_project - <<: *neutron_project - <<: *horizon_project - <<: *heat_project - <<: *barbican_project - <<: *placement_project - <<: *monasca_api_project - <<: *watcher_project - <<: *cyborg_project - job: name: openstack-helm-images-upload-openstack-loci-wallaby-ubuntu_focal parent: openstack-helm-images-upload-openstack-loci-master description: Build and upload LOCI wallaby focal images vars: *build_wallaby_focal_images - job: name: openstack-helm-images-promote-openstack-loci-wallaby-ubuntu_focal parent: openstack-helm-images-promote-openstack-loci-master description: Promote previously published LOCI wallaby focal images vars: *build_wallaby_focal_images ############ # VICTORIA # ############ - job: name: openstack-helm-images-build-openstack-loci-victoria-ubuntu_focal description: Build LOCI victoria focal images parent: openstack-helm-images-build-openstack-loci-master vars: &build_victoria_focal_images currentdate: "{{ now(utc=True,fmt='%Y%m%d') }}" branchname: "stable/victoria" shortbranchname: "victoria" distroname: "ubuntu_focal" from: "docker.io/ubuntu:20.04" python3: "yes" wheels_location: "http://172.17.0.1:8080/wheels.tar.gz" base_repository: "base" ceph_repo: "deb https://download.ceph.com/debian-octopus/ focal main" ceph_key: "https://download.ceph.com/keys/release.asc" base_docker_image: - <<: *base_image prep_docker_images: - <<: *prep_requirements_project docker_images: - <<: *requirements_project - <<: *keystone_project - <<: *glance_project - <<: *cinder_project - <<: *nova_project - <<: *ironic_project - <<: *neutron_project - <<: *horizon_project - <<: *heat_project - <<: *barbican_project - <<: *placement_project - <<: *monasca_api_project - <<: *watcher_project - <<: *cyborg_project - job: name: openstack-helm-images-upload-openstack-loci-victoria-ubuntu_focal parent: openstack-helm-images-upload-openstack-loci-master description: Build and upload LOCI victoria focal images vars: *build_victoria_focal_images - job: name: openstack-helm-images-promote-openstack-loci-victoria-ubuntu_focal parent: openstack-helm-images-promote-openstack-loci-master description: Promote previously published LOCI victoria focal images vars: *build_victoria_focal_images ########## # USSURI # ########## - job: name: openstack-helm-images-build-openstack-loci-ussuri-ubuntu_bionic description: Build LOCI ussuri bionic images parent: openstack-helm-images-build-openstack-loci-master vars: &build_ussuri_bionic_images currentdate: "{{ now(utc=True,fmt='%Y%m%d') }}" branchname: "stable/ussuri" shortbranchname: "ussuri" distroname: "ubuntu_bionic" from: "docker.io/ubuntu:18.04" python3: "yes" wheels_location: "http://172.17.0.1:8080/wheels.tar.gz" base_repository: "base" ceph_repo: "deb https://mirror.mirantis.com/testing/ceph-nautilus/bionic/ bionic main" ceph_key: "https://mirror.mirantis.com/testing/ceph-nautilus/bionic/archive-ceph-nautilus.key" base_docker_image: - <<: *base_image prep_docker_images: - <<: *prep_requirements_project docker_images: - <<: *requirements_project - <<: *keystone_project - <<: *glance_project - <<: *cinder_project - <<: *nova_project - <<: *ironic_project - <<: *neutron_project - <<: *horizon_project - <<: *heat_project - <<: *barbican_project - <<: *placement_project - <<: *monasca_api_project - <<: *watcher_project - <<: *cyborg_project - job: name: openstack-helm-images-upload-openstack-loci-ussuri-ubuntu_bionic parent: openstack-helm-images-upload-openstack-loci-master description: Build and upload LOCI ussuri bionic images vars: *build_ussuri_bionic_images - job: name: openstack-helm-images-promote-openstack-loci-ussuri-ubuntu_bionic parent: openstack-helm-images-promote-openstack-loci-master description: Promote previously published LOCI ussuri bionic images vars: *build_ussuri_bionic_images ######### # TRAIN # ######### - job: name: openstack-helm-images-build-openstack-loci-train-ubuntu_bionic description: Build LOCI train bionic images parent: openstack-helm-images-build-openstack-loci-master vars: &build_train_bionic_images currentdate: "{{ now(utc=True,fmt='%Y%m%d') }}" branchname: "stable/train" shortbranchname: "train" distroname: "ubuntu_bionic" from: "docker.io/ubuntu:18.04" python3: "yes" wheels_location: "http://172.17.0.1:8080/wheels.tar.gz" base_repository: "base" ceph_repo: "deb https://mirror.mirantis.com/testing/ceph-nautilus/bionic/ bionic main" ceph_key: "https://mirror.mirantis.com/testing/ceph-nautilus/bionic/archive-ceph-nautilus.key" base_docker_image: - <<: *base_image prep_docker_images: - <<: *prep_requirements_project docker_images: - <<: *requirements_project - <<: *keystone_project - <<: *glance_project - <<: *cinder_project - <<: *nova_project - <<: *neutron_project - <<: *horizon_project - <<: *heat_project - <<: *barbican_project - <<: *placement_project - <<: *monasca_api_project - <<: *watcher_project - <<: *cyborg_project - job: name: openstack-helm-images-upload-openstack-loci-train-ubuntu_bionic parent: openstack-helm-images-upload-openstack-loci-master description: Build and upload LOCI train bionic images vars: *build_train_bionic_images - job: name: openstack-helm-images-promote-openstack-loci-train-ubuntu_bionic parent: openstack-helm-images-promote-openstack-loci-master description: Promote previously published LOCI train bionic images vars: *build_train_bionic_images