Use the in-built image prepare for undercloud install
This file will write out the heat environment file containers-prepare-parameter.yaml which will be used to do any required image preparation during undercloud install. The role parameter undercloud_container_images_file has been left as an option for overriding, but is no longer required. This change also switches the overcloud prepare to consume this file via the command "openstack tripleo container image prepare" It is expected that overcloud deploy will use the exact same containers-prepare-parameter.yaml and the logic will be in place to skip any unnecessary prepare actions. For this reason, the parameter undercloud_docker_image_tag has been removed, and docker_image_tag is used directly. Since this file (and the variables used to build it) will be common to undercloud and overcloud, there has been some refactoring to move variable defaults to extras-common. Change-Id: I290806b9296773688dfd02bc41f8baea28cf3d6a Blueprint: container-prepare-workflow
This commit is contained in:
parent
79d9067fc8
commit
b3794ff03a
|
@ -33,6 +33,13 @@ Role Variables
|
|||
docker images used for TripleO deployment
|
||||
- `docker_image_tag`: <'latest'> -- tag of docker images used for
|
||||
TripleO deployment
|
||||
- `docker_prep_prefix`: <'centos-binary-'> Prefix for container image names
|
||||
- `docker_prep_suffix: <''> Suffix for container image names
|
||||
- `docker_ceph_namespace: <'docker.io/ceph'> Namespace for the ceph container
|
||||
image
|
||||
- `docker_ceph_image: <'daemon'> Name of the ceph container image
|
||||
- `docker_ceph_tag: <'v3.0.3-stable-3.0-luminous-centos-7-x86_64'> Tag for the
|
||||
ceph container image
|
||||
- `composable_scenario`: <''> -- path to the composable scenarios used at deployment time
|
||||
- `upgrade_composable_scenario`: <''> -- path to the composable scenarios used at upgrade time
|
||||
- `undercloud_rpm_dependencies`: <'python-tripleoclient'> -- Dependency packages for undercloud deployments.
|
||||
|
|
|
@ -8,6 +8,11 @@ local_docker_registry_host: "{{undercloud_network_gateway|default(undercloud_net
|
|||
docker_registry_host: docker.io
|
||||
docker_registry_namespace: "tripleo{{ release }}"
|
||||
docker_image_tag: current-tripleo
|
||||
docker_prep_prefix: centos-binary-
|
||||
docker_prep_suffix: ""
|
||||
docker_ceph_namespace: docker.io/ceph
|
||||
docker_ceph_image: daemon
|
||||
docker_ceph_tag: v3.0.3-stable-3.0-luminous-centos-7-x86_64
|
||||
additional_insecure_registry: false
|
||||
deployed_server: false
|
||||
overcloud_templates_path: /usr/share/openstack-tripleo-heat-templates
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
# Conditional facts to be set which are common to undercloud and overcloud
|
||||
- name: set docker_registry_namespace_used
|
||||
set_fact:
|
||||
docker_registry_namespace_used: "{{ docker_registry_namespace }}"
|
||||
|
||||
- name: set container_build_id from get_build_command
|
||||
set_fact:
|
||||
container_build_id: "{{ get_build_command }}"
|
||||
when: get_build_command is defined
|
||||
|
||||
- name: set mixed upgrade container_build_id
|
||||
set_fact:
|
||||
container_build_id: "{{ overcloud_docker_image_tag }}"
|
||||
docker_registry_namespace_used: "{{ overcloud_docker_registry_namespace }}"
|
||||
when:
|
||||
- container_build_id is not defined
|
||||
- use_overcloud_mixed_upgrade|default(false)|bool
|
||||
|
||||
- name: set container_build_id from docker_image_tag
|
||||
set_fact:
|
||||
container_build_id: "{{ docker_image_tag }}"
|
||||
when: container_build_id is not defined
|
|
@ -7,28 +7,6 @@
|
|||
-e {{ overcloud_templates_path }}/ci/environments/{{ composable_scenario }}
|
||||
when: not composable_scenario|trim == ''
|
||||
|
||||
- name: set docker_registry_namespace_used
|
||||
set_fact:
|
||||
docker_registry_namespace_used: "{{ docker_registry_namespace }}"
|
||||
|
||||
- name: set container_build_id from get_build_command
|
||||
set_fact:
|
||||
container_build_id: "{{ get_build_command }}"
|
||||
when: get_build_command is defined
|
||||
|
||||
- name: set mixed upgrade container_build_id
|
||||
set_fact:
|
||||
container_build_id: "{{ overcloud_docker_image_tag }}"
|
||||
docker_registry_namespace_used: "{{ overcloud_docker_registry_namespace }}"
|
||||
when:
|
||||
- container_build_id is not defined
|
||||
- use_overcloud_mixed_upgrade|default(false)|bool
|
||||
|
||||
- name: set container_build_id from docker_image_tag
|
||||
set_fact:
|
||||
container_build_id: "{{ docker_image_tag }}"
|
||||
when: container_build_id is not defined
|
||||
|
||||
- name: Create overcloud prep-containers script
|
||||
template:
|
||||
src: "{{ overcloud_prep_containers_template }}"
|
||||
|
|
|
@ -31,6 +31,15 @@ PREPARE_ARGS=${PREPARE_ARGS:-"{{ prepare_service_env_args }}"}
|
|||
## ::
|
||||
|
||||
BUILD_ID=${BUILD_ID:-"{{ container_build_id }}"}
|
||||
|
||||
{% if release not in ['ocata', 'pike', 'queens'] %}
|
||||
openstack tripleo container image prepare \
|
||||
--output-env-file {{ working_dir }}/containers-default-parameters.yaml \
|
||||
${PREPARE_ARGS} \
|
||||
-e {{ working_dir }}/containers-prepare-parameter.yaml
|
||||
|
||||
{% else %}
|
||||
|
||||
openstack overcloud container image prepare \
|
||||
--output-images-file {{ working_dir }}/overcloud_containers.yaml \
|
||||
--output-env-file {{ working_dir }}/containers-default-parameters.yaml \
|
||||
|
@ -38,19 +47,19 @@ openstack overcloud container image prepare \
|
|||
--namespace {{ docker_registry_host }}/{{ docker_registry_namespace_used }} \
|
||||
--tag $BUILD_ID \
|
||||
{% if docker_prep_prefix is defined %}
|
||||
--prefix {{ docker_prep_prefix}} \
|
||||
--prefix "{{ docker_prep_prefix }}" \
|
||||
{% endif %}
|
||||
{% if docker_prep_suffix is defined %}
|
||||
--suffix {{ docker_prep_suffix }} \
|
||||
--suffix "{{ docker_prep_suffix }}" \
|
||||
{% endif %}
|
||||
{% if docker_ceph_namespace is defined %}
|
||||
--set ceph_namespace={{ docker_ceph_namespace }} \
|
||||
--set "ceph_namespace={{ docker_ceph_namespace }}" \
|
||||
{% endif %}
|
||||
{% if docker_ceph_image is defined %}
|
||||
--set ceph_image={{ docker_ceph_image }} \
|
||||
--set "ceph_image={{ docker_ceph_image }}" \
|
||||
{% endif %}
|
||||
{% if docker_ceph_tag is defined %}
|
||||
--set ceph_tag={{ docker_ceph_tag }} \
|
||||
--set "ceph_tag={{ docker_ceph_tag }}" \
|
||||
{% endif %}
|
||||
{% if docker_openshift_namespace is defined %}
|
||||
--set openshift_namespace={{ docker_openshift_namespace }} \
|
||||
|
@ -84,22 +93,23 @@ openstack overcloud container image upload --debug --config-file {{ working_dir
|
|||
${PREPARE_ARGS} \
|
||||
--namespace {{ local_docker_registry_host }}:8787/{{ docker_registry_namespace }} \
|
||||
{% if docker_prep_prefix is defined %}
|
||||
--prefix={{ docker_prep_prefix}} \
|
||||
--prefix "{{ docker_prep_prefix }}" \
|
||||
{% endif %}
|
||||
{% if docker_prep_suffix is defined %}
|
||||
--suffix={{ docker_prep_suffix }} \
|
||||
--suffix "{{ docker_prep_suffix }}" \
|
||||
{% endif %}
|
||||
{% if docker_ceph_namespace is defined %}
|
||||
--set ceph_namespace={{ docker_ceph_namespace }} \
|
||||
--set "ceph_namespace={{ docker_ceph_namespace }}" \
|
||||
{% endif %}
|
||||
{% if docker_ceph_image is defined %}
|
||||
--set ceph_image={{ docker_ceph_image }} \
|
||||
--set "ceph_image={{ docker_ceph_image }}" \
|
||||
{% endif %}
|
||||
{% if docker_ceph_tag is defined %}
|
||||
--set ceph_tag={{ docker_ceph_tag }} \
|
||||
--set "ceph_tag={{ docker_ceph_tag }}" \
|
||||
{% endif %}
|
||||
--tag $BUILD_ID
|
||||
{% endif %}
|
||||
{% 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
|
||||
|
@ -118,10 +128,10 @@ if [[ -n "$packages_for_update" ]]; then
|
|||
--exclude kubernetes \
|
||||
--namespace {{ local_docker_registry_host }}:8787/{{ docker_registry_namespace }} \
|
||||
{% if docker_prep_prefix is defined %}
|
||||
--prefix={{ docker_prep_prefix}} \
|
||||
--prefix "{{ docker_prep_prefix }}" \
|
||||
{% endif %}
|
||||
{% if docker_prep_suffix is defined %}
|
||||
--suffix={{ docker_prep_suffix }} \
|
||||
--suffix "{{ docker_prep_suffix }}" \
|
||||
{% endif %}
|
||||
--tag $BUILD_ID
|
||||
|
||||
|
|
|
@ -75,19 +75,14 @@ https://docs.openstack.org/tripleo-quickstart/latest/accessing-libvirt.html
|
|||
undercloud via the tripleo client's `--local-domain` option. It is unset by default.
|
||||
- `tripleo_ui_secure_access`: Defaults to false due to the self signed certificate and
|
||||
usability issues. See the tripleo-quickstart documentation `accessing the undercloud` for details.
|
||||
- `undercloud_docker_registry_host`: <`docker_registry_host`> -- registry host/port
|
||||
- `local_docker_registry_host`: <`docker_registry_host`> -- registry host/port
|
||||
for containerized undercloud services. Defaults to the value provided for overcloud.
|
||||
You may want to diverge it, if building locally, or fetching from remote registries
|
||||
not fitting the overcloud deployment needs.
|
||||
- `undercloud_docker_registry_port`: <null> -- an optional port for
|
||||
`undercloud_docker_registry_host`.
|
||||
- `undercloud_docker_registry_namespace`: <`docker_registry_namespace`> -- namespace of
|
||||
docker images used for undercloud deployment. Defaults to the value provided for overcloud.
|
||||
- `undercloud_docker_image_tag`: <`docker_image_tag`> -- tag of docker images used for
|
||||
undercloud deployment. Defaults to the value provided for overcloud. Defaults to the
|
||||
value provided for overcloud.
|
||||
- `undercloud_container_images_file`: <"{{ working_dir }}/undercloud-containers-default-parameters.yaml"> --
|
||||
the environment file with default parameters for containers to use with undercloud install CLI.
|
||||
- `undercloud_container_images_file`: <""> --
|
||||
The environment file with default parameters for containers to use with
|
||||
undercloud install CLI. This should only be used to override image prepare
|
||||
generating this during the undercloud install.
|
||||
- `undercloud_custom_env_files`: <null> --
|
||||
A space-separate string for custom t-h-t env files for `undercloud.conf` used with heat installer.
|
||||
- `undercloud_undercloud_output_dir`: <null> -- allows customize output directory for state, like
|
||||
|
|
|
@ -4,14 +4,7 @@ undercloud_config_file: undercloud.conf.j2
|
|||
undercloud_install_cli_options: ""
|
||||
undercloud_post_install_script: undercloud-install-post.sh.j2
|
||||
undercloud_install_log: "{{ working_dir }}/undercloud_install.log"
|
||||
undercloud_container_images_file: "{{ working_dir }}/undercloud-containers-default-parameters.yaml"
|
||||
|
||||
# default undercloud install method
|
||||
# containerized_undercloud is an EXPERIMENTAL FEATURE
|
||||
containerized_undercloud: false
|
||||
undercloud_docker_registry_host: "{{ docker_registry_host }}"
|
||||
undercloud_docker_registry_namespace: "{{ docker_registry_namespace }}"
|
||||
undercloud_docker_image_tag: "{{ docker_image_tag }}"
|
||||
undercloud_install_script: undercloud-install.sh.j2
|
||||
|
||||
# defines extra args for the undercloud deploy command
|
||||
|
|
|
@ -90,9 +90,11 @@
|
|||
dest: "{{ working_dir }}/undercloud-parameter-defaults.yaml"
|
||||
mode: 0600
|
||||
|
||||
- name: Create the undercloud prep containers script
|
||||
template:
|
||||
src: undercloud-prep-containers.sh.j2
|
||||
dest: "{{ working_dir }}/undercloud-prep-containers.sh"
|
||||
mode: 0755
|
||||
when: containerized_undercloud|bool and update_containers|bool
|
||||
- name: Create containers-prepare-parameter.yaml
|
||||
block:
|
||||
|
||||
- name: Write containers-prepare-parameter.yaml
|
||||
template:
|
||||
src: containers-prepare-parameter.yaml.j2
|
||||
dest: "{{ working_dir }}/containers-prepare-parameter.yaml"
|
||||
when: containerized_undercloud|bool or containerized_overcloud|bool
|
||||
|
|
|
@ -7,11 +7,6 @@
|
|||
tags:
|
||||
- undercloud-scripts
|
||||
|
||||
- include: undercloud-prep-containers.yml
|
||||
tags:
|
||||
- undercloud-scripts
|
||||
when: containerized_undercloud|bool and update_containers|bool
|
||||
|
||||
- include: install-undercloud.yml
|
||||
tags:
|
||||
- undercloud-install
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
---
|
||||
- name: Prepare containers for the undercloud containerized deployment
|
||||
shell: >
|
||||
set -o pipefail &&
|
||||
{{ working_dir }}/undercloud-prep-containers.sh 2>&1 {{ timestamper_cmd }} >
|
||||
{{ working_dir }}/undercloud_prep_containers.log
|
|
@ -0,0 +1,13 @@
|
|||
parameter_defaults:
|
||||
DockerInsecureRegistryAddress:
|
||||
- {{ local_docker_registry_host }}:8787
|
||||
ContainerImagePrepare:
|
||||
- push_destination: "{{ local_docker_registry_host }}:8787"
|
||||
set:
|
||||
tag: "{{ container_build_id }}"
|
||||
namespace: "{{ docker_registry_host }}/{{ docker_registry_namespace_used }}"
|
||||
name_prefix: "{{ docker_prep_prefix }}"
|
||||
name_suffix: "{{ docker_prep_suffix }}"
|
||||
ceph_namespace: "{{ docker_ceph_namespace }}"
|
||||
ceph_image: "{{ docker_ceph_image }}"
|
||||
ceph_tag: "{{ docker_ceph_tag }}"
|
|
@ -18,11 +18,7 @@ export {{ var }}
|
|||
|
||||
## * get build id
|
||||
## ::
|
||||
{% if get_build_command is defined %}
|
||||
BUILD_ID={{ get_build_command }}
|
||||
{% else %}
|
||||
BUILD_ID={{ undercloud_docker_image_tag }}
|
||||
{% endif %}
|
||||
BUILD_ID={{ container_build_id }}
|
||||
|
||||
## * Set the local ip used for the undercloud install
|
||||
## ::
|
||||
|
|
|
@ -1,77 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -eux
|
||||
|
||||
### --start_docs
|
||||
## Prepare the undercloud for deploying the containerized compute node
|
||||
## ===================================================================
|
||||
|
||||
## .. note:: In progress documentation is available at https://github.com/dprince/undercloud_containers/blob/master/doit.sh
|
||||
## ::
|
||||
|
||||
## * get build id
|
||||
## ::
|
||||
{% if get_build_command is defined %}
|
||||
BUILD_ID={{ get_build_command }}
|
||||
{% else %}
|
||||
BUILD_ID={{ undercloud_docker_image_tag }}
|
||||
{% endif %}
|
||||
|
||||
## * Generate {{ working_dir }}/undercloud-containers-default-parameters.yaml
|
||||
## ::
|
||||
|
||||
{% if release in ['pike', 'queens'] -%}
|
||||
{%- set env_files_path='services-docker' -%}
|
||||
{%- else -%}
|
||||
{%- set env_files_path='services' -%}
|
||||
{%- endif %}
|
||||
|
||||
openstack overcloud container image prepare \
|
||||
--output-env-file {{ working_dir }}/undercloud-containers-default-parameters.yaml \
|
||||
--template-file /usr/share/openstack-tripleo-common/container-images/overcloud_containers.yaml.j2 \
|
||||
{% if undercloud_enable_ui|bool %}
|
||||
-e {{overcloud_templates_path}}/environments/{{env_files_path}}/tripleo-ui.yaml \
|
||||
{% endif %}
|
||||
{% if undercloud_enable_mistral|bool %}
|
||||
-e {{overcloud_templates_path}}/environments/{{env_files_path}}/mistral.yaml \
|
||||
{% endif %}
|
||||
{% if undercloud_enable_tempest|bool %}
|
||||
-e {{overcloud_templates_path}}/environments/{{env_files_path}}/tempest.yaml \
|
||||
{% endif %}
|
||||
{% if undercloud_enable_ironic|bool %}
|
||||
-e {{overcloud_templates_path}}/environments/{{env_files_path}}/ironic.yaml \
|
||||
{% endif %}
|
||||
{% if undercloud_enable_ironic_inspector|bool %}
|
||||
-e /usr/share/openstack-tripleo-heat-templates/environments/{{env_files_path}}/ironic-inspector.yaml \
|
||||
{% endif %}
|
||||
{% if undercloud_generate_service_certificate is defined %}
|
||||
-e /usr/share/openstack-tripleo-heat-templates/environments/{{env_files_path}}/undercloud-haproxy.yaml \
|
||||
-e /usr/share/openstack-tripleo-heat-templates/environments/{{env_files_path}}/undercloud-keepalived.yaml \
|
||||
{% endif %}
|
||||
{% if undercloud_enable_zaqar|bool %}
|
||||
-e {{overcloud_templates_path}}/environments/{{env_files_path}}/zaqar.yaml \
|
||||
{% endif %}
|
||||
{% if undercloud_enable_telemetry|bool %}
|
||||
-e {{overcloud_templates_path}}/environments/{{env_files_path}}/undercloud-gnocchi.yaml \
|
||||
-e {{overcloud_templates_path}}/environments/{{env_files_path}}/undercloud-aodh.yaml \
|
||||
-e {{overcloud_templates_path}}/environments/{{env_files_path}}/undercloud-panko.yaml \
|
||||
-e {{overcloud_templates_path}}/environments/{{env_files_path}}/undercloud-ceilometer.yaml \
|
||||
{% endif %}
|
||||
-e {{overcloud_templates_path}}/environments/docker.yaml \
|
||||
{% if undercloud_custom_env_files is defined %}
|
||||
{% for f in undercloud_custom_env_files.split() %}
|
||||
-e {{ f }} \
|
||||
{% endfor %}
|
||||
-e {{ working_dir }}/undercloud-parameter-defaults.yaml \
|
||||
{% endif %}
|
||||
-r {{undercloud_roles_data|default(default_undercloud_roles_data_path)}} \
|
||||
--namespace {{ undercloud_docker_registry_host }}{% if undercloud_docker_registry_port is defined %}:{{ undercloud_docker_registry_port }}{% endif%}/{{ undercloud_docker_registry_namespace }} \
|
||||
--tag $BUILD_ID
|
||||
|
||||
echo "============================="
|
||||
echo "Containers default parameters:"
|
||||
cat {{ working_dir }}/undercloud-containers-default-parameters.yaml
|
||||
echo "============================="
|
||||
|
||||
|
||||
### --stop_docs
|
|
@ -257,8 +257,10 @@ docker_registry_mirror = {{undercloud_docker_registry_mirror}}
|
|||
|
||||
# additional env files for undercloud, used with containers
|
||||
|
||||
{% if undercloud_container_images_file is defined and update_containers|bool %}
|
||||
{% if undercloud_container_images_file is defined and containerized_undercloud|bool %}
|
||||
container_images_file = {{ undercloud_container_images_file }}
|
||||
{% elif containerized_undercloud|bool %}
|
||||
container_images_file = {{ working_dir }}/containers-prepare-parameter.yaml
|
||||
{% else %}
|
||||
#container_images_file = <None>
|
||||
{% endif %}
|
||||
|
|
Loading…
Reference in New Issue