580fb660df
Updates/upgrades workflow must not run during `upgrade prepare` or `upgrade run`, but during `upgrade run` we need to have the images available. So the intention is to run `external-upgrade run --tags container_image_prepare` between `upgrade prepare` and `upgrade run`. The situation is analogical for `update` and `external-update` commands. Change-Id: I49de9a41c62204ab7cd835fec6dab8d59b054948 Closes-Bug: #1795881
118 lines
4.3 KiB
YAML
118 lines
4.3 KiB
YAML
heat_template_version: rocky
|
|
|
|
description: >
|
|
Prepare container images
|
|
|
|
parameters:
|
|
EndpointMap:
|
|
default: {}
|
|
description: Mapping of service endpoint -> protocol. Typically set
|
|
via parameter_defaults in the resource registry.
|
|
type: json
|
|
ServiceData:
|
|
default: {}
|
|
description: Dictionary packing service data
|
|
type: json
|
|
ServiceNetMap:
|
|
default: {}
|
|
description: Mapping of service_name -> network name. Typically set
|
|
via parameter_defaults in the resource registry. This
|
|
mapping overrides those in ServiceNetMapDefaults.
|
|
type: json
|
|
DefaultPasswords:
|
|
default: {}
|
|
type: json
|
|
RoleName:
|
|
default: ''
|
|
description: Role name on which the service is applied
|
|
type: string
|
|
RoleParameters:
|
|
default: {}
|
|
description: Parameters specific to the role
|
|
type: json
|
|
ContainerImagePrepare:
|
|
default: {}
|
|
description: Used to run "openstack tripleo container image prepare".
|
|
This is run after the registry is installed to populate
|
|
the registry with images.
|
|
type: json
|
|
ContainerImagePrepareLogFile:
|
|
default: 'tripleo-container-image-prepare.log'
|
|
type: string
|
|
description: Used to store outputs of "openstack tripleo container image prepare".
|
|
DockerInsecureRegistryAddress:
|
|
description: Optional. The IP Address and Port of an insecure docker
|
|
namespace that will be configured in /etc/sysconfig/docker.
|
|
The value can be multiple addresses separated by commas.
|
|
type: comma_delimited_list
|
|
default: []
|
|
|
|
NeutronMechanismDrivers:
|
|
default: 'openvswitch'
|
|
description: |
|
|
The mechanism drivers for the Neutron tenant network.
|
|
type: comma_delimited_list
|
|
|
|
{% for role in roles %}
|
|
# Parameters generated for {{role.name}} Role
|
|
{{role.name}}Services:
|
|
description: A list of service resources (configured in the Heat
|
|
resource_registry) which represent nested stacks
|
|
for each service that should get installed on the {{role.name}} role.
|
|
type: comma_delimited_list
|
|
|
|
{{role.name}}Count:
|
|
description: Number of {{role.name}} nodes to deploy
|
|
type: number
|
|
default: {{role.CountDefault|default(0)}}
|
|
{% endfor %}
|
|
|
|
outputs:
|
|
role_data:
|
|
description: Role data for container image prepare
|
|
value:
|
|
service_name: container_image_prepare
|
|
external_deploy_tasks:
|
|
- name: Container image prepare
|
|
when: step|int == 1
|
|
tags: container_image_prepare
|
|
block:
|
|
- set_fact:
|
|
log_file: {get_param: ContainerImagePrepareLogFile}
|
|
- name: Create temp file for prepare parameter
|
|
tempfile:
|
|
state: file
|
|
suffix: -prepare-param
|
|
register: prepare_param
|
|
- name: Create temp file for role data
|
|
tempfile:
|
|
state: file
|
|
suffix: -role-data
|
|
register: role_data
|
|
- name: Write ContainerImagePrepare parameter file
|
|
copy:
|
|
dest: "{{ '{{' }} prepare_param.path {{ '}}' }}"
|
|
content:
|
|
parameter_defaults:
|
|
ContainerImagePrepare: {get_param: ContainerImagePrepare}
|
|
DockerInsecureRegistryAddress: {get_param: DockerInsecureRegistryAddress}
|
|
NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
|
|
{% for role in roles %}
|
|
{{role.name}}Services: {get_param: {{role.name}}Services}
|
|
{{role.name}}Count: {get_param: {{role.name}}Count}
|
|
{% endfor %}
|
|
- name: Write role data file
|
|
copy:
|
|
dest: "{{ '{{' }} role_data.path {{ '}}' }}"
|
|
content: {{ roles }}
|
|
- name: Run tripleo-container-image-prepare
|
|
shell: sudo /usr/bin/tripleo-container-image-prepare --roles-file {{ '{{' }} role_data.path {{ '}}' }} --environment-file {{ '{{' }} prepare_param.path {{ '}}' }} --cleanup partial 2> {{ '{{' }} log_file {{ '}}' }}
|
|
- name: Delete param file
|
|
file:
|
|
dest: "{{ '{{' }} prepare_param.path {{ '}}' }}"
|
|
state: absent
|
|
- name: Delete role file
|
|
file:
|
|
dest: "{{ '{{' }} role_data.path {{ '}}' }}"
|
|
state: absent
|