Merge "Docker service for Cinder Volume"
[apex-tripleo-heat-templates.git] / docker / services / sahara-api.yaml
1 heat_template_version: pike
2
3 description: >
4   OpenStack Sahara service configured with Puppet
5
6 parameters:
7   DockerNamespace:
8     description: namespace
9     default: 'tripleoupstream'
10     type: string
11   DockerSaharaApiImage:
12     description: image
13     default: 'centos-binary-sahara-api:latest'
14     type: string
15   EndpointMap:
16     default: {}
17     description: Mapping of service endpoint -> protocol. Typically set
18                  via parameter_defaults in the resource registry.
19     type: json
20   ServiceNetMap:
21     default: {}
22     description: Mapping of service_name -> network name. Typically set
23                  via parameter_defaults in the resource registry.  This
24                  mapping overrides those in ServiceNetMapDefaults.
25     type: json
26   DefaultPasswords:
27     default: {}
28     type: json
29   RoleName:
30     default: ''
31     description: Role name on which the service is applied
32     type: string
33   RoleParameters:
34     default: {}
35     description: Parameters specific to the role
36     type: json
37
38 resources:
39
40   ContainersCommon:
41     type: ./containers-common.yaml
42
43   SaharaApiPuppetBase:
44     type: ../../puppet/services/sahara-api.yaml
45     properties:
46       EndpointMap: {get_param: EndpointMap}
47       ServiceNetMap: {get_param: ServiceNetMap}
48       DefaultPasswords: {get_param: DefaultPasswords}
49
50 outputs:
51   role_data:
52     description: Role data for the Sahara API role.
53     value:
54       service_name: {get_attr: [SaharaApiPuppetBase, role_data, service_name]}
55       config_settings:
56         map_merge:
57           - get_attr: [SaharaApiPuppetBase, role_data, config_settings]
58           - sahara::sync_db: false
59       step_config: &step_config
60         get_attr: [SaharaApiPuppetBase, role_data, step_config]
61       service_config_settings: {get_attr: [SaharaApiPuppetBase, role_data, service_config_settings]}
62       # BEGIN DOCKER SETTINGS #
63       puppet_config:
64         config_volume: sahara
65         puppet_tags: sahara_api_paste_ini,sahara_cluster_template,sahara_config,sahara_node_group_template
66         step_config: *step_config
67         config_image: &sahara_image
68           list_join:
69             - '/'
70             - [ {get_param: DockerNamespace}, {get_param: DockerSaharaApiImage} ]
71       kolla_config:
72         /var/lib/kolla/config_files/sahara-api.json:
73           command: /usr/bin/sahara-api --config-file /etc/sahara/sahara.conf
74           permissions:
75             - path: /var/lib/sahara
76               owner: sahara:sahara
77               recurse: true
78             - path: /var/log/sahara
79               owner: sahara:sahara
80               recurse: true
81       docker_config:
82         step_3:
83           sahara_db_sync:
84             image: *sahara_image
85             net: host
86             privileged: false
87             detach: false
88             volumes: &sahara_volumes
89               list_concat:
90                 - {get_attr: [ContainersCommon, volumes]}
91                 -
92                   - /var/lib/kolla/config_files/sahara-api.json:/var/lib/kolla/config_files/config.json
93                   - /var/lib/config-data/sahara/etc/sahara/:/etc/sahara/:ro
94                   - /lib/modules:/lib/modules:ro
95                   - /var/lib/sahara:/var/lib/sahara
96                   - /var/log/containers/sahara:/var/log/sahara
97             command: "/usr/bin/bootstrap_host_exec sahara_api su sahara -s /bin/bash -c 'sahara-db-manage --config-file /etc/sahara/sahara.conf upgrade head'"
98         step_4:
99           sahara_api:
100             image: *sahara_image
101             net: host
102             privileged: false
103             restart: always
104             volumes: *sahara_volumes
105             environment:
106               - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
107       host_prep_tasks:
108         - name: create /var/lib/sahara
109           file:
110             path: /var/lib/sahara
111             state: directory
112         - name: create persistent sahara logs directory
113           file:
114             path: /var/log/containers/sahara
115             state: directory
116       upgrade_tasks:
117         - name: Stop and disable sahara_api service
118           tags: step2
119           service: name=openstack-sahara-api state=stopped enabled=no