From c82a78fcc1f3e9ce7109a06f5ff7cd01c1e96bd0 Mon Sep 17 00:00:00 2001 From: Vladimir Kozhukalov Date: Wed, 28 May 2025 12:52:44 -0500 Subject: [PATCH] Cleanup Openstack image build jobs We have been using Loci images by default for quite some time. They seem to be stable and images are published on quay.io/airshipit. Also the cleanup will encourage further improvements of Loci which are not supposed to be necessarily backward compatible with osh-images Openstack build jobs. Change-Id: Ibe2cd0e6ae8b86334637f2a5ea1c71cae6b9381c --- nova-ssh/Dockerfile.ubuntu_bionic | 17 -- nova-ssh/Dockerfile.ubuntu_focal | 17 -- nova-ssh/build.sh | 14 - openstack/loci/build-victoria.sh | 25 -- openstack/loci/build-wallaby.sh | 25 -- openstack/loci/build-xena.sh | 25 -- openstack/loci/build-yoga.sh | 25 -- openstack/loci/build.sh | 295 ---------------------- zuul.d/nova-ssh.yaml | 63 ----- zuul.d/openstack-2024.1-ubuntu_jammy.yaml | 87 ------- zuul.d/openstack-2024.2-ubuntu_jammy.yaml | 87 ------- zuul.d/openstack-2025.1-ubuntu_jammy.yaml | 10 - zuul.d/openstack-2025.1-ubuntu_noble.yaml | 10 - zuul.d/openstack-base.yaml | 71 ------ zuul.d/openstack-master-ubuntu_jammy.yaml | 85 ------- zuul.d/playbooks/Dockerfile_base | 24 -- zuul.d/playbooks/promote-openstack.yml | 7 - zuul.d/playbooks/upload-openstack.yml | 7 - 18 files changed, 894 deletions(-) delete mode 100644 nova-ssh/Dockerfile.ubuntu_bionic delete mode 100644 nova-ssh/Dockerfile.ubuntu_focal delete mode 100644 nova-ssh/build.sh delete mode 100755 openstack/loci/build-victoria.sh delete mode 100755 openstack/loci/build-wallaby.sh delete mode 100755 openstack/loci/build-xena.sh delete mode 100755 openstack/loci/build-yoga.sh delete mode 100755 openstack/loci/build.sh delete mode 100644 zuul.d/nova-ssh.yaml delete mode 100644 zuul.d/openstack-base.yaml delete mode 100644 zuul.d/openstack-master-ubuntu_jammy.yaml delete mode 100644 zuul.d/playbooks/Dockerfile_base delete mode 100644 zuul.d/playbooks/promote-openstack.yml delete mode 100644 zuul.d/playbooks/upload-openstack.yml diff --git a/nova-ssh/Dockerfile.ubuntu_bionic b/nova-ssh/Dockerfile.ubuntu_bionic deleted file mode 100644 index 1f2d9fc2..00000000 --- a/nova-ssh/Dockerfile.ubuntu_bionic +++ /dev/null @@ -1,17 +0,0 @@ -ARG FROM=docker.io/ubuntu:bionic -FROM ${FROM} - -ARG UID=42424 - -RUN set -ex && \ - apt-get update && \ - apt-get upgrade -y && \ - apt-get install --no-install-recommends -y \ - openssh-server \ - openssh-client && \ - rm -rf /var/lib/apt/lists/* - -RUN useradd -r -u ${UID} -d /var/lib/nova nova && \ - chown -R nova: /etc/ssh && \ - mkdir /var/run/sshd && \ - chmod 0755 /var/run/sshd diff --git a/nova-ssh/Dockerfile.ubuntu_focal b/nova-ssh/Dockerfile.ubuntu_focal deleted file mode 100644 index 77d798cb..00000000 --- a/nova-ssh/Dockerfile.ubuntu_focal +++ /dev/null @@ -1,17 +0,0 @@ -ARG FROM=docker.io/ubuntu:focal -FROM ${FROM} - -ARG UID=42424 - -RUN set -ex && \ - apt-get update && \ - apt-get upgrade -y && \ - apt-get install --no-install-recommends -y \ - openssh-server \ - openssh-client && \ - rm -rf /var/lib/apt/lists/* - -RUN useradd -r -u ${UID} -d /var/lib/nova nova && \ - chown -R nova: /etc/ssh && \ - mkdir /var/run/sshd && \ - chmod 0755 /var/run/sshd diff --git a/nova-ssh/build.sh b/nova-ssh/build.sh deleted file mode 100644 index 17afe850..00000000 --- a/nova-ssh/build.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -SCRIPT=`realpath $0` -SCRIPT_DIR=`dirname ${SCRIPT}` -## Only build from main folder -cd ${SCRIPT_DIR}/.. - -IMAGE="nova-ssh" -VERSION=${VERSION:-latest} -DISTRO=${DISTRO:-ubuntu_focal} -REGISTRY_URI=${REGISTRY_URI:-"openstackhelm/"} -EXTRA_TAG_INFO=${EXTRA_TAG_INFO:-""} -docker build -f ${IMAGE}/Dockerfile.${DISTRO} --network=host -t ${REGISTRY_URI}${IMAGE}:${VERSION}-${DISTRO}${EXTRA_TAG_INFO} ${extra_build_args} ${IMAGE} - -cd - diff --git a/openstack/loci/build-victoria.sh b/openstack/loci/build-victoria.sh deleted file mode 100755 index cb1fdb01..00000000 --- a/openstack/loci/build-victoria.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -SCRIPT=`realpath $0` -SCRIPT_DIR=`dirname ${SCRIPT}` -## Only build from main folder - -# Replace with Registry URI with your registry like your -# dockerhub user. Example: "docker.io/openstackhelm" -VERSION=${VERSION:-"latest"} -OPENSTACK_VERSION="stable/victoria" -#pycrypto was dropped after queens so we need to override the defaults -keystone_pip_packages=${keystone_pip_packages:-"'python-openstackclient'"} -heat_pip_packages=${heat_pip_packages:-"''"} -barbican_pip_packages=${barbican_pip_packages:-"''"} -glance_pip_packages=${glance_pip_packages:-"'python-swiftclient'"} -cinder_pip_packages=${cinder_pip_packages:-"'python-swiftclient'"} -neutron_pip_packages=${neutron_pip_packages:-"'networking-baremetal'"} -nova_pip_packages=${nova_pip_packages:-"''"} -horizon_pip_packages=${horizon_pip_packages:-"'heat-dashboard'"} -senlin_pip_packages=${senlin_pip_packages:-"''"} -congress_pip_packages=${congress_pip_packages:-"'python-congressclient'"} -magnum_pip_packages=${magnum_pip_packages:-"''"} -ironic_pip_packages=${ironic_pip_packages:-"''"} -neutron_sriov_pip_packages=${neutron_sriov_pip_packages:-"'networking-baremetal'"} -placement_pip_packages=${placement_pip_packages:-"httplib2"} -source ${SCRIPT_DIR}/build.sh diff --git a/openstack/loci/build-wallaby.sh b/openstack/loci/build-wallaby.sh deleted file mode 100755 index 60c39a32..00000000 --- a/openstack/loci/build-wallaby.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -SCRIPT=`realpath $0` -SCRIPT_DIR=`dirname ${SCRIPT}` -## Only build from main folder - -# Replace with Registry URI with your registry like your -# dockerhub user. Example: "docker.io/openstackhelm" -VERSION=${VERSION:-"latest"} -OPENSTACK_VERSION="stable/wallaby" -#pycrypto was dropped after queens so we need to override the defaults -keystone_pip_packages=${keystone_pip_packages:-"'python-openstackclient'"} -heat_pip_packages=${heat_pip_packages:-"''"} -barbican_pip_packages=${barbican_pip_packages:-"''"} -glance_pip_packages=${glance_pip_packages:-"'python-swiftclient'"} -cinder_pip_packages=${cinder_pip_packages:-"'python-swiftclient'"} -neutron_pip_packages=${neutron_pip_packages:-"''"} -nova_pip_packages=${nova_pip_packages:-"''"} -horizon_pip_packages=${horizon_pip_packages:-"'heat-dashboard'"} -senlin_pip_packages=${senlin_pip_packages:-"''"} -congress_pip_packages=${congress_pip_packages:-"'python-congressclient'"} -magnum_pip_packages=${magnum_pip_packages:-"''"} -ironic_pip_packages=${ironic_pip_packages:-"''"} -neutron_sriov_pip_packages=${neutron_sriov_pip_packages:-"'networking-baremetal'"} -placement_pip_packages=${placement_pip_packages:-"httplib2"} -source ${SCRIPT_DIR}/build.sh diff --git a/openstack/loci/build-xena.sh b/openstack/loci/build-xena.sh deleted file mode 100755 index d9ddd9a7..00000000 --- a/openstack/loci/build-xena.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -SCRIPT=`realpath $0` -SCRIPT_DIR=`dirname ${SCRIPT}` -## Only build from main folder - -# Replace with Registry URI with your registry like your -# dockerhub user. Example: "docker.io/openstackhelm" -VERSION=${VERSION:-"latest"} -OPENSTACK_VERSION="stable/xena" -#pycrypto was dropped after queens so we need to override the defaults -keystone_pip_packages=${keystone_pip_packages:-"'python-openstackclient'"} -heat_pip_packages=${heat_pip_packages:-"''"} -barbican_pip_packages=${barbican_pip_packages:-"''"} -glance_pip_packages=${glance_pip_packages:-"'python-swiftclient'"} -cinder_pip_packages=${cinder_pip_packages:-"'python-swiftclient'"} -neutron_pip_packages=${neutron_pip_packages:-"''"} -nova_pip_packages=${nova_pip_packages:-"''"} -horizon_pip_packages=${horizon_pip_packages:-"'heat-dashboard'"} -senlin_pip_packages=${senlin_pip_packages:-"''"} -congress_pip_packages=${congress_pip_packages:-"'python-congressclient'"} -magnum_pip_packages=${magnum_pip_packages:-"''"} -ironic_pip_packages=${ironic_pip_packages:-"''"} -neutron_sriov_pip_packages=${neutron_sriov_pip_packages:-"'networking-baremetal'"} -placement_pip_packages=${placement_pip_packages:-"httplib2"} -source ${SCRIPT_DIR}/build.sh diff --git a/openstack/loci/build-yoga.sh b/openstack/loci/build-yoga.sh deleted file mode 100755 index 109bc753..00000000 --- a/openstack/loci/build-yoga.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash -SCRIPT=`realpath $0` -SCRIPT_DIR=`dirname ${SCRIPT}` -## Only build from main folder - -# Replace with Registry URI with your registry like your -# dockerhub user. Example: "docker.io/openstackhelm" -VERSION=${VERSION:-"latest"} -OPENSTACK_VERSION="stable/yoga" -#pycrypto was dropped after queens so we need to override the defaults -keystone_pip_packages=${keystone_pip_packages:-"'python-openstackclient'"} -heat_pip_packages=${heat_pip_packages:-"''"} -barbican_pip_packages=${barbican_pip_packages:-"''"} -glance_pip_packages=${glance_pip_packages:-"'python-swiftclient'"} -cinder_pip_packages=${cinder_pip_packages:-"'python-swiftclient'"} -neutron_pip_packages=${neutron_pip_packages:-"''"} -nova_pip_packages=${nova_pip_packages:-"''"} -horizon_pip_packages=${horizon_pip_packages:-"''"} -senlin_pip_packages=${senlin_pip_packages:-"''"} -congress_pip_packages=${congress_pip_packages:-"'python-congressclient'"} -magnum_pip_packages=${magnum_pip_packages:-"''"} -ironic_pip_packages=${ironic_pip_packages:-"''"} -neutron_sriov_pip_packages=${neutron_sriov_pip_packages:-"'networking-baremetal'"} -placement_pip_packages=${placement_pip_packages:-"httplib2"} -source ${SCRIPT_DIR}/build.sh diff --git a/openstack/loci/build.sh b/openstack/loci/build.sh deleted file mode 100755 index 6b49780d..00000000 --- a/openstack/loci/build.sh +++ /dev/null @@ -1,295 +0,0 @@ -#!/bin/bash -export PYTHONUNBUFFERED=1 -SCRIPT=`realpath $0` -SCRIPT_DIR=`dirname ${SCRIPT}` -## Only build from main folder -cd ${SCRIPT_DIR}/../.. - -set -e - -function get_loci { - #LOCI_SRC_DIR should be set in upstream gates. - #This allows Depends-On patches to LOCI to be built here. - if [[ -z ${LOCI_SRC_DIR+x} ]]; then - echo "LOCI_SRC_DIR unset, cloning in temp folder" - temp_dir=$(mktemp -d) - LOCI_SRC_DIR=${temp_dir}/loci - git clone ${LOCI_CLONE_LOCATION:-"https://git.openstack.org/openstack/loci.git"} ${LOCI_SRC_DIR} - else - echo "LOCI_SRC_DIR set, reusing LOCI folder" - fi -} - -function fetch_loci_version { - if [[ ! -z ${LOCI_SHA+x} ]]; then - pushd ${LOCI_SRC_DIR} - git fetch ${FETCH_REPO:-"https://git.openstack.org/openstack/loci.git"} ${FETCH_REFSPEC:-"master"} - git checkout FETCH_HEAD - popd - fi -} - -function build_loci_base_image { - base_img_tag=$1 - pushd ${LOCI_SRC_DIR} - docker build --network=host -t ${base_img_tag} ${base_extra_build_args} dockerfiles/${BASE_IMAGE} - popd -} - -function fetch_base_image { - docker pull ${BASE_IMAGE} -} - -function get_project_image_build_arguments { - project=$1 - echo "Building $project" - - #Evaluate all LOCI arguments to pass, in the - #LOCI documentation order. - - #Some projects might want to override FROM image - local this_from="${project}_from" - if [[ -n ${!this_from} ]]; then - build_args="--build-arg FROM=${!this_from}" - else - build_args="--build-arg FROM=${LOCI_ARG_FROM}" - fi - - #Assuming you want to build multiple images for an upstream project - #you can define multiple 'projects' and override default upstream - #project name. See for example neutron and neutron_sriov. - local this_project="${project}_project" - if [[ -n ${!this_project} ]]; then - echo "Override of projectname found" - local projectname=${!this_project} - else - local projectname=${project} - fi - build_args="${build_args} --build-arg PROJECT=${projectname}" - - #Add PROJECT_REF argument if _project_ref env var is defined - #Or, use default openstack branch reference "OPENSTACK_VERSION" - local this_project_ref="${project}_project_ref" - if [[ -n ${!this_project_ref} ]]; then - PROJECT_REF=${!this_project_ref} - else - PROJECT_REF=${OPENSTACK_VERSION} - fi - #Remove stable/ from the tags, as '/' should not be in tag, and - #'stable' doesn't bring any extra information - TAGGED_PROJECT_REF=${PROJECT_REF/stable\//} - build_args="${build_args} --build-arg PROJECT_REF=${PROJECT_REF}" - - - #Add PROJECT_REPO argument if _project_repo env var is defined - local this_project_repo="${project}_project_repo" - if [[ -n ${!this_project_repo} ]]; then - build_args="${build_args} --build-arg PROJECT_REPO=${!this_project_repo}" - fi - - if [[ "$project" == "requirements" ]]; then - # Ensure all the next builds can refer to a global - # "REQUIREMENTS_TAGGED_PROJECT_REF" - REQUIREMENTS_TAGGED_PROJECT_REF=${TAGGED_PROJECT_REF} - else - #Add uid argument if _uid env var is defined - local this_uid="${project}_uid" - if [[ -n ${!this_uid} ]]; then - build_args="${build_args} --build-arg UID=${!this_uid}" - fi - - #Add gid argument if _gid env var is defined - local this_gid="${project}_gid" - if [[ -n ${!this_gid} ]]; then - build_args="${build_args} --build-arg GID=${!this_gid}" - fi - - # If requirements was not part of BUILD_PROJECTS, assume it was - # built before and set the project ref based on current project - if [[ -z ${REQUIREMENTS_TAGGED_PROJECT_REF} ]]; then - REQUIREMENTS_TAGGED_PROJECT_REF=${TAGGED_PROJECT_REF} - fi - - #Point to requirement wheels, or use _wheels - # if defined. - local this_wheels="${project}_wheels" - if [[ -n ${!this_wheels} ]]; then - build_args="${build_args} --build-arg WHEELS=${!this_wheels}" - else - build_args="${build_args} --build-arg WHEELS=${REGISTRY_URI}requirements:${VERSION}-${REQUIREMENTS_TAGGED_PROJECT_REF}-${DISTRO}${requirements_extra_tags:-}" - fi - - #Add profiles argument if _profiles env var is defined - local this_profiles="${project}_profiles" - if [[ -n ${!this_profiles} ]]; then - build_args="${build_args} --build-arg PROFILES=${!this_profiles}" - fi - - #Add pip_packages argument if _pip_packages env var is defined - local this_pip_packages="${project}_pip_packages" - if [[ -n ${!this_pip_packages} ]]; then - build_args="${build_args} --build-arg PIP_PACKAGES=${!this_pip_packages}" - fi - - #Add pip_args argument if _pip_args env var is defined - local this_pip_args="${project}_pip_args" - if [[ -n ${!this_pip_args} ]]; then - build_args="${build_args} --build-arg PIP_ARGS=${!this_pip_args}" - fi - - #Add dist_packages argument if _dist_packages env var is defined - local this_dist_packages="${project}_dist_packages" - if [[ -n ${!this_dist_packages} ]]; then - build_args="${build_args} --build-arg DIST_PACKAGES=${!this_dist_packages}" - fi - fi - - #Add extra_build_args argument if _extra_build_args env var is defined - local this_extra_build_args="${project}_extra_build_args" - if [[ -n ${!this_extra_build_args} ]]; then - build_args="${build_args} ${!this_extra_build_args}" - fi - - #Prepare tag - local this_extra_tags="${project}_extra_tag" - tag="${REGISTRY_URI}${projectname}:${VERSION}-${TAGGED_PROJECT_REF}-${DISTRO}${!this_extra_tags}" - - docker_build_cmd="docker build --network=host ${default_project_extra_build_args} ${build_args} --tag $tag ." -} - -# Default script behavior -# -# BASE_IMAGE represents LOCI's "base" image name. -# Use ubuntu|leap15|centos|debian to build base image from LOCI's Dockerfiles. -BASE_IMAGE=${BASE_IMAGE:-"gcr.io/google_containers/ubuntu-slim:0.14"} -# Replace with Registry URI with your registry like your -# dockerhub user. Example: "docker.io/openstackhelm" -REGISTRY_URI=${REGISTRY_URI:-"172.17.0.1:5000/openstackhelm/"} -# The image tag used. -VERSION=${VERSION:-"latest"} -# The openstack branch to build, if no per project branch is given. -OPENSTACK_VERSION=${OPENSTACK_VERSION:-"master"} -# Sepcify OS distribution -DISTRO=${DISTRO:-"ubuntu_focal"} -# extra build arguments for the base image. See loci's dockerfiles for -# arguments that could be used for example. -base_extra_build_args=${base_extra_build_args:-"--force-rm --pull --no-cache"} -# you can use default_project_extra_build_args for proxies. -default_project_extra_build_args=${default_project_extra_build_args:-"--force-rm --pull --no-cache"} -#Log location -LOG_PREFIX="/tmp/loci-log-" -#Defaults for projects -keystone_profiles=${keystone_profiles:-"'fluent apache python-ldap'"} -keystone_pip_packages=${keystone_pip_packages:-"'pycrypto python-openstackclient'"} -heat_profiles=${heat_profiles:-"'fluent apache'"} -heat_pip_packages=${heat_pip_packages:-"pycrypto"} -# Heat image is used as a helper, and needs curl for fetching images in glance -# for example -heat_dist_packages=${heat_dist_packages:-"curl"} -barbican_profiles=${barbican_profiles:-"fluent"} -barbican_pip_packages=${barbican_pip_packages:-"pycrypto"} -barbican_dist_packages=${barbican_dist_packages:-"'python3-dev gcc'"} -barbican_pip_args=${barbican_pip_args:-"'--only-binary :none:'"} -glance_profiles=${glance_profiles:-"'fluent ceph'"} -glance_pip_packages=${glance_pip_packages:-"'pycrypto python-swiftclient'"} -cinder_profiles=${cinder_profiles:-"'fluent lvm ceph qemu apache'"} -cinder_pip_packages=${cinder_pip_packages:-"'pycrypto python-swiftclient'"} -neutron_profiles=${neutron_profiles:-"'fluent linuxbridge openvswitch apache vpn'"} -neutron_dist_packages=${neutron_dist_packages:-"'jq ethtool lshw'"} -neutron_pip_packages=${neutron_pip_packages:-"'tap-as-a-service pycrypto'"} -nova_profiles=${nova_profiles:-"'fluent ceph linuxbridge openvswitch configdrive qemu apache migration'"} -nova_pip_packages=${nova_pip_packages:-"pycrypto"} -nova_dist_packages=${nova_dist_packages:-"net-tools"} -horizon_profiles=${horizon_profiles:-"'fluent apache'"} -horizon_pip_packages=${horizon_pip_packages:-"pycrypto"} -senlin_profiles=${senlin_profiles:-"fluent"} -senlin_pip_packages=${senlin_pip_packages:-"pycrypto"} -magnum_profiles=${magnum_profiles:-"fluent"} -magnum_pip_packages=${magnum_pip_packages:-"pycrypto"} -ironic_profiles=${ironic_profiles:-"'fluent ipxe ipmi qemu tftp'"} -ironic_pip_packages=${ironic_pip_packages:-"pycrypto"} -ironic_dist_packages=${ironic_dist_packages:-"iproute2"} -neutron_sriov_from=${neutron_sriov_from:-${neutron_sriov_from:-"docker.io/ubuntu:18.04"}} -neutron_sriov_project=${neutron_sriov_project:-"neutron"} -neutron_sriov_profiles=${neutron_sriov_profiles:-"'fluent neutron linuxbridge openvswitch'"} -neutron_sriov_pip_packages=${neutron_sriov_pip_packages:-"pycrypto"} -neutron_sriov_dist_packages=${neutron_sriov_dist_packages:-"'ethtool lshw'"} -neutron_sriov_extra_tag=${neutron_sriov_extra_tag:-'-sriov-1804'} -placement_profiles=${placement_profiles:-"'apache'"} -monasca_api_profile=${monasca_api_profile:-"'apache monasca api'"} -monasca_api_pip_packages=${monasca_api_pip_packages:-"influxdb cassandra-driver sqlalchemy"} -masakari_profiles=${masakari_profiles:-"'masakari'"} -masakari_monitors_profiles=${masakari_monitors_profiles:-"'masakari-monitors'"} -#################### -# Action starts here -#################### - -# Ensure path to registry ends with / -if [[ "${REGISTRY_URI}" != */ ]]; then - REGISTRY_URI="$REGISTRY_URI/" -fi - -get_loci -fetch_loci_version - -# The BASE_IMAGE provided by the user may require -# building and re-use LOCI. -# Test if BASE_IMAGE should be built from LOCI dockerfiles. -case ${BASE_IMAGE} in - ubuntu) - #Mark the need to build image from LOCI Dockerfiles - BUILD_IMAGE="yes" - #Makes sure the name of the distro is consistent with other OSH-images. - DISTRO="ubuntu_focal" - ;; - leap15) - BUILD_IMAGE="yes" - DISTRO="suse_15" - ;; - centos) - BUILD_IMAGE="yes" - DISTRO="centos_7" - ;; - debian) - BUILD_IMAGE="yes" - DISTRO="debian" - ;; - *) - BUILD_IMAGE="no" - DISTRO="${DISTRO}" - ;; -esac - -if [[ "${BUILD_IMAGE}" == "yes" ]]; then - LOCI_ARG_FROM="${REGISTRY_URI}base:${VERSION}-${DISTRO}" - build_loci_base_image $LOCI_ARG_FROM - docker push $LOCI_ARG_FROM -else - fetch_base_image - LOCI_ARG_FROM="${BASE_IMAGE}" -fi - -BUILD_PROJECTS=${BUILD_PROJECTS:-'requirements keystone heat barbican glance cinder monasca_api neutron neutron_sriov nova horizon senlin magnum ironic manila tacker'} -projects=( ${BUILD_PROJECTS} ) - -pushd ${LOCI_SRC_DIR} - # The first project should be requirements, if requirements is built. - # This one should not be run in parallel. - if [[ "${projects[0]}" == "requirements" ]]; then - get_project_image_build_arguments ${projects[0]} - eval "${docker_build_cmd}" - docker push ${tag} - unset projects[0] - fi - # clear action from previous install (can be in dev local builds) - truncate -s 0 ${LOG_PREFIX}actions - # Run the rest of the projects with parallel - for project in ${projects[@]}; do - get_project_image_build_arguments $project - echo "${docker_build_cmd} && docker push ${tag}" >> ${LOG_PREFIX}actions - done - parallel --group -a ${LOG_PREFIX}actions -popd - -# Return to user folder -cd - diff --git a/zuul.d/nova-ssh.yaml b/zuul.d/nova-ssh.yaml deleted file mode 100644 index 534a1710..00000000 --- a/zuul.d/nova-ssh.yaml +++ /dev/null @@ -1,63 +0,0 @@ ---- -# 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-nova-ssh - gate: - jobs: - - openstack-helm-images-upload-nova-ssh - promote: - jobs: - - openstack-helm-images-promote-nova-ssh - periodic-weekly: - jobs: - - openstack-helm-images-build-nova-ssh - -- job: - name: openstack-helm-images-build-nova-ssh - parent: openstack-helm-images-build - description: Build nova-ssh images - vars: &nova_ssh_vars - currentdate: "{{ now(utc=True,fmt='%Y%m%d') }}" - docker_images: - - context: nova-ssh - repository: openstackhelm/nova-ssh - dockerfile: Dockerfile.ubuntu_bionic - tags: - - latest-ubuntu_bionic - - "ubuntu_bionic-{{ currentdate }}" - - context: nova-ssh - repository: openstackhelm/nova-ssh - dockerfile: Dockerfile.ubuntu_focal - tags: - - latest-ubuntu_focal - - "ubuntu_focal-{{ currentdate }}" - files: &nova_ssh_files - - nova-ssh/.* - - zuul.d/nova-ssh.yaml - -- job: - name: openstack-helm-images-upload-nova-ssh - parent: openstack-helm-images-upload - description: Build and upload nova-ssh images - vars: *nova_ssh_vars - files: *nova_ssh_files - -- job: - name: openstack-helm-images-promote-nova-ssh - parent: openstack-helm-images-promote - description: Promote a previously published nova-ssh image to latest. - vars: *nova_ssh_vars - files: *nova_ssh_files diff --git a/zuul.d/openstack-2024.1-ubuntu_jammy.yaml b/zuul.d/openstack-2024.1-ubuntu_jammy.yaml index 3a345851..913f7059 100644 --- a/zuul.d/openstack-2024.1-ubuntu_jammy.yaml +++ b/zuul.d/openstack-2024.1-ubuntu_jammy.yaml @@ -15,77 +15,8 @@ - project: check: jobs: - - openstack-helm-images-build-openstack-2024-1-ubuntu_jammy - openstack-helm-images-compute-kit-2024-1-ubuntu_jammy - openstack-helm-images-cinder-2024-1-ubuntu_jammy - gate: - jobs: - - openstack-helm-images-upload-openstack-2024-1-ubuntu_jammy - promote: - jobs: - - openstack-helm-images-promote-openstack-2024-1-ubuntu_jammy - periodic: - jobs: - - openstack-helm-images-upload-openstack-2024-1-ubuntu_jammy - - openstack-helm-images-promote-openstack-2024-1-ubuntu_jammy: - dependencies: - - name: openstack-helm-images-compute-kit-2024-1-ubuntu_jammy - - name: openstack-helm-images-cinder-2024-1-ubuntu_jammy - - openstack-helm-images-compute-kit-2024-1-ubuntu_jammy - - openstack-helm-images-cinder-2024-1-ubuntu_jammy - -- job: - name: openstack-helm-images-build-openstack-2024-1-ubuntu_jammy - description: Build 2024.1 Jammy images - parent: openstack-helm-images-build-openstack - vars: &vars_2024_1_ubuntu_jammy - branchname: "stable/2024.1" - shortbranchname: "2024.1" - distroname: "ubuntu_jammy" - from: "docker.io/ubuntu:22.04" - ceph_repo: "deb https://download.ceph.com/debian-reef/ jammy main" - ceph_key: "http://download.ceph.com/keys/release.asc" - openstack_docker_images: - - barbican - - cinder - - cyborg - - designate - - glance - - heat - - horizon - - ironic - - keystone - - magnum - - manila - - masakari - - masakari_monitors - - neutron - - nova - - octavia - - placement - - tacker - - watcher - files: &files_2024_1_ubuntu_jammy - - zuul.d/openstack-2024.1-ubuntu_jammy.yaml - - zuul.d/openstack-base.yaml - - zuul.d/playbooks/build-openstack.yml - - zuul.d/playbooks/vars-openstack.yml - - zuul.d/playbooks/Dockerfile_base - - zuul.d/playbooks/Dockerfile - -- job: - name: openstack-helm-images-upload-openstack-2024-1-ubuntu_jammy - description: Build and upload 2024.1 Jammy images - parent: openstack-helm-images-upload-openstack - vars: *vars_2024_1_ubuntu_jammy - files: *files_2024_1_ubuntu_jammy - -- job: - name: openstack-helm-images-promote-openstack-2024-1-ubuntu_jammy - description: Promote previously published 2024.1 Jammy images - parent: openstack-helm-images-promote-openstack - vars: *vars_2024_1_ubuntu_jammy - files: *files_2024_1_ubuntu_jammy - job: name: openstack-helm-images-compute-kit-2024-1-ubuntu_jammy @@ -93,16 +24,12 @@ dependencies: - name: openstack-helm-images-build-openvswitch soft: true - - name: openstack-helm-images-build-openstack-2024-1-ubuntu_jammy - soft: true - name: openstack-helm-images-build-mariadb soft: true - name: openstack-helm-images-build-libvirt soft: true - name: openstack-helm-images-upload-openvswitch soft: true - - name: openstack-helm-images-upload-openstack-2024-1-ubuntu_jammy - soft: true - name: openstack-helm-images-upload-mariadb soft: true - name: openstack-helm-images-upload-libvirt @@ -115,31 +42,17 @@ - libvirt/.* - zuul.d/libvirt.yaml - zuul.d/openstack-2024.1-ubuntu_jammy.yaml - - zuul.d/openstack-base.yaml - - zuul.d/playbooks/build-openstack.yml - - zuul.d/playbooks/vars-openstack.yml - - zuul.d/playbooks/Dockerfile_base - - zuul.d/playbooks/Dockerfile - job: name: openstack-helm-images-cinder-2024-1-ubuntu_jammy parent: openstack-helm-cinder-2024-1-ubuntu_jammy nodeset: openstack-helm-5nodes-ubuntu_jammy dependencies: - - name: openstack-helm-images-build-openstack-2024-1-ubuntu_jammy - soft: true - name: openstack-helm-images-build-mariadb soft: true - - name: openstack-helm-images-upload-openstack-2024-1-ubuntu_jammy - soft: true - name: openstack-helm-images-upload-mariadb soft: true files: - mariadb/.* - zuul.d/mariadb.yaml - zuul.d/openstack-2024.1-ubuntu_jammy.yaml - - zuul.d/openstack-base.yaml - - zuul.d/playbooks/build-openstack.yml - - zuul.d/playbooks/vars-openstack.yml - - zuul.d/playbooks/Dockerfile_base - - zuul.d/playbooks/Dockerfile diff --git a/zuul.d/openstack-2024.2-ubuntu_jammy.yaml b/zuul.d/openstack-2024.2-ubuntu_jammy.yaml index ff0e62fc..f361aaaf 100644 --- a/zuul.d/openstack-2024.2-ubuntu_jammy.yaml +++ b/zuul.d/openstack-2024.2-ubuntu_jammy.yaml @@ -14,77 +14,8 @@ - project: check: jobs: - - openstack-helm-images-build-openstack-2024-2-ubuntu_jammy - openstack-helm-images-compute-kit-2024-2-ubuntu_jammy - openstack-helm-images-cinder-2024-2-ubuntu_jammy - gate: - jobs: - - openstack-helm-images-upload-openstack-2024-2-ubuntu_jammy - promote: - jobs: - - openstack-helm-images-promote-openstack-2024-2-ubuntu_jammy - periodic: - jobs: - - openstack-helm-images-upload-openstack-2024-2-ubuntu_jammy - - openstack-helm-images-promote-openstack-2024-2-ubuntu_jammy: - dependencies: - - name: openstack-helm-images-compute-kit-2024-2-ubuntu_jammy - - name: openstack-helm-images-cinder-2024-2-ubuntu_jammy - - openstack-helm-images-compute-kit-2024-2-ubuntu_jammy - - openstack-helm-images-cinder-2024-2-ubuntu_jammy - -- job: - name: openstack-helm-images-build-openstack-2024-2-ubuntu_jammy - description: Build 2024.2 Jammy images - parent: openstack-helm-images-build-openstack - vars: &vars_2024_2_ubuntu_jammy - branchname: "stable/2024.2" - shortbranchname: "2024.2" - distroname: "ubuntu_jammy" - from: "docker.io/ubuntu:22.04" - ceph_repo: "deb https://download.ceph.com/debian-reef/ jammy main" - ceph_key: "http://download.ceph.com/keys/release.asc" - openstack_docker_images: - - barbican - - cinder - - cyborg - - designate - - glance - - heat - - horizon - - ironic - - keystone - - magnum - - manila - - masakari - - masakari_monitors - - neutron - - nova - - octavia - - placement - - tacker - - watcher - files: &files_2024_2_ubuntu_jammy - - zuul.d/openstack-2024.2-ubuntu_jammy.yaml - - zuul.d/openstack-base.yaml - - zuul.d/playbooks/build-openstack.yml - - zuul.d/playbooks/vars-openstack.yml - - zuul.d/playbooks/Dockerfile_base - - zuul.d/playbooks/Dockerfile - -- job: - name: openstack-helm-images-upload-openstack-2024-2-ubuntu_jammy - description: Build and upload 2024.2 Jammy images - parent: openstack-helm-images-upload-openstack - vars: *vars_2024_2_ubuntu_jammy - files: *files_2024_2_ubuntu_jammy - -- job: - name: openstack-helm-images-promote-openstack-2024-2-ubuntu_jammy - description: Promote previously published 2024.2 Jammy images - parent: openstack-helm-images-promote-openstack - vars: *vars_2024_2_ubuntu_jammy - files: *files_2024_2_ubuntu_jammy - job: name: openstack-helm-images-compute-kit-2024-2-ubuntu_jammy @@ -92,16 +23,12 @@ dependencies: - name: openstack-helm-images-build-openvswitch soft: true - - name: openstack-helm-images-build-openstack-2024-2-ubuntu_jammy - soft: true - name: openstack-helm-images-build-mariadb soft: true - name: openstack-helm-images-build-libvirt soft: true - name: openstack-helm-images-upload-openvswitch soft: true - - name: openstack-helm-images-upload-openstack-2024-2-ubuntu_jammy - soft: true - name: openstack-helm-images-upload-mariadb soft: true - name: openstack-helm-images-upload-libvirt @@ -114,31 +41,17 @@ - libvirt/.* - zuul.d/libvirt.yaml - zuul.d/openstack-2024.2-ubuntu_jammy.yaml - - zuul.d/openstack-base.yaml - - zuul.d/playbooks/build-openstack.yml - - zuul.d/playbooks/vars-openstack.yml - - zuul.d/playbooks/Dockerfile_base - - zuul.d/playbooks/Dockerfile - job: name: openstack-helm-images-cinder-2024-2-ubuntu_jammy parent: openstack-helm-cinder-2024-2-ubuntu_jammy nodeset: openstack-helm-5nodes-ubuntu_jammy dependencies: - - name: openstack-helm-images-build-openstack-2024-2-ubuntu_jammy - soft: true - name: openstack-helm-images-build-mariadb soft: true - - name: openstack-helm-images-upload-openstack-2024-2-ubuntu_jammy - soft: true - name: openstack-helm-images-upload-mariadb soft: true files: - mariadb/.* - zuul.d/mariadb.yaml - zuul.d/openstack-2024.2-ubuntu_jammy.yaml - - zuul.d/openstack-base.yaml - - zuul.d/playbooks/build-openstack.yml - - zuul.d/playbooks/vars-openstack.yml - - zuul.d/playbooks/Dockerfile_base - - zuul.d/playbooks/Dockerfile diff --git a/zuul.d/openstack-2025.1-ubuntu_jammy.yaml b/zuul.d/openstack-2025.1-ubuntu_jammy.yaml index 9c9135db..7ae5875d 100644 --- a/zuul.d/openstack-2025.1-ubuntu_jammy.yaml +++ b/zuul.d/openstack-2025.1-ubuntu_jammy.yaml @@ -41,11 +41,6 @@ - libvirt/.* - zuul.d/libvirt.yaml - zuul.d/openstack-2025.1-ubuntu_jammy.yaml - - zuul.d/openstack-base.yaml - - zuul.d/playbooks/build-openstack.yml - - zuul.d/playbooks/vars-openstack.yml - - zuul.d/playbooks/Dockerfile_base - - zuul.d/playbooks/Dockerfile - job: name: openstack-helm-images-cinder-2025-1-ubuntu_jammy @@ -60,8 +55,3 @@ - mariadb/.* - zuul.d/mariadb.yaml - zuul.d/openstack-2025.1-ubuntu_jammy.yaml - - zuul.d/openstack-base.yaml - - zuul.d/playbooks/build-openstack.yml - - zuul.d/playbooks/vars-openstack.yml - - zuul.d/playbooks/Dockerfile_base - - zuul.d/playbooks/Dockerfile diff --git a/zuul.d/openstack-2025.1-ubuntu_noble.yaml b/zuul.d/openstack-2025.1-ubuntu_noble.yaml index 3aecf579..721c8050 100644 --- a/zuul.d/openstack-2025.1-ubuntu_noble.yaml +++ b/zuul.d/openstack-2025.1-ubuntu_noble.yaml @@ -41,11 +41,6 @@ - libvirt/.* - zuul.d/libvirt.yaml - zuul.d/openstack-2025.1-ubuntu_noble.yaml - - zuul.d/openstack-base.yaml - - zuul.d/playbooks/build-openstack.yml - - zuul.d/playbooks/vars-openstack.yml - - zuul.d/playbooks/Dockerfile_base - - zuul.d/playbooks/Dockerfile - job: name: openstack-helm-images-cinder-2025-1-ubuntu_noble @@ -59,8 +54,3 @@ - mariadb/.* - zuul.d/mariadb.yaml - zuul.d/openstack-2025.1-ubuntu_noble.yaml - - zuul.d/openstack-base.yaml - - zuul.d/playbooks/build-openstack.yml - - zuul.d/playbooks/vars-openstack.yml - - zuul.d/playbooks/Dockerfile_base - - zuul.d/playbooks/Dockerfile diff --git a/zuul.d/openstack-base.yaml b/zuul.d/openstack-base.yaml deleted file mode 100644 index b61cada1..00000000 --- a/zuul.d/openstack-base.yaml +++ /dev/null @@ -1,71 +0,0 @@ ---- -# 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. - -- job: - name: openstack-helm-images-build-openstack - abstract: true - timeout: 7200 - required-projects: - - openstack/loci - dependencies: - - name: openstack-helm-images-buildset-registry - run: - - zuul.d/playbooks/build-openstack.yml - vars: &vars - branchname: "master" - shortbranchname: "master" - distroname: "" - from: "" - ceph_repo: "" - ceph_key: "" - openstack_docker_images: - - keystone - - glance - - cinder - - nova - - ironic - - neutron - - horizon - - heat - - barbican - - placement - - monasca_api - - cyborg - - magnum - - masakari - - masakari_monitors - - manila - - tacker - -- job: - name: openstack-helm-images-upload-openstack - parent: openstack-helm-images-build-openstack - abstract: true - post-run: - - zuul.d/playbooks/upload-openstack.yml - secrets: - name: docker_credentials - secret: openstack-helm-dockerhub - vars: *vars - -- job: - name: openstack-helm-images-promote-openstack - abstract: true - run: - - zuul.d/playbooks/promote-openstack.yml - secrets: - name: docker_credentials - secret: openstack-helm-dockerhub - vars: *vars - nodeset: - nodes: [] diff --git a/zuul.d/openstack-master-ubuntu_jammy.yaml b/zuul.d/openstack-master-ubuntu_jammy.yaml deleted file mode 100644 index 94d5f444..00000000 --- a/zuul.d/openstack-master-ubuntu_jammy.yaml +++ /dev/null @@ -1,85 +0,0 @@ ---- -# 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-master-ubuntu_jammy - gate: - jobs: - - openstack-helm-images-upload-openstack-master-ubuntu_jammy - promote: - jobs: - - openstack-helm-images-promote-openstack-master-ubuntu_jammy - periodic-weekly: - jobs: - - openstack-helm-images-upload-openstack-master-ubuntu_jammy - - openstack-helm-images-promote-openstack-master-ubuntu_jammy: - dependencies: - - name: openstack-helm-images-upload-openstack-master-ubuntu_jammy - -- job: - name: openstack-helm-images-build-openstack-master-ubuntu_jammy - voting: false - description: Build master Jammy images - parent: openstack-helm-images-build-openstack - vars: &vars_master_ubuntu_jammy - branchname: "master" - shortbranchname: "master" - distroname: "ubuntu_jammy" - from: "docker.io/ubuntu:22.04" - ceph_repo: "deb https://download.ceph.com/debian-squid/ jammy main" - ceph_key: "http://download.ceph.com/keys/release.asc" - openstack_docker_images: - - barbican - - cinder - - cyborg - - designate - - glance - - heat - - horizon - - ironic - - keystone - - magnum - - manila - - masakari - - masakari_monitors - - neutron - - nova - - octavia - - placement - - tacker - files: &files_master_ubuntu_jammy - - zuul.d/openstack-master-ubuntu_jammy.yaml - - zuul.d/openstack-base.yaml - - zuul.d/playbooks/build-openstack.yml - - zuul.d/playbooks/vars-openstack.yml - - zuul.d/playbooks/Dockerfile_base - - zuul.d/playbooks/Dockerfile - -- job: - name: openstack-helm-images-upload-openstack-master-ubuntu_jammy - voting: false - description: Build and upload master Jammy images - parent: openstack-helm-images-upload-openstack - vars: *vars_master_ubuntu_jammy - files: *files_master_ubuntu_jammy - -- job: - name: openstack-helm-images-promote-openstack-master-ubuntu_jammy - voting: false - description: Promote previously published master Jammy images - parent: openstack-helm-images-promote-openstack - vars: *vars_master_ubuntu_jammy - files: *files_master_ubuntu_jammy diff --git a/zuul.d/playbooks/Dockerfile_base b/zuul.d/playbooks/Dockerfile_base deleted file mode 100644 index bb73bace..00000000 --- a/zuul.d/playbooks/Dockerfile_base +++ /dev/null @@ -1,24 +0,0 @@ -ARG FROM=ubuntu:bionic -FROM ${FROM} - -ARG CEPH_REPO="deb https://download.ceph.com/debian-pacific/ bionic main" -ARG CEPH_KEY="https://download.ceph.com/keys/release.asc" -ARG ALLOW_UNAUTHENTICATED=false - -RUN echo "APT::Get::AllowUnauthenticated \"${ALLOW_UNAUTHENTICATED}\";\n\ -Acquire::AllowInsecureRepositories \"${ALLOW_UNAUTHENTICATED}\";\n\ -Acquire::AllowDowngradeToInsecureRepositories \"${ALLOW_UNAUTHENTICATED}\";" \ - >> /etc/apt/apt.conf.d/allow-unathenticated - -RUN export DEBIAN_FRONTEND=noninteractive ;\ - apt-get update ;\ - apt-get install -y --no-install-recommends \ - apt-transport-https \ - ca-certificates \ - gnupg2 \ - wget ;\ - wget -q -O- ${CEPH_KEY} | apt-key add - ;\ - echo "${CEPH_REPO}" | tee /etc/apt/sources.list.d/ceph.list ;\ - apt-get remove -y wget gnupg2 ;\ - apt-get clean ;\ - rm -rf /var/lib/apt/lists/* diff --git a/zuul.d/playbooks/promote-openstack.yml b/zuul.d/playbooks/promote-openstack.yml deleted file mode 100644 index 7f99b2c4..00000000 --- a/zuul.d/playbooks/promote-openstack.yml +++ /dev/null @@ -1,7 +0,0 @@ -- hosts: localhost - vars_files: - - vars-openstack.yml - vars: - docker_images: "{{ openstack_docker_images | map('extract', openstack_docker_images_dict) | list }}" - roles: - - promote-docker-image diff --git a/zuul.d/playbooks/upload-openstack.yml b/zuul.d/playbooks/upload-openstack.yml deleted file mode 100644 index cb3d6620..00000000 --- a/zuul.d/playbooks/upload-openstack.yml +++ /dev/null @@ -1,7 +0,0 @@ -- hosts: all - vars_files: - - vars-openstack.yml - vars: - docker_images: "{{ openstack_docker_images | map('extract', openstack_docker_images_dict) | list }}" - roles: - - role: upload-docker-image