Merge "docker: add logging(source & groups)" into stable/pike
[apex-tripleo-heat-templates.git] / docker / services / pacemaker / ovn-dbs.yaml
1 heat_template_version: pike
2
3 description: >
4   OpenStack containerized OVN DBs service managed by pacemaker
5
6 parameters:
7   DockerOvnDbsImage:
8     description: image
9     type: string
10   DockerOvnDbsConfigImage:
11     description: image
12     type: string
13   EndpointMap:
14     default: {}
15     description: Mapping of service endpoint -> protocol. Typically set
16                  via parameter_defaults in the resource registry.
17     type: json
18   ServiceData:
19     default: {}
20     description: Dictionary packing service data
21     type: json
22   ServiceNetMap:
23     default: {}
24     description: Mapping of service_name -> network name. Typically set
25                  via parameter_defaults in the resource registry.  This
26                  mapping overrides those in ServiceNetMapDefaults.
27     type: json
28   DefaultPasswords:
29     default: {}
30     type: json
31   RoleName:
32     default: ''
33     description: Role name on which the service is applied
34     type: string
35   RoleParameters:
36     default: {}
37     description: Parameters specific to the role
38     type: json
39   OVNNorthboundServerPort:
40     description: Port of the OVN Northbound DB server
41     type: number
42     default: 6641
43   OVNSouthboundServerPort:
44     description: Port of the OVN Southbound DB server
45     type: number
46     default: 6642
47
48 resources:
49
50   ContainersCommon:
51     type: ./../containers-common.yaml
52
53   OVNDbsBase:
54     type: ../../../puppet/services/pacemaker/ovn-dbs.yaml
55     properties:
56       EndpointMap: {get_param: EndpointMap}
57       ServiceData: {get_param: ServiceData}
58       ServiceNetMap: {get_param: ServiceNetMap}
59       DefaultPasswords: {get_param: DefaultPasswords}
60       RoleName: {get_param: RoleName}
61       RoleParameters: {get_param: RoleParameters}
62       OVNNorthboundServerPort: {get_param: OVNNorthboundServerPort}
63       OVNSouthboundServerPort: {get_param: OVNSouthboundServerPort}
64
65 outputs:
66   role_data:
67     description: Role data for the OVN Dbs HA role.
68     value:
69       service_name: {get_attr: [OVNDbsBase, role_data, service_name]}
70       config_settings:
71         map_merge:
72           - get_attr: [OVNDbsBase, role_data, config_settings]
73           - tripleo::profile::pacemaker::ovn_dbs_bundle::ovn_dbs_docker_image: {get_param: DockerOvnDbsImage}
74           - tripleo::profile::pacemaker::ovn_dbs_bundle::nb_db_port: {get_param: OVNNorthboundServerPort}
75           - tripleo::profile::pacemaker::ovn_dbs_bundle::sb_db_port: {get_param: OVNSouthboundServerPort}
76       logging_source: {get_attr: [OVNDbsBase, role_data, logging_source]}
77       logging_groups: {get_attr: [OVNDbsBase, role_data, logging_groups]}
78       step_config: ''
79       service_config_settings: {get_attr: [OVNDbsBase, role_data, service_config_settings]}
80       # BEGIN DOCKER SETTINGS
81       puppet_config:
82         config_volume: 'ovn_dbs'
83         puppet_tags: 'exec'
84         step_config: ''
85         config_image: &ovn_dbs_config_image {get_param: DockerOvnDbsConfigImage}
86       kolla_config:
87         /var/lib/kolla/config_files/ovn_dbs.json:
88           command: /usr/sbin/pacemaker_remoted
89           config_files:
90             - dest: /etc/libqb/force-filesystem-sockets
91               source: /dev/null
92               owner: root
93               perm: '0644'
94             - source: "/var/lib/kolla/config_files/src/*"
95               dest: "/"
96               merge: true
97               preserve_properties: true
98               optional: true
99       docker_config:
100         step_3:
101           ovn_dbs_init_bundle:
102             start_order: 1
103             detach: false
104             net: host
105             user: root
106             config_volume: 'ovn_dbs_init_bundle'
107             command:
108               - '/bin/bash'
109               - '-c'
110               - str_replace:
111                   template:
112                     list_join:
113                       - '; '
114                       - - "cp -a /tmp/puppet-etc/* /etc/puppet; echo '{\"step\": 3}' > /etc/puppet/hieradata/docker.json"
115                         - "FACTER_uuid=docker puppet apply --tags file,file_line,concat,augeas,TAGS -v -e 'CONFIG'"
116                   params:
117                     TAGS: 'pacemaker::resource::bundle,pacemaker::property,pacemaker::resource::ip,pacemaker::resource::ocf,pacemaker::constraint::order,pacemaker::constraint::colocation'
118                     CONFIG:
119                       list_join:
120                         - ';'
121                         - - 'include ::tripleo::profile::base::pacemaker'
122                           - 'include ::tripleo::profile::pacemaker::ovn_dbs_bundle'
123             image: *ovn_dbs_config_image
124             volumes:
125               - /etc/hosts:/etc/hosts:ro
126               - /etc/localtime:/etc/localtime:ro
127               - /etc/puppet:/tmp/puppet-etc:ro
128               - /usr/share/openstack-puppet/modules:/usr/share/openstack-puppet/modules:ro
129               - /etc/corosync/corosync.conf:/etc/corosync/corosync.conf:ro
130               - /dev/shm:/dev/shm:rw
131       host_prep_tasks:
132         - name: create persistent directories
133           file:
134             path: "{{ item }}"
135             state: directory
136           with_items:
137             - /var/log/containers/openvswitch
138             - /var/lib/openvswitch/ovn
139       upgrade_tasks:
140         - name: Stop and disable ovn-northd service
141           tags: step2
142           service: name=ovn-northd state=stopped enabled=no