Adds network/cidr mapping into a new service property
[apex-tripleo-heat-templates.git] / docker / services / collectd.yaml
1 heat_template_version: pike
2
3 description: >
4   Containerized collectd service
5
6 parameters:
7   DockerNamespace:
8     description: namespace
9     default: 'tripleoupstream'
10     type: string
11   DockerCollectdImage:
12     description: image
13     default: 'centos-binary-collectd:latest'
14     type: string
15   DockerCollectdConfigImage:
16     description: The container image to use for the collectd config_volume
17     default: 'centos-binary-collectd: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   CollectdBase:
53     type: ../../puppet/services/metrics/collectd.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 collectd role.
65     value:
66       service_name: {get_attr: [CollectdBase, role_data, service_name]}
67       config_settings:
68         map_merge:
69           - get_attr: [CollectdBase, role_data, config_settings]
70           - tripleo::profile::base::metrics::collectd::enable_file_logging: true
71             collectd::plugin::logfile::log_file: /var/log/collectd/collectd.log
72       step_config: &step_config
73         get_attr: [CollectdBase, role_data, step_config]
74       service_config_settings: {get_attr: [CollectdBase, role_data, service_config_settings]}
75       # BEGIN DOCKER SETTINGS
76       puppet_config:
77         config_volume: collectd
78         puppet_tags:  collectd_client_config
79         step_config: *step_config
80         config_image:
81           list_join:
82             - '/'
83             - [ {get_param: DockerNamespace}, {get_param: DockerCollectdConfigImage} ]
84       kolla_config:
85         /var/lib/kolla/config_files/collectd.json:
86           command: /usr/sbin/collectd -f
87           config_files:
88             - source: "/var/lib/kolla/config_files/src/*"
89               dest: "/"
90               merge: true
91               preserve_properties: true
92           permissions:
93             - path: /var/log/collectd
94               owner: collectd:collectd
95               recurse: true
96       docker_config:
97         step_3:
98           collectd:
99             image:
100               list_join:
101                 - '/'
102                 - [ {get_param: DockerNamespace}, {get_param: DockerCollectdImage} ]
103             net: host
104             privileged: true
105             restart: always
106             volumes:
107               list_concat:
108                 - {get_attr: [ContainersCommon, volumes]}
109                 -
110                   - /var/run/docker.sock:/var/run/docker.sock:rw
111                   - /var/lib/kolla/config_files/collectd.json:/var/lib/kolla/config_files/config.json:ro
112                   - /var/lib/config-data/puppet-generated/collectd/:/var/lib/kolla/config_files/src:ro
113             environment:
114               - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
115       host_prep_tasks:
116         - name: create persistent logs directory
117           file:
118             path: /var/log/containers/collectd
119             state: directory
120       upgrade_tasks:
121         - name: Stop and disable collectd service
122           tags: step2
123           service: name=collectd.service state=stopped enabled=no