Merge "Change neutron-metadata number of workers determination method"
[apex-tripleo-heat-templates.git] / docker / services / services.yaml
1 heat_template_version: ocata
2
3 description: >
4   Utility stack to convert an array of services into a set of combined
5   role configs.
6
7 parameters:
8   Services:
9     default: []
10     description: |
11         List nested stack service templates.
12     type: comma_delimited_list
13   ServiceNetMap:
14     default: {}
15     description: Mapping of service_name -> network name. Typically set
16                  via parameter_defaults in the resource registry.  This
17                  mapping overrides those in ServiceNetMapDefaults.
18     type: json
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   DefaultPasswords:
25     default: {}
26     description: Mapping of service -> default password. Used to help
27                  pass top level passwords managed by Heat into services.
28     type: json
29   RoleName:
30     default: ''
31     description: Role name on which the service is applied
32     type: string
33   RoleParameters:
34     default: {}
35     description: Parameters specific to the role
36
37 resources:
38
39   PuppetServices:
40     type: ../../puppet/services/services.yaml
41     properties:
42       Services: {get_param: Services}
43       ServiceNetMap: {get_param: ServiceNetMap}
44       EndpointMap: {get_param: EndpointMap}
45       DefaultPasswords: {get_param: DefaultPasswords}
46       RoleName: {get_param: RoleName}
47       RoleParameters: {get_param: RoleParameters}
48
49   ServiceChain:
50     type: OS::Heat::ResourceChain
51     properties:
52       resources: {get_param: Services}
53       concurrent: true
54       resource_properties:
55         ServiceNetMap: {get_param: ServiceNetMap}
56         EndpointMap: {get_param: EndpointMap}
57         DefaultPasswords: {get_param: DefaultPasswords}
58         RoleName: {get_param: RoleName}
59         RoleParameters: {get_param: RoleParameters}
60
61 outputs:
62   role_data:
63     description: Combined Role data for this set of services.
64     value:
65       service_names:
66         {get_attr: [PuppetServices, role_data, service_names]}
67       monitoring_subscriptions:
68         {get_attr: [PuppetServices, role_data, monitoring_subscriptions]}
69       logging_sources:
70         {get_attr: [PuppetServices, role_data, logging_sources]}
71       logging_groups:
72         {get_attr: [PuppetServices, role_data, logging_groups]}
73       service_config_settings:
74         {get_attr: [PuppetServices, role_data, service_config_settings]}
75       config_settings:
76         {get_attr: [PuppetServices, role_data, config_settings]}
77       global_config_settings:
78         {get_attr: [PuppetServices, role_data, global_config_settings]}
79       step_config:
80         {get_attr: [ServiceChain, role_data, step_config]}
81       puppet_config: {get_attr: [ServiceChain, role_data, puppet_config]}
82       kolla_config:
83         map_merge: {get_attr: [ServiceChain, role_data, kolla_config]}
84       docker_config:
85         {get_attr: [ServiceChain, role_data, docker_config]}
86       docker_puppet_tasks:
87         {get_attr: [ServiceChain, role_data, docker_puppet_tasks]}
88       host_prep_tasks:
89         yaql:
90           # Note we use distinct() here to filter any identical tasks
91           expression: $.data.where($ != null).select($.get('host_prep_tasks')).where($ != null).flatten().distinct()
92           data: {get_attr: [ServiceChain, role_data]}
93       upgrade_tasks:
94         yaql:
95           # Note we use distinct() here to filter any identical tasks, e.g yum update for all services
96           expression: $.data.where($ != null).select($.get('upgrade_tasks')).where($ != null).flatten().distinct()
97           data: {get_attr: [ServiceChain, role_data]}
98       upgrade_batch_tasks:
99         yaql:
100           # Note we use distinct() here to filter any identical tasks, e.g yum update for all services
101           expression: $.data.where($ != null).select($.get('upgrade_batch_tasks')).where($ != null).flatten().distinct()
102           data: {get_attr: [ServiceChain, role_data]}
103       service_metadata_settings:
104         get_attr: [PuppetServices, role_data, service_metadata_settings]