openstack-helm-images/zuul.d/openstack-loci.yaml
Andrii Ostapenko 5d914dedf9 Fix periodic pipeline and run Ussuri test deployments
Change-Id: I729dafe75cadf3699561380984eb53c670a91cec
Signed-off-by: Andrii Ostapenko <andrii.ostapenko@att.com>
2021-08-02 19:07:28 +00:00

623 lines
23 KiB
YAML

---
# 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