Introduce Octavia implementation services
[apex-tripleo-heat-templates.git] / puppet / services / octavia-worker.yaml
1 heat_template_version: ocata
2
3 description: >
4   OpenStack Octavia Worker service.
5
6 parameters:
7   ServiceNetMap:
8     default: {}
9     description: Mapping of service_name -> network name. Typically set
10                  via parameter_defaults in the resource registry.  This
11                  mapping overrides those in ServiceNetMapDefaults.
12     type: json
13   DefaultPasswords:
14     default: {}
15     type: json
16   EndpointMap:
17     default: {}
18     description: Mapping of service endpoint -> protocol. Typically set
19                  via parameter_defaults in the resource registry.
20     type: json
21   MonitoringSubscriptionOctaviaWorker:
22     default: 'overcloud-octavia-worker'
23     type: string
24   OctaviaWorkerLoggingSource:
25     type: json
26     default:
27       tag: openstack.octavia.worker
28       path: /var/log/octavia/worker.log
29   OctaviaAmphoraImageTag:
30     default: ''
31     description: Glance image tag for identifying the amphora image.
32     type: string
33   OctaviaAmphoraNetworkList:
34     default: []
35     description: List of networks to attach to amphorae.
36     type: comma_delimited_list
37   OctaviaLoadBalancerTopology:
38     default: ''
39     description: Load balancer topology configuration.
40     type: string
41   OctaviaFlavorId:
42     default: 65
43     description: Nova flavor ID to be used when creating the nova flavor for
44                  amphora.
45     type: number
46   OctaviaFlavorProperties:
47     default: {}
48     description: Dictionary describing the nova flavor for amphora.
49     type: json
50   OctaviaManageNovaFlavor:
51     default: false
52     description: Configure the nova flavor for the amphora.
53     type: boolean
54   OctaviaSSHKeyName:
55     default: 'octavia-ssh-key'
56     description: name for ssh key to be configured so the amphora can
57                  be logged into.
58     type: string
59
60 conditions:
61   octavia_topology_unset: {equals : [{get_param: OctaviaLoadBalancerTopology}, ""]}
62   octavia_amphora_tag_unset: {equals: [{get_param: OctaviaAmphoraImageTag}, ""]}
63
64 resources:
65
66   OctaviaBase:
67     type: ./octavia-base.yaml
68     properties:
69       ServiceNetMap: {get_param: ServiceNetMap}
70       DefaultPasswords: {get_param: DefaultPasswords}
71       EndpointMap: {get_param: EndpointMap}
72
73 outputs:
74   role_data:
75     description: Role data for the Octavia WoWorker service.
76     value:
77       service_name: octavia_worker
78       monitoring_subscription: {get_param: MonitoringSubscriptionOctaviaWorker}
79       logging_source: {get_param: OctaviaWorkerLoggingSource}
80       logging_groups:
81         -octavia
82       config_settings:
83         map_merge:
84           - get_attr: [OctaviaBase, role_data, config_settings]
85           - octavia::worker::amp_boot_network_list: {get_param: OctaviaAmphoraNetworkList}
86             octavia::worker::amp_flavor_id: {get_param: OctaviaFlavorId}
87             octavia::worker::nova_flavor_config: {get_param: OctaviaFlavorProperties}
88             octavia::worker::manage_nova_flavor: {get_param: OctaviaManageNovaFlavor}
89             octavia::worker::ssh_key_name: {get_param: OctaviaSSHKeyName}
90           -
91             if:
92             - octavia_amphora_tag_unset
93             - {}
94             - octavia::worker::amp_image_tag: {get_param: OctaviaAmphoraImageTag}
95           -
96             if:
97             - octavia_topology_unset
98             - {}
99             - octavia::worker::loadbalancer_topology: {get_param: OctaviaLoadBalancerTopology}
100       step_config: |
101         include tripleo::profile::base::octavia::worker
102