Add support for role specific container prep to undercloud-deploy

This adds support for the per-role container image prepare params
into the undercloud-deploy role. See [1] for other related patches.

The undercloud-mixed-os play is changed to resolve the rhel/centos8
ci-testing hash for periodic jobs before undercloud-deploy for the
multi container prep.

Vars are being set with [2] but the single deploy workflow will
not be enabled until [3] merges.

[1] https://review.opendev.org/q/topic:role-image-prepare-stable/wallaby
[2] https://review.opendev.org/c/openstack/tripleo-quickstart/+/868208
[3] https://review.opendev.org/c/openstack/tripleo-ci/+/868207

Change-Id: Ieaad3d17bb9c63f7042f0454d81dffada98c5947
This commit is contained in:
Marios Andreou 2022-12-16 12:10:29 +02:00
parent 2f2f42f8f6
commit d25bfbfad9
4 changed files with 275 additions and 2 deletions

View File

@ -5,6 +5,7 @@
environment:
TRIPLEO_ROOT: "{{ lookup('env','TRIPLEO_ROOT') }}"
tasks:
# TODO(marios) remove this task after we merge tripleo-ci/+/868207
- name: Deploy the overcloud
include_role:
name: overcloud-deploy
@ -14,6 +15,18 @@
extra_args: " --disable-protected-resource-types --baremetal-deployment "
tags:
- overcloud-deploy
when: registry_distro_lower is not defined
- name: Deploy the overcloud
include_role:
name: overcloud-deploy
vars:
overcloud_roles: "{{ overcloud_roles_mixed }}"
topology_map: "{{ topology_map_mixed }}"
extra_args: " --disable-protected-resource-types --baremetal-deployment "
tags:
- overcloud-deploy
when: registry_distro_lower is defined
- name: Check the overcloud_deployment_result.json if this is CI job
tags:

View File

@ -52,9 +52,35 @@
- build
- name: Install the undercloud
tags: undercloud-install
hosts: undercloud
roles:
- undercloud-deploy
tasks:
- name: get hash set fact mixed_os_dlrn_hash_8 for periodic jobs (no content provider)
when:
- not job.consumer_job | default(false) | bool
- registry_distro_lower is defined
block:
- include_role:
name: repo-setup
tasks_from: tripleo-get-hash-set-fact.yml
vars:
search_tag: "{{ dlrn_hash_tag }}"
tgh_os_version_override: "{{ (ansible_distribution == 'RedHat') | ternary('rhel', 'centos') }}8"
fact_name: "mixed_os_dlrn_hash_8"
- name: "debug dlrn_hash_tag resolution "
debug:
msg: "d_h_t {{ dlrn_hash_tag }} resolved to mixed_os_dlrn_hash_8 {{ mixed_os_dlrn_hash_8 }} "
- name: set fact mixed_os_dlrn_hash_8 for check/gate jobs (with content provider)
when:
- job.consumer_job | default(false) | bool
- job.provider_dlrn_hash_distro is defined
- registry_distro_lower is defined
set_fact:
mixed_os_dlrn_hash_8: "{{ job.provider_dlrn_hash_distro[registry_distro_lower] }}"
- name: Deploy the undercloud
include_role:
name: undercloud-deploy
- name: Validate the undercloud
hosts: undercloud

View File

@ -172,8 +172,17 @@
when: add_repos_update|length > 0
- name: Create containers-prepare-parameter.yaml
when: registry_distro_lower is not defined
block:
- name: Write containers-prepare-parameter.yaml
template:
src: containers-prepare-parameter.yaml.j2
dest: "{{ working_dir }}/containers-prepare-parameter.yaml"
- name: Create containers-prepare-parameter.yaml
when: registry_distro_lower is defined
block:
- name: Write containers-prepare-parameter.yaml
template:
src: containers-prepare-parameter-mixed-os.yaml.j2
dest: "{{ working_dir }}/containers-prepare-parameter.yaml"

View File

