diff --git a/playbooks/multinode-overcloud-prep.yml b/playbooks/multinode-overcloud-prep.yml index 2146cbb99..ee0eceebe 100644 --- a/playbooks/multinode-overcloud-prep.yml +++ b/playbooks/multinode-overcloud-prep.yml @@ -33,6 +33,7 @@ - overcloud-prep-containers roles: - role: overcloud-prep-containers + use_overcloud_mixed_upgrade: "{{mixed_upgrade|default(false)}}" when: containerized_overcloud|bool - name: Run tripleo-validations pre-deployment tests diff --git a/playbooks/multinode-overcloud-upgrade-new.yml b/playbooks/multinode-overcloud-upgrade-new.yml index 1e56302c5..196249c11 100644 --- a/playbooks/multinode-overcloud-upgrade-new.yml +++ b/playbooks/multinode-overcloud-upgrade-new.yml @@ -23,6 +23,12 @@ - role: overcloud-prep-containers # This need the new repo in place. update_containers: true + # This enable us to run it even on non-containerized overcloud deployment + # ie, ffu upgrade where deployment is on newton. + containerized_overcloud: "{{prep_container_upgrade_run|default(false)}}" + # Do not overwrite the deployment log if any. + overcloud_prep_containers_log: "upgrade_overcloud_prep_containers.log" + overcloud_prep_containers_script: "upgrade_overcloud_prep_containers.sh" when: containerized_overcloud_upgrade|bool #FIXME(chem): tech-debt LP#1749740 diff --git a/roles/overcloud-prep-containers/README.md b/roles/overcloud-prep-containers/README.md index 69318b25b..316ed627d 100644 --- a/roles/overcloud-prep-containers/README.md +++ b/roles/overcloud-prep-containers/README.md @@ -33,7 +33,10 @@ overcloud-prep-containers variables * delete_docker_cache: -- whether to stop Docker, wipe all the Docker data, and restart * update_containers: -- whether to run container-check to update containers * container_process_count: <8> -- number of concurrent processes to run when updating containers - +* use_overcloud_mixed_upgrade: - when true, we use overcloud release tag and build_id for + container images in mixed upgrade context. +* prep_container_upgrade_run: - in mixed version upgrade offer a flag to have container + deployed during upgrade. overcloud-prep-config variables ------------------------------- diff --git a/roles/overcloud-prep-containers/defaults/main.yml b/roles/overcloud-prep-containers/defaults/main.yml index 7d253e6e4..a0fe717ac 100644 --- a/roles/overcloud-prep-containers/defaults/main.yml +++ b/roles/overcloud-prep-containers/defaults/main.yml @@ -7,3 +7,5 @@ overcloud_prep_containers_log: "overcloud_prep_containers.log" prepare_service_env_args: -e {{ overcloud_templates_path }}/environments/docker.yaml update_containers: false container_process_count: 8 +use_overcloud_mixed_upgrade: false +prep_container_upgrade_run: false diff --git a/roles/overcloud-prep-containers/templates/overcloud-prep-containers.sh.j2 b/roles/overcloud-prep-containers/templates/overcloud-prep-containers.sh.j2 index d2b510047..6566e1e2c 100644 --- a/roles/overcloud-prep-containers/templates/overcloud-prep-containers.sh.j2 +++ b/roles/overcloud-prep-containers/templates/overcloud-prep-containers.sh.j2 @@ -13,6 +13,7 @@ set -eux ## ------------------------ ## * Add an additional insecure registry if needed +## :: {% if additional_insecure_registry|bool %} if egrep -q "^INSECURE_REGISTRY=.*{{docker_registry_host}}.*" /etc/sysconfig/docker; then echo "/etc/sysconfig/docker contains the correct settings" @@ -25,9 +26,21 @@ fi ## * get build id ## :: +{% set docker_registry_namespace_used = docker_registry_namespace %} {% if get_build_command is defined %} BUILD_ID={{ get_build_command }} + +## a) Checking if we are deploying a N-1 (relative to release) docker images +## So that we use the the N-1 BUILD_ID and the N-1 docker_registry_namespace +## for deployment. This is used in mixed upgrade deployment. +## :: +{% elif use_overcloud_mixed_upgrade|default(false)|bool %} +BUILD_ID={{ overcloud_docker_image_tag }} +{% set docker_registry_namespace_used = overcloud_docker_registry_namespace %} {% else %} + +## b) We are using the release version of the docker images. +## :: BUILD_ID={{ docker_image_tag }} {% endif %} @@ -39,7 +52,7 @@ PREPARE_ARGS=${PREPARE_ARGS:-"{{ prepare_service_env_args }}"} openstack overcloud container image prepare \ --images-file {{ working_dir }}/overcloud_containers.yaml \ ${PREPARE_ARGS} \ - --namespace {{ docker_registry_host }}/{{ docker_registry_namespace }} \ + --namespace {{ docker_registry_host }}/{{ docker_registry_namespace_used }} \ --tag $BUILD_ID \ {% if docker_prep_prefix is defined %} --prefix {{ docker_prep_prefix}} \ @@ -67,7 +80,7 @@ openstack overcloud container image prepare \ --images-file {{ working_dir }}/overcloud_containers.yaml \ --env-file {{ working_dir }}/containers-default-parameters.yaml \ ${PREPARE_ARGS} \ - --namespace {{ local_docker_registry_host }}:8787/{{ docker_registry_namespace }} \ + --namespace {{ local_docker_registry_host }}:8787/{{ docker_registry_namespace_used }} \ --set ceph_namespace={{ local_docker_registry_host }}:8787/ceph \ {% if docker_prep_prefix is defined %} --prefix={{ docker_prep_prefix}} \ @@ -83,7 +96,7 @@ openstack overcloud container image prepare \ {% endif %} --tag $BUILD_ID -{% if update_containers|bool %} +{% if update_containers|bool and not use_overcloud_mixed_upgrade|default(false)|bool %} # See https://github.com/imain/container-check for script and documentation ## * rename the base-os yum repos to disable them. This will speed up the update