Juan Antonio Osorio Robles e81ddeb685 Introduce common resources for docker templates
This enables common resources that the docker templates might need.
The initial resource only is common volumes, and two volumes are
introduced (localtime and hosts).

Change-Id: Ic55af32803f9493a61f9b57aff849bfc6187d992
2017-04-18 11:20:06 +03:00

125 lines
4.4 KiB
YAML

heat_template_version: ocata
description: >
OpenStack containerized Mistral API service
parameters:
DockerNamespace:
description: namespace
default: 'tripleoupstream'
type: string
DockerMistralApiImage:
description: image
default: 'centos-binary-mistral-api:latest'
type: string
DockerMistralConfigImage:
description: image
default: 'centos-binary-mistral-api:latest'
type: string
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
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
resources:
ContainersCommon:
type: ./containers-common.yaml
MistralApiBase:
type: ../../puppet/services/mistral-api.yaml
properties:
EndpointMap: {get_param: EndpointMap}
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
outputs:
role_data:
description: Role data for the Mistral API role.
value:
service_name: {get_attr: [MistralApiBase, role_data, service_name]}
config_settings:
map_merge:
- get_attr: [MistralApiBase, role_data, config_settings]
step_config: &step_config
get_attr: [MistralApiBase, role_data, step_config]
service_config_settings: {get_attr: [MistralApiBase, role_data, service_config_settings]}
# BEGIN DOCKER SETTINGS
puppet_config:
config_volume: mistral
puppet_tags: mistral_config
step_config: *step_config
config_image:
list_join:
- '/'
- [ {get_param: DockerNamespace}, {get_param: DockerMistralConfigImage} ]
kolla_config:
/var/lib/kolla/config_files/mistral_api.json:
command: /usr/bin/mistral-server --config-file=/etc/mistral/mistral.conf --log-file=/var/log/mistral/api.log --server=api
docker_config:
step_3:
mistral_db_sync:
start_order: 1
image: &mistral_image
list_join:
- '/'
- [ {get_param: DockerNamespace}, {get_param: DockerMistralApiImage} ]
net: host
privileged: false
detach: false
volumes:
yaql:
expression: $.data.common.concat($.data.service)
data:
common: {get_attr: [ContainersCommon, volumes]}
service:
- /var/lib/config-data/mistral/etc/:/etc/:ro
command: ['mistral-db-manage', '--config-file', '/etc/mistral/mistral.conf', 'upgrade', 'head']
mistral_db_populate:
start_order: 2
image: *mistral_image
net: host
privileged: false
detach: false
volumes:
yaql:
expression: $.data.common.concat($.data.service)
data:
common: {get_attr: [ContainersCommon, volumes]}
service:
- /var/lib/config-data/mistral/etc/:/etc/:ro
# NOTE: dprince this requires that we install openstack-tripleo-common into
# the Mistral API image so that we get tripleo* actions
command: ['mistral-db-manage', '--config-file', '/etc/mistral/mistral.conf', 'populate']
step_4:
mistral_api:
start_order: 15
image: *mistral_image
net: host
privileged: false
restart: always
volumes:
yaql:
expression: $.data.common.concat($.data.service)
data:
common: {get_attr: [ContainersCommon, volumes]}
service:
- /var/lib/kolla/config_files/mistral_api.json:/var/lib/kolla/config_files/config.json:ro
- /var/lib/config-data/mistral/etc/mistral/:/etc/mistral/:ro
environment:
- KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
upgrade_tasks:
- name: Stop and disable mistral_api service
tags: step2
service: name=openstack-mistral-api state=stopped enabled=no