tripleo-heat-templates/puppet/services/mistral-executor.yaml
Steve Baker 9104980524 Allow a containerized mistral-executor to access docker
This is required for a containerized undercloud to perform workflow
driven container image prepare during overcloud deployment.

This moves the MistralDockerGroup parameter out of mistral-base since
this is only required for the executor.

Further changes will be needed to puppet-tripleo to use 'group' and
'user' instead of ensure_resource, and also to ensure that the created
docker group inside the executor container has the same gid as the
docker group on the host, but these can depend on this change for
testing.

Change-Id: I429c72c0334a177d1ec37c3d9c13b7ba983de734
Blueprint: container-prepare-workflow
2018-06-20 10:17:01 +12:00

82 lines
2.7 KiB
YAML

heat_template_version: rocky
description: >
Openstack Mistral API service configured with Puppet
parameters:
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
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
MistralDockerGroup:
default: false
description: Add the mistral user to the docker group to allow actions to perform docker operations.
type: boolean
resources:
MistralBase:
type: ./mistral-base.yaml
properties:
ServiceData: {get_param: ServiceData}
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
EndpointMap: {get_param: EndpointMap}
RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters}
outputs:
role_data:
description: Role data for the Mistral Executor role.
value:
service_name: mistral_executor
config_settings:
map_merge:
- get_attr: [MistralBase, role_data, config_settings]
- tripleo::profile::base::mistral::executor::docker_group: {get_param: MistralDockerGroup}
step_config: |
include ::tripleo::profile::base::mistral::executor
upgrade_tasks:
- name: Check if mistral executor is deployed
command: systemctl is-enabled openstack-mistral-executor
tags: common
ignore_errors: True
register: mistral_executor_enabled
- name: "PreUpgrade step0,validation: Check if openstack-mistral-executor is running"
shell: >
/usr/bin/systemctl show 'openstack-mistral-executor' --property ActiveState |
grep '\bactive\b'
when:
- step|int == 0
- mistral_executor_enabled.rc == 0
tags: validation
- name: Stop mistral_executor service
when: step|int == 1
service: name=openstack-mistral-executor state=stopped
- name: Install openstack-mistral-executor package if it was disabled
yum: name=openstack-mistral-executor state=latest
when:
- step|int == 3
- mistral_executor_enabled.rc != 0