@ -0,0 +1,225 @@
parameter_defaults:
DockerInsecureRegistryAddress:
- {{ local_docker_registry_host }}:8787
{% if build_container_images|default(false)|bool %}
- {{ local_registry_ip }}:{{ local_registry_port }}
{% endif %}
{% if job.consumer_job | default(false) | bool %}
{% if registry_distro_lower is defined and registry_distro_lower | default('') | length > 0 %}
- {{ job.registry_ip_address_distro[registry_distro_lower] }}:{{ local_registry_port }}
{% endif %}
{% if registry_distro is defined and registry_distro | default('') | length > 0 %}
- {{ job.registry_ip_address_distro[registry_distro] }}:{{ local_registry_port }}
{% else %}
- {{ job.registry_ip_address_branch[release] }}:{{ local_registry_port }}
{% endif %}
{% else %}
- quay.io
{% endif %}
{% if undercloud_docker_registry_mirror is defined and undercloud_docker_registry_mirror %}
DockerRegistryMirror: {{ undercloud_docker_registry_mirror }}
{% endif %}
ContainerImagePrepare:
- push_destination: "{{ local_docker_registry_host }}:8787"
{% if update_containers|bool
and not use_overcloud_mixed_upgrade|default(false)|bool
and not job.consumer_job | default(false) | bool
and not build_container_images|default(false)|bool %}
modify_role: tripleo-modify-image
modify_append_tag: "{{ update_containers_append_tag }}"
modify_only_with_source:
- kolla
- tripleo
modify_vars:
tasks_from: yum_update.yml
yum_repos_dir_path: /etc/yum.repos.d
yum_cache: /var/tmp/tripleo-container-image-prepare-cache
update_repo: "{{ update_containers_repo }}"
container_build_tool: buildah
{% endif %}
set:
tag: "{{ container_build_id }}"
{% if job.consumer_job | default(false) | bool %}
{% if registry_distro is defined and registry_distro | default('') | length > 0 %}
namespace: "{{ job.registry_ip_address_distro[registry_distro] }}:{{ local_registry_port }}/{{ docker_registry_namespace_used }}"
{% else %}
namespace: "{{ job.registry_ip_address_branch[release] }}:{{ local_registry_port }}/{{ docker_registry_namespace_used }}"
{% endif %}
{% else %}
namespace: "{{ docker_registry_host }}/{{ docker_registry_namespace_used }}"
{% endif %}
name_prefix: "{{ docker_prep_prefix }}"
name_suffix: "{{ docker_prep_suffix }}"
rhel_containers: "{{ rhel_containers }}"
ceph_namespace: "{{ docker_ceph_namespace }}"
ceph_image: "{{ docker_ceph_image }}"
ceph_tag: "{{ docker_ceph_tag }}"
{% if custom_ceph_alertmanager_image is defined %}
ceph_alertmanager_image: "{{ custom_ceph_alertmanager_image }}"
{% endif %}
{% if custom_ceph_alertmanager_namespace is defined %}
ceph_alertmanager_namespace: "{{ custom_ceph_alertmanager_namespace }}"
{% endif %}
{% if custom_ceph_alertmanager_tag is defined %}
ceph_alertmanager_tag: "{{ custom_ceph_alertmanager_tag }}"
{% endif %}
{% if custom_ceph_grafana_image is defined %}
ceph_grafana_image: "{{ custom_ceph_grafana_image }}"
{% endif %}
{% if custom_ceph_grafana_namespace is defined %}
ceph_grafana_namespace: "{{ custom_ceph_grafana_namespace }}"
{% endif %}
{% if custom_ceph_grafana_tag is defined %}
ceph_grafana_tag: "{{ custom_ceph_grafana_tag }}"
{% endif %}
{% if custom_ceph_node_exporter_image is defined %}
ceph_node_exporter_image: "{{ custom_ceph_node_exporter_image }}"
{% endif %}
{% if custom_ceph_node_exporter_namespace is defined %}
ceph_node_exporter_namespace: "{{ custom_ceph_node_exporter_namespace }}"
{% endif %}
{% if custom_ceph_node_exporter_tag is defined %}
ceph_node_exporter_tag: "{{ custom_ceph_node_exporter_tag }}"
{% endif %}
{% if custom_ceph_prometheus_image is defined %}
ceph_prometheus_image: "{{ custom_ceph_prometheus_image }}"
{% endif %}
{% if custom_ceph_prometheus_namespace is defined %}
ceph_prometheus_namespace: "{{ custom_ceph_prometheus_namespace }}"
{% endif %}
{% if custom_ceph_prometheus_tag is defined %}
ceph_prometheus_tag: "{{ custom_ceph_prometheus_tag }}"
{% endif %}
{% if docker_openshift_namespace is defined %}
openshift_namespace: "{{ docker_openshift_namespace }}"
{% endif %}
{% if docker_openshift_tag is defined %}
openshift_tag: "{{ docker_openshift_tag }}"
{% endif %}
{% if docker_openshift_prefix is defined %}
openshift_prefix: "{{ docker_openshift_prefix }}"
{% endif %}
{% if docker_openshift_cockpit_namespace is defined %}
openshift_cockpit_namespace: "{{ docker_openshift_cockpit_namespace }}"
{% endif %}
{% if docker_openshift_cockpit_image is defined %}
openshift_cockpit_image: "{{ docker_openshift_cockpit_image }}"
{% endif %}
{% if docker_openshift_cockpit_tag is defined %}
openshift_cockpit_tag: "{{ docker_openshift_cockpit_tag }}"
{% endif %}
{% if docker_openshift_etcd_namespace is defined %}
openshift_etcd_namespace: "{{ docker_openshift_etcd_namespace }}"
{% endif %}
{% if docker_openshift_etcd_image is defined %}
openshift_etcd_image: "{{ docker_openshift_etcd_image }}"
{% endif %}
{% if docker_openshift_etcd_tag is defined %}
openshift_etcd_tag: "{{ docker_openshift_etcd_tag }}"
{% endif %}
{% if docker_openshift_gluster_namespace is defined %}
openshift_gluster_namespace: "{{ docker_openshift_gluster_namespace }}"
{% endif %}
{% if docker_openshift_gluster_image is defined %}
openshift_gluster_image: "{{ docker_openshift_gluster_image }}"
{% endif %}
{% if docker_openshift_gluster_block_image is defined %}
openshift_gluster_block_image: "{{ docker_openshift_gluster_block_image }}"
{% endif %}
{% if docker_openshift_gluster_tag is defined %}
openshift_gluster_tag: "{{ docker_openshift_gluster_tag }}"
{% endif %}
{% if docker_openshift_heketi_namespace is defined %}
openshift_heketi_namespace: "{{ docker_openshift_heketi_namespace }}"
{% endif %}
{% if docker_openshift_heketi_image is defined %}
openshift_heketi_image: "{{ docker_openshift_heketi_image }}"
{% endif %}
{% if docker_openshift_heketi_tag is defined %}
openshift_heketi_tag: "{{ docker_openshift_heketi_tag }}"
{% endif %}
{% if docker_openshift_cluster_monitoring_namespace is defined %}
openshift_cluster_monitoring_namespace: "{{ docker_openshift_cluster_monitoring_namespace }}"
{% endif %}
{% if docker_openshift_cluster_monitoring_image is defined %}
openshift_cluster_monitoring_image: "{{ docker_openshift_cluster_monitoring_image }}"
{% endif %}
{% if docker_openshift_cluster_monitoring_tag is defined %}
openshift_cluster_monitoring_tag: "{{ docker_openshift_cluster_monitoring_tag }}"
{% endif %}
{% if docker_openshift_configmap_reload_namespace is defined %}
openshift_configmap_reload_namespace: "{{ docker_openshift_configmap_reload_namespace }}"
{% endif %}
{% if docker_openshift_configmap_reload_image is defined %}
openshift_configmap_reload_image: "{{ docker_openshift_configmap_reload_image }}"
{% endif %}
{% if docker_openshift_configmap_reload_tag is defined %}
openshift_configmap_reload_tag: "{{ docker_openshift_configmap_reload_tag }}"
{% endif %}
{% if docker_openshift_prometheus_operator_namespace is defined %}
openshift_prometheus_operator_namespace: "{{ docker_openshift_prometheus_operator_namespace }}"
{% endif %}
{% if docker_openshift_prometheus_operator_image is defined %}
openshift_prometheus_operator_image: "{{ docker_openshift_prometheus_operator_image }}"
{% endif %}
{% if docker_openshift_prometheus_operator_tag is defined %}
openshift_prometheus_operator_tag: "{{ docker_openshift_prometheus_operator_tag }}"
{% endif %}
{% if docker_openshift_prometheus_config_reload_namespace is defined %}
openshift_prometheus_config_reload_namespace: "{{ docker_openshift_prometheus_config_reload_namespace }}"
{% endif %}
{% if docker_openshift_prometheus_config_reload_image is defined %}
openshift_prometheus_config_reload_image: "{{ docker_openshift_prometheus_config_reload_image }}"
{% endif %}
{% if docker_openshift_prometheus_config_reload_tag is defined %}
openshift_prometheus_config_reload_tag: "{{ docker_openshift_prometheus_config_reload_tag }}"
{% endif %}
{% if docker_openshift_prometheus_tag is defined %}
openshift_prometheus_tag: "{{ docker_openshift_prometheus_tag }}"
{% endif %}
{% if docker_openshift_prometheus_alertmanager_tag is defined %}
openshift_prometheus_alertmanager_tag: "{{ docker_openshift_prometheus_alertmanager_tag }}"
{% endif %}
{% if docker_openshift_prometheus_node_exporter_tag is defined %}
openshift_prometheus_node_exporter_tag: "{{ docker_openshift_prometheus_node_exporter_tag }}"
{% endif %}
{% if docker_openshift_oauth_proxy_tag is defined %}
openshift_oauth_proxy_tag: "{{ docker_openshift_oauth_proxy_tag }}"
{% endif %}
{% if docker_openshift_kube_rbac_proxy_namespace is defined %}
openshift_kube_rbac_proxy_namespace: "{{ docker_openshift_kube_rbac_proxy_namespace }}"
{% endif %}
{% if docker_openshift_kube_rbac_proxy_image is defined %}
openshift_kube_rbac_proxy_image: "{{ docker_openshift_kube_rbac_proxy_image }}"
{% endif %}
{% if docker_openshift_kube_rbac_proxy_tag is defined %}
openshift_kube_rbac_proxy_tag: "{{ docker_openshift_kube_rbac_proxy_tag }}"
{% endif %}
{% if docker_openshift_kube_state_metrics_namespace is defined %}
openshift_kube_state_metrics_namespace: "{{ docker_openshift_kube_state_metrics_namespace }}"
{% endif %}
{% if docker_openshift_kube_state_metrics_image is defined %}
openshift_kube_state_metrics_image: "{{ docker_openshift_kube_state_metrics_image }}"
{% endif %}
{% if docker_openshift_kube_state_metrics_tag is defined %}
openshift_kube_state_metrics_tag: "{{ docker_openshift_kube_state_metrics_tag }}"
{% endif %}
{% if docker_openshift_grafana_namespace is defined %}
openshift_grafana_namespace: "{{ docker_openshift_grafana_namespace }}"
{% endif %}
{% if docker_openshift_grafana_tag is defined %}
openshift_grafana_tag: "{{ docker_openshift_grafana_tag }}"
{% endif %}
ComputeContainerImagePrepare:
- push_destination: "{{ local_docker_registry_host }}:8787"
set:
tag: "{{ mixed_os_dlrn_hash_8 }}"
{% if job.consumer_job | default(false) | bool %}
namespace: "{{ mixed_os_registry_host_8 }}:{{ local_registry_port }}/{{ mixed_os_docker_registry_namespace_8 }}"
{% else %}
namespace: "{{ mixed_os_registry_host_8 }}/{{ mixed_os_docker_registry_namespace_8 }}"
{% endif %}
name_prefix: "{{ docker_prep_prefix }}"
name_suffix: "{{ docker_prep_suffix }}"
rhel_containers: "{{ rhel_containers }}"
ceph_images: false