Skip to content
This repository has been archived by the owner on Feb 29, 2024. It is now read-only.

Commit

Permalink
Use the in-built image prepare for undercloud install
Browse files Browse the repository at this point in the history
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
  • Loading branch information
steveb authored and EmilienM committed Jun 15, 2018
1 parent 79d9067 commit b3794ff
Show file tree
Hide file tree
Showing 14 changed files with 87 additions and 152 deletions.
7 changes: 7 additions & 0 deletions roles/extras-common/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
5 changes: 5 additions & 0 deletions roles/extras-common/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
22 changes: 22 additions & 0 deletions roles/extras-common/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -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
22 changes: 0 additions & 22 deletions roles/overcloud-prep-containers/tasks/create-scripts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 }}"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,26 +31,35 @@ 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 \
${PREPARE_ARGS} \
--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 }} \
Expand Down Expand Up @@ -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
Expand All @@ -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

Expand Down
15 changes: 5 additions & 10 deletions roles/undercloud-deploy/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 1 addition & 8 deletions roles/undercloud-deploy/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
14 changes: 8 additions & 6 deletions roles/undercloud-deploy/tasks/create-scripts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
5 changes: 0 additions & 5 deletions roles/undercloud-deploy/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 0 additions & 6 deletions roles/undercloud-deploy/tasks/undercloud-prep-containers.yml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -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 }}"
6 changes: 1 addition & 5 deletions roles/undercloud-deploy/templates/undercloud-deploy.sh.j2
Original file line number Diff line number Diff line change
Expand Up @@ -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
## ::
Expand Down
77 changes: 0 additions & 77 deletions roles/undercloud-deploy/templates/undercloud-prep-containers.sh.j2

This file was deleted.

4 changes: 3 additions & 1 deletion roles/undercloud-deploy/templates/undercloud.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
Expand Down

0 comments on commit b3794ff

Please sign in to comment.