Merge "Enable composable upgrades for docker service templates"
[apex-tripleo-heat-templates.git] / docker / services / glance-api.yaml
1 heat_template_version: ocata
2
3 description: >
4   OpenStack Glance service configured with Puppet
5
6 parameters:
7   DockerNamespace:
8     description: namespace
9     default: 'tripleoupstream'
10     type: string
11   DockerGlanceApiImage:
12     description: image
13     default: 'centos-binary-glance-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
30 resources:
31
32   GlanceApiPuppetBase:
33     type: ../../puppet/services/glance-api.yaml
34     properties:
35       EndpointMap: {get_param: EndpointMap}
36       ServiceNetMap: {get_param: ServiceNetMap}
37       DefaultPasswords: {get_param: DefaultPasswords}
38
39 outputs:
40   role_data:
41     description: Role data for the Glance API role.
42     value:
43       service_name: {get_attr: [GlanceApiPuppetBase, role_data, service_name]}
44       config_settings:
45         map_merge:
46           - get_attr: [GlanceApiPuppetBase, role_data, config_settings]
47           - glance::api::sync_db: false
48       step_config: &step_config
49         get_attr: [GlanceApiPuppetBase, role_data, step_config]
50       service_config_settings: {get_attr: [GlanceApiPuppetBase, role_data, service_config_settings]}
51       # BEGIN DOCKER SETTINGS #
52       docker_image: &glance_image
53         list_join:
54           - '/'
55           - [ {get_param: DockerNamespace}, {get_param: DockerGlanceApiImage} ]
56       puppet_config:
57         config_volume: glance_api
58         puppet_tags: glance_api_config,glance_api_paste_ini,glance_swift_config,glance_cache_config
59         step_config: *step_config
60         config_image: *glance_image
61       kolla_config:
62          /var/lib/kolla/config_files/glance-api.json:
63            command: /usr/bin/glance-api --config-file /usr/share/glance/glance-api-dist.conf --config-file /etc/glance/glance-api.conf
64            config_files:
65            - dest: /etc/glance/glance-api.conf
66              owner: glance
67              perm: '0600'
68              source: /var/lib/kolla/config_files/src/etc/glance/glance-api.conf
69            - dest: /etc/glance/glance-swift.conf
70              owner: glance
71              perm: '0600'
72              source: /var/lib/kolla/config_files/src/etc/glance/glance-swift.conf
73       docker_config:
74         step_3:
75           glance_api_db_sync:
76             image: *glance_image
77             net: host
78             privileged: false
79             detach: false
80             volumes: &glance_volumes
81               - /var/lib/kolla/config_files/glance-api.json:/var/lib/kolla/config_files/config.json
82               - /etc/localtime:/etc/localtime:ro
83               - /lib/modules:/lib/modules:ro
84               - /var/lib/config-data/glance_api/:/var/lib/kolla/config_files/src:ro
85               - /run:/run
86               - /dev:/dev
87               - /etc/hosts:/etc/hosts:ro
88             environment:
89               - KOLLA_BOOTSTRAP=True
90               - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
91         step_4:
92           glance_api:
93             image: *glance_image
94             net: host
95             privileged: false
96             restart: always
97             volumes: *glance_volumes
98             environment:
99               - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
100       upgrade_tasks:
101         - name: Stop and disable glance_api service
102           tags: step2
103           service: name=openstack-glance-api state=stopped enabled=no