95 lines
3.3 KiB
Django/Jinja
95 lines
3.3 KiB
Django/Jinja
#!/bin/bash
|
|
set -ux
|
|
|
|
onerror(){
|
|
echo "Command failed"
|
|
# get the failures list
|
|
openstack stack resource list overcloud >> failed_upgrade_list.log || true
|
|
openstack stack failures list --long overcloud >> failed_upgrade.log
|
|
# NOTE(emilien) "openstack overcloud failures" was introduced in Rocky
|
|
openstack overcloud failures >> failed_upgrade.log || true
|
|
exit 1
|
|
}
|
|
trap onerror ERR
|
|
|
|
source {{ upgrade_working_dir }}/stackrc
|
|
|
|
{% if containerized_overcloud_upgrade_pull_images|bool %}
|
|
# pull latest containers to the registry
|
|
openstack overcloud container image prepare \
|
|
--output-images-file {{ upgrade_working_dir }}/overcloud_upgrade_containers.yaml \
|
|
--output-env-file ~/containers-default-parameters.yaml \
|
|
-e {{ tht_dir }}/environments/docker.yaml \
|
|
{{ scenario_args }} \
|
|
{% for item in upgrade_custom_templates %}
|
|
-e {{ item }} \
|
|
{% endfor %}
|
|
--namespace {{ docker_registry_host }}/{{ docker_registry_namespace }} \
|
|
--tag {{ docker_image_tag }} \
|
|
--push-destination {{ local_docker_registry_host }}:8787
|
|
|
|
openstack overcloud container image upload --verbose --config-file {{ working_dir }}/overcloud_upgrade_containers.yaml
|
|
|
|
{% endif %}
|
|
|
|
{% if target_upgrade_version in ['pike'] %}
|
|
|
|
# generate container image parameters to pull from local registry
|
|
openstack overcloud container image prepare \
|
|
--output-env-file ~/containers-default-parameters.yaml \
|
|
-e {{ tht_dir }}/environments/docker.yaml \
|
|
{{ scenario_args }} \
|
|
{% for item in upgrade_custom_templates %}
|
|
-e {{ item }} \
|
|
{% endfor %}
|
|
--namespace {{ local_docker_registry_host }}:8787/{{ docker_registry_namespace }} \
|
|
--tag {{ docker_image_tag }}
|
|
|
|
echo "execute overcloud upgrade"
|
|
openstack overcloud deploy --templates {{ tht_dir }} \
|
|
{{ deploy_args_used }} \
|
|
-e {{ tht_dir }}/environments/docker.yaml \
|
|
{{ scenario_args }} \
|
|
-e {{ tht_dir }}/environments/major-upgrade-composable-steps-docker.yaml \
|
|
-e ~/containers-default-parameters.yaml \
|
|
-e ~/overcloud-repo.yaml \
|
|
{% for item in upgrade_custom_templates %}
|
|
-e {{ item }} \
|
|
{% endfor %}
|
|
|
|
if openstack stack show overcloud | grep "stack_status " | egrep "(CREATE|UPDATE)_COMPLETE"; then
|
|
openstack overcloud deploy --templates {{ tht_dir }} \
|
|
{{ deploy_args_used }} \
|
|
-e {{ tht_dir }}/environments/docker.yaml \
|
|
{{ scenario_args }} \
|
|
-e {{ tht_dir }}/environments/major-upgrade-converge-docker.yaml \
|
|
-e ~/containers-default-parameters.yaml \
|
|
{% for item in upgrade_custom_templates %}
|
|
-e {{ item }} \
|
|
{% endfor %}
|
|
|
|
fi
|
|
|
|
{% else %}
|
|
|
|
echo "execute overcloud upgrade"
|
|
openstack overcloud upgrade --init-update --templates \
|
|
--container-registry-file {{ working_dir }}/containers-default-parameters.yaml \
|
|
-e ~/overcloud-repo.yaml
|
|
|
|
# TODO add per rolename
|
|
openstack overcloud upgrade --nodes Controller --playbook upgrade_steps_playbook.yaml
|
|
openstack overcloud upgrade --nodes Controller --playbook deploy_steps_playbook.yaml
|
|
openstack overcloud upgrade --nodes Controller --playbook post_upgrade_steps_playbook.yaml
|
|
|
|
# featureset has no compute yet... # openstack overcloud upgrade --nodes Compute
|
|
openstack overcloud upgrade --converge
|
|
|
|
{% endif %}
|
|
|
|
if openstack stack show overcloud | grep "stack_status " | egrep "(CREATE|UPDATE)_COMPLETE"; then
|
|
echo "Update successful"
|
|
else
|
|
exit 1
|
|
fi
|