tripleo-quickstart/config/release/tripleo-ci/CentOS-9/master.yml

240 lines
9.7 KiB
YAML

# name and tags
devmode: true
overcloud_as_undercloud: true
release: master
distro_ver: centos9
distro_deps_repo_name: deps
dlrn_hash_tag: "{{ job.provider_dlrn_hash_tag_branch[release]|default('current-tripleo') }}"
dlrn_hash_tag_newest: current
validate_on: rdo
# job.build_container_images is defined in zuul as a
# direct var. adding build_container_images as tqe
# var so that we can turn this on/off per release w/o
# changing zuul and breaking jobs via inheritance.
docker_registry_host: >-
{% if job is defined and
job.build_container_images is defined and
job.build_container_images|default(false)|bool or
build_container_images|default(false)|bool -%}
127.0.0.1:5001
{%- elif job.consumer_job | default(false) | bool -%}
{{ job.registry_ip_address_branch[release] }}:5001
{%- else -%}
{{ job.alt_container_registry|default('quay.io') }}
{%- endif -%}
docker_registry_namespace: tripleomastercentos9
docker_image_tag: "{{ dlrn_hash|default(dlrn_hash_tag) }}"
docker_openshift_tag: v3.11.0
promote_source: current-tripleo
# images
overcloud_image: >-
{% if whole_disk_images|bool -%}
overcloud-hardened-uefi-full
{%- else -%}
overcloud-full
{%- endif -%}
overcloud_image_type: >-
{% if whole_disk_images|bool -%}
qcow2
{%- else -%}
tar
{%- endif -%}
images:
- name: "{{ overcloud_image }}"
url: "{{ overcloud_image_url }}"
type: "{{ overcloud_image_type }}"
- name: ipa_images
url: "{{ ipa_image_url }}"
type: tar
dlrn_baseurl: "https://trunk.rdoproject.org/{{ distro_ver }}-{{ release }}"
overcloud_image_url: "https://images.rdoproject.org/{{ distro_ver }}/{{ release }}/rdo_trunk/{{ promote_source }}/{{ overcloud_image }}.{{ overcloud_image_type }}"
ipa_image_url: "https://images.rdoproject.org/{{ distro_ver }}/{{ release }}/rdo_trunk/{{ promote_source }}/ironic-python-agent.tar"
# NOTE(dviroel): centos9-opstools repo is needed for building
# collectd containers, otherwise keep the current value.
enable_cs9_opstools_repo: >-
{% if job is defined and
job.build_container_images is defined and
job.build_container_images|default(false)|bool or
build_container_images|default(false)|bool -%}
{{ true|bool }}
{%- else -%}
{{ enable_opstools_repo|default(false)|bool }}
{%- endif -%}
# repo setup
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:
# RDO repos
- type: file
filename: delorean.repo
down_url: "${NODEPOOL_RDO_PROXY}/{{ distro_ver }}-{{ release }}/${DLRN_PATH_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-role-chrony
- 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-master-deps.repo
down_url: "${NODEPOOL_RDO_PROXY}/{{ distro_ver }}-{{ release }}/delorean-deps.repo"
# CentOS related repos
- 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/
# Note(chandankumar): Exclude containers-common-1-44.* due to
# https://bugs.launchpad.net/tripleo/+bug/1988500
exclude:
- containers-common-1-44.*
# centos9 the equivalent to powertools is CRB
- type: generic
reponame: quickstart-centos-crb
filename: quickstart-centos-crb.repo
baseurl: ${NODEPOOL_CENTOS_MIRROR}/9-stream/CRB/x86_64/os/
- type: generic
reponame: quickstart-centos-highavailability
filename: quickstart-centos-highavailability.repo
baseurl: ${NODEPOOL_CENTOS_MIRROR}/9-stream/HighAvailability/x86_64/os/
- type: generic
reponame: quickstart-centos-ceph-quincy
filename: quickstart-centos-ceph-quincy.repo
baseurl: ${NODEPOOL_CENTOS_MIRROR}/SIGs/9-stream/storage/x86_64/ceph-quincy/
exclude:
- ansible*
# Extras will be available once c9 get's released as this contains release rpms for SIG.
# - type: generic
# reponame: quickstart-centos-extras
# filename: quickstart-centos-extras.repo
# baseurl: ${NODEPOOL_CENTOS_MIRROR}/8-stream/extras/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
# Replace mirror.stream.centos.org to nodepool proxy
sudo sed -i -e "s|http://mirror.stream.centos.org|$NODEPOOL_CENTOS_MIRROR|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 %}
# Downgrade containers-common due to https://bugs.launchpad.net/tripleo/+bug/1988500
if [ -n "$(rpm -qa containers-common)" ];then sudo dnf -y downgrade containers-common-1-40.el9; fi
sudo rm -rf /etc/yum.repos.d/*.rpmsave;
# Save Compose-ID info
sudo curl -s -o /etc/yum.repos.d/COMPOSE_ID ${NODEPOOL_CENTOS_MIRROR}/9-stream/COMPOSE_ID
sudo dnf repolist;
sudo dnf module list;
sudo dnf clean metadata
{% if repo_setup_run_update|default(true)|bool %}
# FIXME(chandan): Exclude kernel updates due to
# https://bugs.launchpad.net/tripleo/+bug/1987632
sudo dnf update --exclude=kernel* -y
{% endif %}
undercloud_rpm_dependencies: >-
python3-tripleoclient
tripleo-operator-ansible