Change flat network name for nosdn fdio scenario
[apex-tripleo-heat-templates.git] / puppet / services / ceilometer-api.yaml
1 heat_template_version: pike
2
3 description: >
4   OpenStack Ceilometer API service configured with Puppet
5
6 parameters:
7   ServiceData:
8     default: {}
9     description: Dictionary packing service data
10     type: json
11   ServiceNetMap:
12     default: {}
13     description: Mapping of service_name -> network name. Typically set
14                  via parameter_defaults in the resource registry.  This
15                  mapping overrides those in ServiceNetMapDefaults.
16     type: json
17   DefaultPasswords:
18     default: {}
19     type: json
20   RoleName:
21     default: ''
22     description: Role name on which the service is applied
23     type: string
24   RoleParameters:
25     default: {}
26     description: Parameters specific to the role
27     type: json
28   EndpointMap:
29     default: {}
30     description: Mapping of service endpoint -> protocol. Typically set
31                  via parameter_defaults in the resource registry.
32     type: json
33   MonitoringSubscriptionCeilometerApi:
34     default: 'overcloud-ceilometer-api'
35     type: string
36   CeilometerApiLoggingSource:
37     type: json
38     default:
39       tag: openstack.ceilometer.api
40       path: /var/log/ceilometer/api.log
41   EnableInternalTLS:
42     type: boolean
43     default: false
44   CeilometerApiPolicies:
45     description: |
46       A hash of policies to configure for Ceilometer API.
47       e.g. { ceilometer-context_is_admin: { key: context_is_admin, value: 'role:admin' } }
48     default: {}
49     type: json
50
51 resources:
52   CeilometerServiceBase:
53     type: ./ceilometer-base.yaml
54     properties:
55       ServiceData: {get_param: ServiceData}
56       ServiceNetMap: {get_param: ServiceNetMap}
57       DefaultPasswords: {get_param: DefaultPasswords}
58       EndpointMap: {get_param: EndpointMap}
59       RoleName: {get_param: RoleName}
60       RoleParameters: {get_param: RoleParameters}
61
62   ApacheServiceBase:
63     type: ./apache.yaml
64     properties:
65       ServiceData: {get_param: ServiceData}
66       ServiceNetMap: {get_param: ServiceNetMap}
67       DefaultPasswords: {get_param: DefaultPasswords}
68       EndpointMap: {get_param: EndpointMap}
69       RoleName: {get_param: RoleName}
70       RoleParameters: {get_param: RoleParameters}
71       EnableInternalTLS: {get_param: EnableInternalTLS}
72
73 outputs:
74   role_data:
75     description: Role data for the Ceilometer API role.
76     value:
77       service_name: ceilometer_api
78       monitoring_subscription: {get_param: MonitoringSubscriptionCeilometerApi}
79       logging_source: {get_param: CeilometerApiLoggingSource}
80       logging_groups:
81         - ceilometer
82       config_settings:
83         map_merge:
84           - get_attr: [ApacheServiceBase, role_data, config_settings]
85           - get_attr: [CeilometerServiceBase, role_data, config_settings]
86           - tripleo.ceilometer_api.firewall_rules:
87               '124 ceilometer':
88                 dport:
89                   - 8777
90                   - 13777
91             # NOTE: bind IP is found in Heat replacing the network name with the
92             # local node IP for the given network; replacement examples
93             # (eg. for internal_api):
94             # internal_api -> IP
95             # internal_api_uri -> [IP]
96             # internal_api_subnet - > IP/CIDR
97           - ceilometer::api::service_name: 'httpd'
98             ceilometer::api::enable_proxy_headers_parsing: true
99             ceilometer::api::host:
100               str_replace:
101                 template:
102                   "%{hiera('fqdn_$NETWORK')}"
103                 params:
104                   $NETWORK: {get_param: [ServiceNetMap, CeilometerApiNetwork]}
105             ceilometer::policy::policies: {get_param: CeilometerApiPolicies}
106             ceilometer::wsgi::apache::bind_host: {get_param: [ServiceNetMap, CeilometerApiNetwork]}
107             ceilometer::wsgi::apache::ssl: {get_param: EnableInternalTLS}
108             ceilometer::wsgi::apache::servername:
109               str_replace:
110                 template:
111                   "%{hiera('fqdn_$NETWORK')}"
112                 params:
113                   $NETWORK: {get_param: [ServiceNetMap, CeilometerApiNetwork]}
114       service_config_settings:
115         get_attr: [CeilometerServiceBase, role_data, service_config_settings]
116       step_config: |
117         include ::tripleo::profile::base::ceilometer::api
118       metadata_settings:
119         get_attr: [ApacheServiceBase, role_data, metadata_settings]
120       upgrade_tasks:
121         list_concat:
122           - get_attr: [ApacheServiceBase, role_data, upgrade_tasks]
123           -
124             - name: Stop ceilometer_api service (running under httpd)
125               tags: step1
126               service: name=httpd state=stopped