Reference distro for release files in centosci

The release files in
tripleo-quickstart/tree/master/config/release/centosci
had a flat dir structure and did not allow for
releases of the same name on different distros.

The review adds the same structure as tripleo-ci
and changes the quickstart scripts to use that path.

Depends-On: https://review.rdoproject.org/r/c/rdo-infra/ci-config/+/39181
Signed-off-by: Amol Kahat <amolkahat@gmail.com>
Change-Id: I6aedafc218ed676b41ac8dc9bf332b3338775521
This commit is contained in:
Amol Kahat 2022-02-07 22:40:29 +05:30 committed by Ronelle Landy
parent ed9821857d
commit d68ddc37a9
14 changed files with 198 additions and 14 deletions

View File

@ -5,6 +5,7 @@
set -eux
: ${OPT_ADDITIONAL_PARAMETERS:=""}
: ${DISTRO_PATH:=""}
# CONFIG and JOB_TYPE are not used here, but kept for
# consistency with other jobs to make JJB cleaner.
@ -38,5 +39,5 @@ bash quickstart.sh \
--no-clone \
--bootstrap \
-e virthost_user=$VIRTHOST_USER \
--release ${CI_ENV:+$CI_ENV/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
--release ${CI_ENV:+$CI_ENV/}${DISTRO_PATH:+$DISTRO_PATH/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
$VIRTHOST

View File

@ -10,6 +10,8 @@ BUILD_SYS=$2
CONFIG=$3
JOB_TYPE=$4
: ${DISTRO_PATH:=""}
# CI_ENV is set on the slave running the jobs
# REL_TYPE can be specific release type like 'testing'
@ -36,7 +38,7 @@ bash quickstart.sh \
-e deploy_timeout=75 \
--config $WORKSPACE/config/general_config/$CONFIG.yml \
--tags all \
--release ${CI_ENV:+$CI_ENV/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
--release ${CI_ENV:+$CI_ENV/}${DISTRO_PATH:+$DISTRO_PATH/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
--playbook scale_nodes.yml \
$VIRTHOST
@ -50,6 +52,6 @@ bash quickstart.sh \
--retain-inventory \
--config $WORKSPACE/config/general_config/$CONFIG.yml \
--tags all \
--release ${CI_ENV:+$CI_ENV/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
--release ${CI_ENV:+$CI_ENV/}${DISTRO_PATH:+$DISTRO_PATH/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
--playbook scale_nodes_verify.yml \
$VIRTHOST

View File

@ -11,6 +11,7 @@
set -eux
: ${OPT_ADDITIONAL_PARAMETERS:=""}
: ${DISTRO_PATH:=""}
RELEASE=$1
HW_ENV_DIR=$2
@ -32,6 +33,6 @@ bash quickstart.sh \
--extra-vars undercloud_instackenv_template=$WORKSPACE/$HW_ENV_DIR/instackenv.json \
--extra-vars network_environment_file=$WORKSPACE/$HW_ENV_DIR/network_configs/$NETWORK_ISOLATION/${NETWORK_ISOLATION}.yml \
--extra-vars nic_configs_dir=$WORKSPACE/$HW_ENV_DIR/network_configs/$NETWORK_ISOLATION/nic_configs/ \
--release ${CI_ENV:+$CI_ENV/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
--release ${CI_ENV:+$CI_ENV/}${DISTRO_PATH:+$DISTRO_PATH/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
$OPT_ADDITIONAL_PARAMETERS \
$VIRTHOST

View File

@ -8,6 +8,7 @@ set -eux
: ${OPT_ADDITIONAL_PARAMETERS:=""}
: ${WORKSPACE:=$HOME/.quickstart}
: ${VIRTHOST:=127.0.0.1}
: ${DISTRO_PATH:=""}
RELEASE=${1:-master-tripleo-ci}
# unused variable in script, kept for consistency
@ -70,7 +71,7 @@ case "$JOB_TYPE" in
--playbook build-test-packages.yml \
--tags all \
--teardown all \
--release ${CI_ENV:+$CI_ENV/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
--release ${CI_ENV:+$CI_ENV/}${DISTRO_PATH:+$DISTRO_PATH/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
$OPT_ADDITIONAL_PARAMETERS \
$VIRTHOST
# skip provisioning and run the gate using the previously built RPMs
@ -83,7 +84,7 @@ case "$JOB_TYPE" in
--skip-tags provision \
--tags all \
--teardown none \
--release ${CI_ENV:+$CI_ENV/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
--release ${CI_ENV:+$CI_ENV/}${DISTRO_PATH:+$DISTRO_PATH/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
$OPT_ADDITIONAL_PARAMETERS \
$VIRTHOST
;;
@ -97,7 +98,7 @@ case "$JOB_TYPE" in
--playbook build-test-packages.yml \
--tags all \
--teardown all \
--release ${CI_ENV:+$CI_ENV/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
--release ${CI_ENV:+$CI_ENV/}${DISTRO_PATH:+$DISTRO_PATH/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
$OPT_ADDITIONAL_PARAMETERS \
$VIRTHOST
@ -111,7 +112,7 @@ case "$JOB_TYPE" in
--tags all \
--teardown none \
--playbook quickstart-extras-standalone.yml \
--release ${CI_ENV:+$CI_ENV/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
--release ${CI_ENV:+$CI_ENV/}${DISTRO_PATH:+$DISTRO_PATH/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
$OPT_ADDITIONAL_PARAMETERS \
$VIRTHOST
;;
@ -124,7 +125,7 @@ case "$JOB_TYPE" in
--playbook build-test-packages.yml \
--tags all \
--teardown all \
--release ${CI_ENV:+$CI_ENV/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
--release ${CI_ENV:+$CI_ENV/}${DISTRO_PATH:+$DISTRO_PATH/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
$OPT_ADDITIONAL_PARAMETERS \
$VIRTHOST
@ -149,7 +150,7 @@ case "$JOB_TYPE" in
--config $WORKSPACE/config/general_config/$CONFIG.yml \
--working-dir $WORKSPACE/ \
--no-clone \
--release ${CI_ENV:+$CI_ENV/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
--release ${CI_ENV:+$CI_ENV/}${DISTRO_PATH:+$DISTRO_PATH/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
$OPT_ADDITIONAL_PARAMETERS \
$VIRTHOST
esac

View File

@ -10,6 +10,8 @@ BUILD_SYS=$2
CONFIG=$3
JOB_TYPE=$4
: ${DISTRO_PATH:=""}
# These are set here to make it possible to locally reproduce the promote
# image building job in the same way as the other jobs.
PUBLISH=${PUBLISH:-"false"}
@ -45,5 +47,5 @@ bash quickstart.sh \
--extra-vars artib_image_stage_location="$REL_TYPE" \
--bootstrap \
--no-clone \
--release ${CI_ENV:+$CI_ENV/}$RELEASE \
--release ${CI_ENV:+$CI_ENV/}${DISTRO_PATH:+$DISTRO_PATH/}$RELEASE \
$VIRTHOST

View File

@ -2,6 +2,7 @@
# functionality for quickstart and quickstart-extras
: ${OPT_ADDITIONAL_PARAMETERS:=""}
: ${DISTRO_PATH:=""}
# preparation steps to run with the gated changes
if [ "$JOB_TYPE" = "gate" ] || \
@ -18,7 +19,7 @@ if [ "$JOB_TYPE" = "gate" ] || \
--no-clone \
--bootstrap \
--playbook gate-quickstart.yml \
--release ${CI_ENV:+$CI_ENV/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
--release ${CI_ENV:+$CI_ENV/}${DISTRO_PATH:+$DISTRO_PATH/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
$OPT_ADDITIONAL_PARAMETERS \
$VIRTHOST
fi

View File

@ -13,6 +13,8 @@ HW_ENV_DIR=$6
NETWORK_ISOLATION=$7
CONFIG=$8
: ${DISTRO_PATH:=""}
# (trown) This is so that we ensure separate ssh sockets for
# concurrent jobs. Without this, two jobs running in parallel
# would try to use the same undercloud-stack socket.
@ -38,5 +40,5 @@ bash quickstart.sh \
--extra-vars undercloud_instackenv_template=$WORKSPACE/$HW_ENV_DIR/instackenv.json \
--extra-vars network_environment_file=$WORKSPACE/$HW_ENV_DIR/network_configs/$NETWORK_ISOLATION/$NETWORK_ISOLATION.yml \
--extra-vars nic_configs_dir=$WORKSPACE/$HW_ENV_DIR/network_configs/$NETWORK_ISOLATION/nic_configs/ \
--release ${CI_ENV:+$CI_ENV/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
--release ${CI_ENV:+$CI_ENV/}${DISTRO_PATH:+$DISTRO_PATH/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
$VIRTHOST

View File

@ -13,6 +13,7 @@ MAJOR_UPGRADE=$6
PACEMAKER=$7
TARGET_VERSION=$8
: ${DISTRO_PATH:=""}
if [ "$JOB_TYPE" = "gate" ] || [ "$JOB_TYPE" = "periodic" ]; then
unset REL_TYPE
@ -42,5 +43,5 @@ bash quickstart.sh \
--tags all \
--teardown all \
--playbook upgrade.yml \
--release ${CI_ENV:+$CI_ENV/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
--release ${CI_ENV:+$CI_ENV/}${DISTRO_PATH:+$DISTRO_PATH/}$RELEASE${REL_TYPE:+-$REL_TYPE} \
$VIRTHOST

View File

@ -0,0 +1,173 @@
release: master
distro_ver: centos9
dlrn_hash_tag: current-tripleo
docker_image_tag: "{{ dlrn_hash|default(dlrn_hash_tag) }}"
dlrn_baseurl: "https://trunk.rdoproject.org/{{ distro_ver }}-{{ release }}"
overcloud_image_url: "https://images.rdoproject.org/{{ distro_ver }}/{{ release }}/rdo_trunk/{{ dlrn_hash|default(dlrn_hash_tag) }}/overcloud-full.tar"
ipa_image_url: "https://images.rdoproject.org/{{ distro_ver }}/{{ release }}/rdo_trunk/{{ dlrn_hash|default(dlrn_hash_tag) }}/ironic-python-agent.tar"
docker_registry_host: trunk.registry.rdoproject.org
docker_registry_namespace: tripleomastercentos9
overcloud_as_undercloud: true
update_images: true
images:
- name: overcloud-full
url: "{{ overcloud_image_url }}"
type: tar
- name: ipa_images
url: "{{ ipa_image_url }}"
type: tar
repo_cmd_before: |
sudo rm -rf /etc/yum.repos.d/delorean*;
sudo rm -rf /etc/yum.repos.d/*.rpmsave;
sudo rm -rf /etc/yum.repos.d/epel*;
sudo dnf clean all;
sudo dnf config-manager --disable "*" || true;
# In https://review.opendev.org/c/765834 a release specific gating-repo is created.
# The release specifc gating repo is copied to gating.repo for consistency across ci
# The original file is backed up for logging purposes. Upgrade jobs will run with
# two releases.
sudo cp -f /etc/yum.repos.d/gating-repo-{{ release }}.repo /etc/yum.repos.d/gating.repo || true;
sudo sed -i -e "s/gating-repo-{{ release }}/gating-repo/" /etc/yum.repos.d/gating.repo || true;
sudo mv /etc/yum.repos.d/gating-repo-{{ release }}.repo /etc/yum.repos.d/gating-repo-{{ release }}.repo_previous || true;
sudo dnf config-manager --enable gating-repo || true;
if [ -e /etc/ci/mirror_info.sh ]; then
source /etc/ci/mirror_info.sh
else
# Otherwise, fallback to official mirrors provided by CentOS.
export NODEPOOL_CENTOS_MIRROR={{ ansible_env['NODEPOOL_CENTOS_MIRROR']|default('http://mirror.stream.centos.org', true) }}
export NODEPOOL_RDO_PROXY=https://trunk.rdoproject.org
fi
{% if dlrn_hash_path_newest is defined and dlrn_hash_path_newest %}
export DLRN_PATH_TAG_NEWEST="current/{{ dlrn_hash_path_newest }}"
{% elif dlrn_hash_tag_newest is match("^[a-zA-Z0-9]{32}$") %}
export DLRN_PATH_TAG_NEWEST="current/{{ dlrn_hash_tag_newest[:2] }}/{{ dlrn_hash_tag_newest[2:4] }}/{{ dlrn_hash_tag_newest }}"
{% else %}
export DLRN_PATH_TAG_NEWEST="{{ dlrn_hash_tag_newest }}"
{% endif %}
{% if dlrn_hash_path is defined and dlrn_hash_path %}
export DLRN_PATH_TAG="{{ promote_source }}/{{ dlrn_hash_path }}"
{% elif dlrn_hash_tag is match("^[a-zA-Z0-9]{32}$") %}
export DLRN_PATH_TAG="{{ promote_source }}/{{ dlrn_hash_tag[:2] }}/{{ dlrn_hash_tag[2:4] }}/{{ dlrn_hash_tag }}"
{% else %}
export DLRN_PATH_TAG="{{ dlrn_hash_tag }}"
{% endif %}
rdo_dlrn=`curl --silent https://trunk.rdoproject.org/{{ distro_ver }}-{{ release }}/${DLRN_PATH_TAG_NEWEST}/delorean.repo -S 2>>~/dlrn_repo_curl_errors.log | grep baseurl | grep "component/tripleo" | cut -d= -f2`
if [[ -z "$rdo_dlrn" ]]; then
echo "Failed to parse dlrn hash"
exit 1
fi
export RDO_DLRN_REPO=${rdo_dlrn/https:\/\/trunk.rdoproject.org/$NODEPOOL_RDO_PROXY}
# Save environment variables, to be used afterwards
echo "export NODEPOOL_CENTOS_MIRROR=${NODEPOOL_CENTOS_MIRROR}" >> {{ repo_setup_env_filepath }}
echo "export NODEPOOL_RDO_PROXY=${NODEPOOL_RDO_PROXY}" >> {{ repo_setup_env_filepath }}
echo "export RDO_DLRN_REPO=${RDO_DLRN_REPO}" >> {{ repo_setup_env_filepath }}
echo "export DLRN_PATH_TAG=${DLRN_PATH_TAG}" >> {{ repo_setup_env_filepath }}
repos:
- type: file
filename: delorean.repo
down_url: "https://trunk.rdoproject.org/{{ distro_ver }}-{{ release }}/{{ dlrn_hash_tag }}/delorean.repo"
# name of delorean-tripleo-component-current? naming is hard
- type: generic
reponame: delorean-current
filename: delorean-current.repo
baseurl: $RDO_DLRN_REPO
priority: 10
includepkgs:
- ansible-role-container-registry
- ansible-role-tripleo*
- ansible-tripleo-ipsec
- instack
- instack-undercloud
- openstack-tripleo-*
- os-apply-config
- os-collect-config
- os-net-config
- os-refresh-config
- puppet-oslo
- puppet-cinder
- puppet-heat
- puppet-neutron
- puppet-nova
- puppet-glance
- puppet-horizon
- puppet-ironic
- puppet-keystone
- puppet-openstacklib
- puppet-placement
- puppet-swift
- puppet-tripleo
- python*-tripleo*
- tripleo-ansible
- ansible-config_template
- tripleo-operator-ansible
- type: file
filename: delorean-deps.repo
down_url: https://trunk.rdoproject.org/{{ distro_ver }}-{{ release }}/delorean-deps.repo
- type: generic
reponame: quickstart-centos-base
filename: quickstart-centos-base.repo
baseurl: ${NODEPOOL_CENTOS_MIRROR}/9-stream/BaseOS/x86_64/os/
- type: generic
reponame: quickstart-centos-appstreams
filename: quickstart-centos-appstreams.repo
baseurl: ${NODEPOOL_CENTOS_MIRROR}/9-stream/AppStream/x86_64/os/
exclude:
- libvirt*
- python*libvirt*
- qemu*
- type: generic
reponame: quickstart-centos-crb
filename: quickstart-centos-crb.repo
baseurl: ${NODEPOOL_CENTOS_MIRROR}/9-stream/PowerTools/x86_64/os/
- type: generic
reponame: quickstart-centos-highavailability
filename: quickstart-centos-highavailability.repo
baseurl: ${NODEPOOL_CENTOS_MIRROR}/9-stream/HighAvailability/x86_64/os/
repo_cmd_after: |
# Replace trunk.rdoproject.org to nodepool proxy
sudo sed -i -e "s|https://trunk.rdoproject.org|$NODEPOOL_RDO_PROXY|g" /etc/yum.repos.d/delorean.repo
sudo sed -i -e "s|https://trunk.rdoproject.org|$NODEPOOL_RDO_PROXY|g" /etc/yum.repos.d/delorean-master-deps.repo
# note potential name change - FIX ME
sudo sed -i -e "s|https://trunk.rdoproject.org|$NODEPOOL_RDO_PROXY|g" /etc/yum.repos.d/delorean-current.repo
sudo sed -i -e "s|priority=1|priority=20|g" /etc/yum.repos.d/delorean.repo
{% if not enable_cs9_opstools_repo|default(false)|bool %}sudo dnf config-manager --save --setopt centos9-opstools.enabled=0;
{%endif %}
# sudo dnf config-manager --disable rdo-qemu-ev;
sudo rpm -e epel-release || true;
sudo dnf remove -y rdo-release centos-release-ceph-* centos-release-openstack-* || true;
sudo rm -rf /etc/yum.repos.d/CentOS-OpenStack-*.repo /etc/yum.repos.d/CentOS-Ceph-*.repo;
# Disable delorean repo if a similar component repo exists
{% if job is defined and job.component is defined %}
if [ -f "/etc/yum.repos.d/{{ job.component }}-component.repo" ] && sudo cat /etc/yum.repos.d/{{ job.component }}-component.repo | grep 'enabled=1'; then
dnf config-manager --disable delorean-component-{{ job.component }};
fi
{% endif %}
sudo rm -rf /etc/yum.repos.d/*.rpmsave;
sudo dnf repolist;
{% if repo_setup_run_update|default(true)|bool %}
sudo dnf update -y
{% endif %}
undercloud_rpm_dependencies: >-
python3-tripleoclient
tripleo-operator-ansible
# baseos settings
baseos_undercloud_image_url: https://cloud.centos.org/centos/9-stream/x86_64/images/CentOS-Stream-GenericCloud-9-20211020.0.x86_64.qcow2
baseos_image: centos
baseos_image_type: qcow2
baseos_md5sum: "a42ef58319a546d038ea716dc693dda6 CentOS-Stream-GenericCloud-9-20211020.0.x86_64.qcow2"