tripleo-quickstart-extras/roles/overcloud-prep-containers/templates/overcloud-prep-containers.s...

156 lines
5.6 KiB
Django/Jinja

#!/bin/bash
set -eux
### --start_docs
## Prepare the undercloud for deploying the containerized compute node
## ===================================================================
## .. note:: In progress documentation is available at https://etherpad.openstack.org/p/tripleo-containers-work
## ::
## Prepare Your Environment
## ------------------------
## * 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"
else
echo "updating /etc/sysconfig/docker for internal registry"
sudo sed -i -e "s/^INSECURE_REGISTRY=\"\(.*\)\"/INSECURE_REGISTRY=\"\1 --insecure-registry {{ docker_registry_host }}\"/g" /etc/sysconfig/docker
sudo systemctl restart docker
fi
{% endif %}
PREPARE_ARGS=${PREPARE_ARGS:-"{{ prepare_service_env_args }}"}
## * Configure the {{ working_dir }}/containers-default-parameters.yaml, and
## populate the docker registry. This is done automatically.
## ::
{% if release not in ['ocata', 'pike', 'queens'] and not mixed_upgrade|default(false)|bool %}
openstack tripleo container image prepare --verbose \
--output-env-file {{ working_dir }}/containers-default-parameters.yaml \
${PREPARE_ARGS} \
-e {{ working_dir }}/containers-prepare-parameter.yaml
{% else %}
BUILD_ID=${BUILD_ID:-"{{ container_build_id }}"}
openstack overcloud container image prepare \
--output-images-file {{ working_dir }}/overcloud_containers.yaml \
--output-env-file {{ working_dir }}/containers-default-parameters.yaml \
${PREPARE_ARGS} \
--namespace {{ docker_registry_host }}/{{ docker_registry_namespace_used }} \
--tag $BUILD_ID \
{% if docker_prep_prefix is defined %}
--prefix "{{ docker_prep_prefix }}" \
{% endif %}
{% if docker_prep_suffix is defined %}
--suffix "{{ docker_prep_suffix }}" \
{% endif %}
{% if docker_ceph_namespace is defined %}
--set "ceph_namespace={{ docker_ceph_namespace }}" \
{% endif %}
{% if docker_ceph_image is defined %}
--set "ceph_image={{ docker_ceph_image }}" \
{% endif %}
{% if docker_ceph_tag is defined %}
--set "ceph_tag={{ docker_ceph_tag }}" \
{% endif %}
{% if docker_openshift_namespace is defined %}
--set openshift_namespace={{ docker_openshift_namespace }} \
{% endif %}
{% if docker_openshift_tag is defined %}
--set openshift_tag={{ docker_openshift_tag }} \
{% endif %}
{% if docker_openshift_base_image is defined %}
--set openshift_base_image={{ docker_openshift_base_image }} \
{% endif %}
{% if docker_openshift_cockpit_namespace is defined %}
--set openshift_cockpit_namespace={{ docker_openshift_cockpit_namespace }} \
{% endif %}
{% if docker_openshift_cockpit_image is defined %}
--set openshift_cockpit_image={{ docker_openshift_cockpit_image }} \
{% endif %}
{% if docker_openshift_cockpit_tag is defined %}
--set openshift_cockpit_tag={{ docker_openshift_cockpit_tag }} \
{% endif %}
--push-destination {{ local_docker_registry_host }}:8787
openstack overcloud container image upload --debug --config-file {{ working_dir }}/overcloud_containers.yaml
{% if release in ['ocata', 'pike'] %}
## * Configure the {{ working_dir }}/containers-default-parameters.yaml to pull
## from a local registry, this is done automatically.
## ::
openstack overcloud container image prepare \
--env-file {{ working_dir }}/containers-default-parameters.yaml \
${PREPARE_ARGS} \
--namespace {{ local_docker_registry_host }}:8787/{{ docker_registry_namespace }} \
{% if docker_prep_prefix is defined %}
--prefix "{{ docker_prep_prefix }}" \
{% endif %}
{% if docker_prep_suffix is defined %}
--suffix "{{ docker_prep_suffix }}" \
{% endif %}
{% if docker_ceph_namespace is defined %}
--set "ceph_namespace={{ docker_ceph_namespace }}" \
{% endif %}
{% if docker_ceph_image is defined %}
--set "ceph_image={{ docker_ceph_image }}" \
{% endif %}
{% if docker_ceph_tag is defined %}
--set "ceph_tag={{ docker_ceph_tag }}" \
{% endif %}
--tag $BUILD_ID
{% endif %}
{% if update_containers|bool and not use_overcloud_mixed_upgrade|default(false)|bool %}
# See https://github.com/imain/container-check for script and documentation
## * update the containers with yum updates from OpenStack repos. ( delorean-current, dependent patches built by DLRN )
## ::
packages_for_update="$(repoquery --disablerepo='*' --enablerepo={{ update_containers_repo }} --qf %{NAME} -a 2>{{ working_dir }}/repoquery.err.log | sort -u | xargs)"
if [[ -n "$packages_for_update" ]]; then
openstack overcloud container image prepare \
--output-images-file {{ working_dir }}/containers_update.yaml \
${PREPARE_ARGS} \
--exclude ceph \
--exclude openshift \
--exclude kubernetes \
--namespace {{ local_docker_registry_host }}:8787/{{ docker_registry_namespace }} \
{% if docker_prep_prefix is defined %}
--prefix "{{ docker_prep_prefix }}" \
{% endif %}
{% if docker_prep_suffix is defined %}
--suffix "{{ docker_prep_suffix }}" \
{% endif %}
--tag $BUILD_ID
container-check -u \
-c {{ working_dir }}/containers_update.yaml \
-p {{ container_process_count }} \
-k $packages_for_update
fi
{% endif %}
{% endif %}
echo "============================="
echo "Containers default parameters:"
cat {{ working_dir }}/containers-default-parameters.yaml
echo "============================="
## * Get the journal logs for docker
## ::
sudo journalctl -u docker > docker_journalctl.log
### --stop_docs