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: '/var/log/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: 'ovn' description: | The mechanism drivers for the Neutron tenant network. type: comma_delimited_list DockerRegistryMirror: description: Optional. Mirror to use for registry docker.io default: '' type: string Debug: default: false description: Set to True to enable debugging on all services. type: boolean ContainerImagePrepareDebug: default: '' description: Whether or not we want to activate --debug in tripleo container image prepare. type: string constraints: - allowed_values: [ '', 'true', 'True', 'TRUE', 'false', 'False', 'FALSE'] ContainerImageRegistryCredentials: type: json hidden: true default: {} description: | Mapping of image registry hosts to login credentials. Must be in the following example format docker.io: username: pa55word '192.0.2.1:8787': registry_username: password AdditionalArchitectures: default: [] description: List of additional architectures to enable. 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 %} conditions: service_debug_unset: {equals : [{get_param: ContainerImagePrepareDebug}, '']} outputs: role_data: description: Role data for container image prepare value: service_name: container_image_prepare external_deploy_tasks: - name: Run tripleo-container-image-prepare role import_role: name: tripleo-container-image-prepare vars: tripleo_container_image_prepare_log_file: {get_param: ContainerImagePrepareLogFile} tripleo_container_image_prepare_debug: if: - service_debug_unset - {get_param: Debug } - {get_param: ContainerImagePrepareDebug } tripleo_container_image_prepare_roles: {{ roles }} tripleo_container_image_prepare_content: parameter_defaults: ContainerImagePrepare: {get_param: ContainerImagePrepare} DockerInsecureRegistryAddress: {get_param: DockerInsecureRegistryAddress} NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers} DockerRegistryMirror: {get_param: DockerRegistryMirror} ContainerImageRegistryCredentials: {get_param: ContainerImageRegistryCredentials} AdditionalArchitectures: {get_param: AdditionalArchitectures} {% for role in roles %} {{ role.name }}Services: {get_param: {{role.name}}Services} {{ role.name }}Count: {get_param: {{role.name}}Count} {% endfor %} when: - (step | int) == 1