Merge "Added support for CentOS stream 9 container build"

This commit is contained in:
Zuul 2021-10-12 15:57:36 +00:00 committed by Gerrit Code Review
commit 5e294fc097
10 changed files with 145 additions and 27 deletions

View File

@ -10,6 +10,13 @@
for backwards compatibility purposes. The variables provided by this
file are now available through Ansible under hostvars[$HOST]['nodepool'].
- name: Create /etc/nodepool it if does not exist
become: true
file:
path: /etc/nodepool
state: directory
mode: '0777'
- name: Create /etc/nodepool/provider file
copy:
content: |

View File

@ -19,31 +19,36 @@
when:
- ansible_pkg_mgr == "yum"
- name: Include tripleo-repos
include_role:
name: tripleo-repos
vars:
override_repos: "{{ buildcontainers_override_repos | default('') }}"
tripleo_repos_repository: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/tripleo-repos'].src_dir }}"
- name: Container Build for 8 specific distros
when: ansible_distribution_major_version is version(8, '<=')
block:
- name: Include tripleo-repos
include_role:
name: tripleo-repos
vars:
override_repos: "{{ buildcontainers_override_repos | default('') }}"
tripleo_repos_repository: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/tripleo-repos'].src_dir }}"
# TODO: Move this setting to tripleo-repos yum module
- name: Enable supported container tools version
become: true
shell: |
{{ ansible_pkg_mgr }} module disable container-tools:rhel8 -y;
{{ ansible_pkg_mgr }} module enable container-tools:3.0 -y;
{{ ansible_pkg_mgr }} clean metadata
when:
- ansible_distribution_major_version|int >= 8
- ansible_distribution_major_version|int < 9
# TODO: Move this setting to tripleo-repos yum module
- name: Enable supported container tools version
become: true
shell: |
{{ ansible_pkg_mgr }} module disable container-tools:rhel8 -y;
{{ ansible_pkg_mgr }} module enable container-tools:3.0 -y;
{{ ansible_pkg_mgr }} clean metadata
when: ansible_distribution_major_version is version(8, '==')
- name: Include bindep role
include_role:
name: bindep
vars:
bindep_dir: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/python-tripleoclient'].src_dir }}"
- name: Include bindep role
include_role:
name: bindep
vars:
bindep_dir: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/python-tripleoclient'].src_dir }}"
- name: Run build containers pre tasks
include_role:
name: build-containers
tasks_from: pre
- name: Run build containers pre tasks
include_role:
name: build-containers
tasks_from: pre
- name: Container Build for 9 specific distros
when: ansible_distribution_major_version is version(9, '==')
include: pre9.yaml

View File

@ -0,0 +1,41 @@
---
# It contains RHEL9 specific tasks
- name: get extra repos delorean and deps
become: true
shell:
cmd: |
dnf config-manager --add-repo {{ item }}
loop:
- "https://trunk.rdoproject.org/centos9-master/{{ promote_source | default('consistent') }}/delorean.repo"
- https://trunk.rdoproject.org/centos9-master/delorean-deps.repo
changed_when: true
- name: Enable supported container tools version
become: true
shell: |
{{ ansible_pkg_mgr }} module switch-to container-tools:latest -y;
{{ ansible_pkg_mgr }} clean metadata
- name: Install vitualenv
become: true
package:
name: python3-virtualenv
state: latest
- name: Include tripleo-repos
include_role:
name: tripleo-repos
vars:
override_repos: "{{ buildcontainers_override_repos | default('') }}"
tripleo_repos_repository: "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/tripleo-repos'].src_dir }}"
- name: Install python3-tripleoclient
become: true
package:
name: python3-tripleoclient
state: latest
- name: Run build containers pre tasks
include_role:
name: build-containers
tasks_from: pre

View File

