tripleo-heat-templates/puppet/services/container-image-prepare.j2.yaml
Jiri Stransky 580fb660df Tag container image prepare tasks to allow running them for updates/upgrades
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
2018-10-03 14:51:46 +02:00

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