Merge "Adds network/cidr mapping into a new service property"
[apex-tripleo-heat-templates.git] / docker / services / cinder-backup.yaml
1 heat_template_version: pike
2
3 description: >
4   OpenStack containerized Cinder Backup service
5
6 parameters:
7   DockerNamespace:
8     description: namespace
9     default: 'tripleoupstream'
10     type: string
11   DockerCinderBackupImage:
12     description: image
13     default: 'centos-binary-cinder-backup:latest'
14     type: string
15   DockerCinderConfigImage:
16     description: The container image to use for the cinder config_volume
17     default: 'centos-binary-cinder-api:latest'
18     type: string
19   EndpointMap:
20     default: {}
21     description: Mapping of service endpoint -> protocol. Typically set
22                  via parameter_defaults in the resource registry.
23     type: json
24   ServiceData:
25     default: {}
26     description: Dictionary packing service data
27     type: json
28   ServiceNetMap:
29     default: {}
30     description: Mapping of service_name -> network name. Typically set
31                  via parameter_defaults in the resource registry.  This
32                  mapping overrides those in ServiceNetMapDefaults.
33     type: json
34   DefaultPasswords:
35     default: {}
36     type: json
37   RoleName:
38     default: ''
39     description: Role name on which the service is applied
40     type: string
41   RoleParameters:
42     default: {}
43     description: Parameters specific to the role
44     type: json
45
46
47 resources:
48
49   ContainersCommon:
50     type: ./containers-common.yaml
51
52   CinderBase:
53     type: ../../puppet/services/cinder-backup.yaml
54     properties:
55       EndpointMap: {get_param: EndpointMap}
56       ServiceData: {get_param: ServiceData}
57       ServiceNetMap: {get_param: ServiceNetMap}
58       DefaultPasswords: {get_param: DefaultPasswords}
59       RoleName: {get_param: RoleName}
60       RoleParameters: {get_param: RoleParameters}
61
62 outputs:
63   role_data:
64     description: Role data for the Cinder Backup role.
65     value:
66       service_name: {get_attr: [CinderBase, role_data, service_name]}
67       config_settings: {get_attr: [CinderBase, role_data, config_settings]}
68       step_config: &step_config
69         get_attr: [CinderBase, role_data, step_config]
70       service_config_settings: {get_attr: [CinderBase, role_data, service_config_settings]}
71       # BEGIN DOCKER SETTINGS
72       puppet_config:
73         config_volume: cinder
74         puppet_tags: cinder_config,file,concat,file_line
75         step_config: *step_config
76         config_image:
77           list_join:
78             - '/'
79             - [ {get_param: DockerNamespace}, {get_param: DockerCinderConfigImage} ]
80       kolla_config:
81         /var/lib/kolla/config_files/cinder_backup.json:
82           command: /usr/bin/cinder-backup --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf
83           config_files:
84             # NOTE(mandre): the copy of ceph conf will need to go once we
85             # generate a ceph.conf for cinder in puppet
86             # Copy ceph config files before cinder ones as a precaution, for
87             # the later one to take precendence in case of duplicate files.
88             - source: "/var/lib/kolla/config_files/src-ceph/*"
89               dest: "/"
90               merge: true
91               preserve_properties: true
92             - source: "/var/lib/kolla/config_files/src/*"
93               dest: "/"
94               merge: true
95               preserve_properties: true
96           permissions:
97             - path: /var/lib/cinder
98               owner: cinder:cinder
99               recurse: true
100             - path: /var/log/cinder
101               owner: cinder:cinder
102               recurse: true
103       docker_config:
104         step_3:
105           cinder_backup_init_logs:
106             start_order: 0
107             image: &cinder_backup_image
108               list_join:
109                 - '/'
110                 - [ {get_param: DockerNamespace}, {get_param: DockerCinderBackupImage} ]
111             privileged: false
112             user: root
113             volumes:
114               - /var/log/containers/cinder:/var/log/cinder
115             command: ['/bin/bash', '-c', 'chown -R cinder:cinder /var/log/cinder']
116         step_4:
117           cinder_backup:
118             image: *cinder_backup_image
119             net: host
120             privileged: false
121             restart: always
122             volumes:
123               list_concat:
124                 - {get_attr: [ContainersCommon, volumes]}
125                 -
126                   - /var/lib/kolla/config_files/cinder_backup.json:/var/lib/kolla/config_files/config.json:ro
127                   - /var/lib/config-data/puppet-generated/cinder/:/var/lib/kolla/config_files/src:ro
128                   # FIXME: we need to generate a ceph.conf with puppet for this
129                   - /var/lib/config-data/puppet-generated/ceph/:/var/lib/kolla/config_files/src-ceph:ro
130                   - /dev/:/dev/
131                   - /run/:/run/
132                   - /sys:/sys
133                   - /lib/modules:/lib/modules:ro
134                   - /etc/iscsi:/etc/iscsi
135                   - /var/lib/cinder:/var/lib/cinder
136                   - /var/log/containers/cinder:/var/log/cinder
137             environment:
138               - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
139       host_prep_tasks:
140         - name: create persistent directories
141           file:
142             path: "{{ item }}"
143             state: directory
144           with_items:
145             - /var/lib/cinder
146             - /var/log/containers/cinder
147       upgrade_tasks:
148         - name: Stop and disable cinder_backup service
149           tags: step2
150           service: name=openstack-cinder-backup state=stopped enabled=no