@ -45,6 +45,18 @@
option: registries
value:
- "localhost:{{ push_registry_port | default('5001') }}"
when: ansible_distribution_major_version is version(8, '==')
- name: Configure unqualified-search-registries
lineinfile:
path: /etc/containers/registries.conf
regexp: '^unqualified-search-registries'
line: "unqualified-search-registries = ['{{ push_registry }}',
'registry.access.redhat.com',
'registry.fedoraproject.org',
'registry.centos.org',
'docker.io']"
when: ansible_distribution_major_version is version(9, '==')
- name: Setup repo web service
become: true
@ -77,9 +89,11 @@
set -ex
find /etc/yum.repos.d/ -name delorean\* -o -name quickstart-centos\* | xargs -I {} cp {} /var/www/html/
# TODO(chandan): Fix No chain/target/match by that name issue for EL9
- name: Add http iptables rules from containers
command: iptables -I openstack-INPUT 1 -p tcp --dport 80 -s 172.17.0.0/16 -j ACCEPT
become: true
when: ansible_distribution_major_version is version(9, '<')
- name: Setup tripleo registry
when:

View File

@ -87,5 +87,9 @@ openstack tripleo container image build \
{% for item in volume_mounts %}
--volume {{ item }} \
{% endfor %}
{% endif %}
{% if branch not in ["train", "ussuri", "victoria", "wallaby"] %}
--tcib-extra tcib_release={{ ansible_distribution_major_version }} \
--tcib-extra tcib_python_version={{ (ansible_distribution_major_version is version('9', '<')) | ternary ('3.6', '3.9') }} \
{% endif %}
--debug

View File

@ -0,0 +1,24 @@
---
tripleo_deps_from_package:
- "python3-tripleoclient"
upper_constraints_items:
- tripleo-common
- python-tripleoclient
- tripleo-ansible
requirements_items:
- openstack-tripleo-common
- python-tripleoclient
- tripleo-ansible
source_items:
- "file://{{ openstack_git_root }}/{% if zuul_internal is defined %}openstack-{% endif %}tripleo-common"
- "file://{{ openstack_git_root }}/python-tripleoclient"
- "file://{{ openstack_git_root }}/tripleo-ansible"
- decorator
volume_mounts:
- "/etc/yum.repos.d:/etc/distro.repos.d:z"
- "/etc/pki/rpm-gpg:/etc/pki/rpm-gpg:z"
- "/etc/dnf/vars:/etc/dnf/vars:z"

View File

@ -9,6 +9,7 @@ kolla_rhel8_patch:
virtualenv_python:
7: python
8: python3
9: python3
# Current implementation assumes that any branch name not mentioned here
# would default to the excludes defined on master branch.

View File

@ -22,12 +22,12 @@
- name: Assure src folder has safe permissions
# Workaround for https://bugs.launchpad.net/tripleo/+bug/1807703
file:
path: /home/zuul/src/
path: "{{ ansible_user_dir }}/src/"
state: directory
mode: u=rwX,g=rX,o=rX
recurse: true
- name: "set zull_dump"
- name: "set zuul_dump"
set_fact:
zuul_dump: "{{ {'zuul': zuul} }}"

View File

@ -6,6 +6,10 @@ centos_mirror_host: "http://mirror.centos.org"
fedora_mirror_host: "https://mirrors.fedoraproject.org"
rdo_mirror_host: "https://trunk.rdoproject.org"
override_repos: ""
# Url for the CentOS Compose for tripleo yum config module
compose_url: "https://composes.stream.centos.org/production/{{ compose_id }}/compose"
# Particular compose id to use
compose_id: "latest-CentOS-Stream"
rpm_packages:
- git
- python3-libselinux

View File

@ -122,10 +122,28 @@
--no-stream
fi
register: result
when: ansible_distribution_major_version is version(8, '<=')
changed_when: "'Installed:' in result.stdout_lines"
args:
warn: false
- name: Install repos on EL9
become: true
shell: |
set -exo pipefail
source {{ workspace }}/venv/bin/activate
rm -fr /etc/yum.repos.d/centos9.repo
tripleo-yum-config enable-compose-repos \
--disable-all-conflicting \
--release centos-stream-9 \
--compose-url {{ compose_url }}
register: result
when: ansible_distribution_major_version is version(8, '>')
- name: Print out the stdout of result
debug:
msg: "{{ result }}"
- name: Update all installed packages after new repos are setup # noqa package-latest
become: true
package: