1bda1fd9a7
This makes the docker-registry service focused on installing the registry, as it should be. Also this makes it possible to invoke this service during overcloud deploy too. This change also switches to calling the tripleo-common script tripleo-container-image-prepare instead of the full openstack command. This will allow a mistral image to do a prepare without depending on the python-tripleoclient package. The {{role}}Services and {{role}}Count are propagated to tripleo-container-image-prepare so that images are filtered correctly. sudo is used instead of become:true so that the tripleo-common mistral sudoers pattern matches. Depends-On: Ic1648e43f45bb7604d4c0f9abf247a475fb23707 Change-Id: Ibc16bed673de7b22cd8eef3f6fb0d45871083873 Blueprint: container-prepare-workflow
110 lines
4.0 KiB
YAML
110 lines
4.0 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: []
|
|
|
|
{% 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
|
|
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}
|
|
{% 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
|