#!/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