1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
# Note: this could eventually be translated to a Neutron Load Balancer
# However, in Heat/HOT the preferred way of doing this is creating an Autoscale Group
#
#heat_template_version: 2015-04-30 ...
#resources:
#load_bal_resource:
# type: OS::Neutron::Pool
# properties:
# admin_state_up: Boolean
# description: String
# lb_method: String
# monitors: [Value, Value, ...]
# name: String
# protocol: String
# provider: String
# subnet: String
# vip: {
# "description": String,
# "name": String,
# "connection_limit": Integer,
# "protocol_port": Integer,
# "subnet": String,
# "address": String,
# "admin_state_up": Boolean,
# "session_persistence":
# {
# "cookie_name": String,
# "type": String}
# }
#
# example from: https://gist.github.com/therve/9231701
#
#resources:
# web_server_group:
# type: AWS::AutoScaling::AutoScalingGroup
# properties:
# AvailabilityZones: [nova]
# LaunchConfigurationName: {get_resource: launch_config}
# MinSize: 1
# MaxSize: 3
# LoadBalancerNames:
# - {get_resource: mylb}
# mypool:
# type: OS::Neutron::Pool
# properties:
# protocol: HTTP
# monitors: [{get_resource: mymonitor}]
# subnet_id: {get_param: subnet_id}
# lb_method: ROUND_ROBIN
# vip:
# protocol_port: 80
# mylb:
# type: OS::Neutron::LoadBalancer
# properties:
# protocol_port: 80
# pool_id: {get_resource: mypool}
tosca_definitions_version: tosca_simple_yaml_1_0
description: Template for deploying a load balancer with predefined endpoint properties.
topology_template:
node_templates:
simple_load_balancer:
type: tosca.nodes.LoadBalancer
capabilities:
# properties:
# algorithm: DEFAULT (define new keyword, ROUND_ROBIN?)
# Client, public facing endpoint
client:
properties:
network_name: PUBLIC
floating: true
dns_name: http://mycompany.com/
|