vcloud-edge_gateway 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +6 -0
- data/README.md +28 -0
- data/bin/vcloud-configure-edge +3 -2
- data/lib/vcloud/edge_gateway.rb +5 -6
- data/lib/vcloud/edge_gateway/configuration_generator/load_balancer_service.rb +14 -10
- data/lib/vcloud/edge_gateway/configure.rb +32 -0
- data/lib/vcloud/edge_gateway/schema/edge_gateway.rb +18 -0
- data/lib/vcloud/edge_gateway/schema/firewall_service.rb +41 -0
- data/lib/vcloud/edge_gateway/schema/load_balancer_service.rb +183 -0
- data/lib/vcloud/edge_gateway/schema/nat_service.rb +38 -0
- data/lib/vcloud/edge_gateway/version.rb +1 -1
- data/spec/integration/edge_gateway/data/load_balancer_config.yaml.mustache +4 -0
- data/spec/integration/edge_gateway/edge_gateway_services_spec.rb +6 -6
- data/spec/integration/edge_gateway/firewall_service_spec.rb +9 -9
- data/spec/integration/edge_gateway/load_balancer_service_spec.rb +10 -10
- data/spec/integration/edge_gateway/nat_service_spec.rb +10 -10
- data/spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_http-input.yaml +1 -1
- data/spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_http-output.yaml +2 -2
- data/spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_http-tcp-healthcheck-input.yaml +41 -0
- data/spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_http-tcp-healthcheck-with-uri-input.yaml +42 -0
- data/spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_https-healthcheck-uri-input.yaml +42 -0
- data/spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_https-output.yaml +2 -2
- data/spec/vcloud/edge_gateway/configuration_generator/data/load_balancer_mixed_complex-output.yaml +3 -3
- data/spec/vcloud/edge_gateway/configuration_generator/load_balancer_service_spec.rb +64 -3
- data/spec/vcloud/edge_gateway/edge_gateway_configuration_spec.rb +6 -6
- data/spec/vcloud/edge_gateway/firewall_schema_validation_spec.rb +2 -2
- data/spec/vcloud/edge_gateway/load_balancer_schema_validation_spec.rb +123 -7
- data/spec/vcloud/edge_gateway/nat_schema_validation_spec.rb +4 -4
- metadata +14 -18
- data/lib/vcloud/edge_gateway_services.rb +0 -31
- data/lib/vcloud/schema/edge_gateway.rb +0 -16
- data/lib/vcloud/schema/firewall_service.rb +0 -39
- data/lib/vcloud/schema/load_balancer_service.rb +0 -132
- data/lib/vcloud/schema/nat_service.rb +0 -35
- data/spec/vcloud/data/basic_preamble_test.erb +0 -8
- data/spec/vcloud/data/basic_preamble_test.erb.OUT +0 -8
- data/spec/vcloud/data/working.json +0 -21
- data/spec/vcloud/data/working.yaml +0 -22
- data/spec/vcloud/data/working_with_defaults.yaml +0 -25
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
require 'tempfile'
|
3
3
|
|
4
4
|
module Vcloud
|
5
|
-
describe
|
5
|
+
describe EdgeGateway::Configure do
|
6
6
|
|
7
7
|
before(:all) do
|
8
8
|
IntegrationHelper.verify_env_vars
|
@@ -16,7 +16,7 @@ module Vcloud
|
|
16
16
|
@files_to_delete = []
|
17
17
|
end
|
18
18
|
|
19
|
-
context "
|
19
|
+
context "with multiple services" do
|
20
20
|
|
21
21
|
before(:all) do
|
22
22
|
reset_edge_gateway
|
@@ -39,7 +39,7 @@ module Vcloud
|
|
39
39
|
it "should only create one edgeGateway update task when updating the configuration" do
|
40
40
|
start_time = Time.now.getutc
|
41
41
|
task_list_before_update = get_all_edge_gateway_update_tasks_ordered_by_start_date_since_time(start_time)
|
42
|
-
|
42
|
+
EdgeGateway::Configure.new(@initial_config_file, @vars_config_file).update
|
43
43
|
task_list_after_update = get_all_edge_gateway_update_tasks_ordered_by_start_date_since_time(start_time)
|
44
44
|
expect(task_list_after_update.size - task_list_before_update.size).to be(1)
|
45
45
|
end
|
@@ -55,7 +55,7 @@ module Vcloud
|
|
55
55
|
it "should not update the EdgeGateway again if the config hasn't changed" do
|
56
56
|
start_time = Time.now.getutc
|
57
57
|
task_list_before_update = get_all_edge_gateway_update_tasks_ordered_by_start_date_since_time(start_time)
|
58
|
-
|
58
|
+
EdgeGateway::Configure.new(@initial_config_file, @vars_config_file).update
|
59
59
|
task_list_after_update = get_all_edge_gateway_update_tasks_ordered_by_start_date_since_time(start_time)
|
60
60
|
expect(task_list_after_update.size - task_list_before_update.size).to be(0)
|
61
61
|
end
|
@@ -63,7 +63,7 @@ module Vcloud
|
|
63
63
|
it "should only create one additional edgeGateway update task when adding the LoadBalancer config" do
|
64
64
|
start_time = Time.now.getutc
|
65
65
|
task_list_before_update = get_all_edge_gateway_update_tasks_ordered_by_start_date_since_time(start_time)
|
66
|
-
|
66
|
+
EdgeGateway::Configure.new(@adding_load_balancer_config_file, @vars_config_file).update
|
67
67
|
task_list_after_update = get_all_edge_gateway_update_tasks_ordered_by_start_date_since_time(start_time)
|
68
68
|
expect(task_list_after_update.size - task_list_before_update.size).to be(1)
|
69
69
|
end
|
@@ -71,7 +71,7 @@ module Vcloud
|
|
71
71
|
it "should not update the EdgeGateway again if we reapply the 'adding load balancer' config" do
|
72
72
|
start_time = Time.now.getutc
|
73
73
|
task_list_before_update = get_all_edge_gateway_update_tasks_ordered_by_start_date_since_time(start_time)
|
74
|
-
|
74
|
+
EdgeGateway::Configure.new(@adding_load_balancer_config_file, @vars_config_file).update
|
75
75
|
task_list_after_update = get_all_edge_gateway_update_tasks_ordered_by_start_date_since_time(start_time)
|
76
76
|
expect(task_list_after_update.size - task_list_before_update.size).to be(0)
|
77
77
|
end
|
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
require 'tempfile'
|
3
3
|
|
4
4
|
module Vcloud
|
5
|
-
describe
|
5
|
+
describe EdgeGateway::Configure do
|
6
6
|
|
7
7
|
before(:all) do
|
8
8
|
IntegrationHelper.verify_env_vars
|
@@ -16,7 +16,7 @@ module Vcloud
|
|
16
16
|
@files_to_delete = []
|
17
17
|
end
|
18
18
|
|
19
|
-
context "Test FirewallService specifics
|
19
|
+
context "Test FirewallService specifics" do
|
20
20
|
|
21
21
|
before(:all) do
|
22
22
|
reset_edge_gateway
|
@@ -31,7 +31,7 @@ module Vcloud
|
|
31
31
|
before(:all) do
|
32
32
|
local_config = Core::ConfigLoader.new.load_config(
|
33
33
|
@initial_firewall_config_file,
|
34
|
-
Vcloud::Schema::EDGE_GATEWAY_SERVICES,
|
34
|
+
Vcloud::EdgeGateway::Schema::EDGE_GATEWAY_SERVICES,
|
35
35
|
@vars_config_file
|
36
36
|
)
|
37
37
|
@local_vcloud_config = EdgeGateway::ConfigurationGenerator::FirewallService.new.generate_fog_config(local_config[:firewall_service])
|
@@ -44,7 +44,7 @@ module Vcloud
|
|
44
44
|
|
45
45
|
it "should only need to make one call to Core::EdgeGateway.update_configuration" do
|
46
46
|
expect_any_instance_of(Core::EdgeGateway).to receive(:update_configuration).exactly(1).times.and_call_original
|
47
|
-
|
47
|
+
EdgeGateway::Configure.new(@initial_firewall_config_file, @vars_config_file).update
|
48
48
|
end
|
49
49
|
|
50
50
|
it "should have configured at least one firewall rule" do
|
@@ -59,8 +59,8 @@ module Vcloud
|
|
59
59
|
end
|
60
60
|
|
61
61
|
it "and then should not configure the firewall service if updated again with the same configuration (idempotency)" do
|
62
|
-
expect(Vcloud::Core.logger).to receive(:info).with('
|
63
|
-
|
62
|
+
expect(Vcloud::Core.logger).to receive(:info).with('EdgeGateway::Configure.update: Configuration is already up to date. Skipping.')
|
63
|
+
EdgeGateway::Configure.new(@initial_firewall_config_file, @vars_config_file).update
|
64
64
|
end
|
65
65
|
|
66
66
|
it "ConfigurationDiffer should return empty if local and remote firewall configs match" do
|
@@ -73,7 +73,7 @@ module Vcloud
|
|
73
73
|
it "should highlight a difference if local firewall config has been updated" do
|
74
74
|
local_config = Core::ConfigLoader.new.load_config(
|
75
75
|
IntegrationHelper.fixture_file('firewall_config_updated_rule.yaml.mustache'),
|
76
|
-
Vcloud::Schema::EDGE_GATEWAY_SERVICES,
|
76
|
+
Vcloud::EdgeGateway::Schema::EDGE_GATEWAY_SERVICES,
|
77
77
|
@vars_config_file
|
78
78
|
)
|
79
79
|
local_firewall_config = EdgeGateway::ConfigurationGenerator::FirewallService.new.generate_fog_config(local_config[:firewall_service])
|
@@ -132,10 +132,10 @@ module Vcloud
|
|
132
132
|
context "Specific FirewallService update tests" do
|
133
133
|
|
134
134
|
it "should have the same rule order as the input rule order" do
|
135
|
-
|
135
|
+
EdgeGateway::Configure.new(
|
136
136
|
IntegrationHelper.fixture_file('firewall_rule_order_test.yaml.mustache'),
|
137
137
|
@vars_config_file
|
138
|
-
)
|
138
|
+
).update
|
139
139
|
remote_rules = @edge_gateway.vcloud_attributes[:Configuration][:EdgeGatewayServiceConfiguration][:FirewallService][:FirewallRule]
|
140
140
|
remote_descriptions_list = remote_rules.map {|rule| rule[:Description]}
|
141
141
|
expect(remote_descriptions_list).
|
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
require 'tempfile'
|
3
3
|
|
4
4
|
module Vcloud
|
5
|
-
describe
|
5
|
+
describe EdgeGateway::Configure do
|
6
6
|
|
7
7
|
before(:all) do
|
8
8
|
IntegrationHelper.verify_env_vars
|
@@ -16,7 +16,7 @@ module Vcloud
|
|
16
16
|
@files_to_delete = []
|
17
17
|
end
|
18
18
|
|
19
|
-
context "Test LoadBalancerService specifics
|
19
|
+
context "Test LoadBalancerService specifics" do
|
20
20
|
|
21
21
|
before(:all) do
|
22
22
|
reset_edge_gateway
|
@@ -30,7 +30,7 @@ module Vcloud
|
|
30
30
|
before(:all) do
|
31
31
|
local_config = Core::ConfigLoader.new.load_config(
|
32
32
|
@initial_load_balancer_config_file,
|
33
|
-
Vcloud::Schema::EDGE_GATEWAY_SERVICES,
|
33
|
+
Vcloud::EdgeGateway::Schema::EDGE_GATEWAY_SERVICES,
|
34
34
|
@vars_config_file
|
35
35
|
)
|
36
36
|
@local_vcloud_config = EdgeGateway::ConfigurationGenerator::LoadBalancerService.new(
|
@@ -48,7 +48,7 @@ module Vcloud
|
|
48
48
|
it "should only make one EdgeGateway update task, to minimise EdgeGateway reload events" do
|
49
49
|
start_time = Time.now.getutc
|
50
50
|
task_list_before_update = get_all_edge_gateway_update_tasks_ordered_by_start_date_since_time(start_time)
|
51
|
-
|
51
|
+
EdgeGateway::Configure.new(@initial_load_balancer_config_file, @vars_config_file).update
|
52
52
|
task_list_after_update = get_all_edge_gateway_update_tasks_ordered_by_start_date_since_time(start_time)
|
53
53
|
expect(task_list_after_update.size - task_list_before_update.size).to be(1)
|
54
54
|
end
|
@@ -89,8 +89,8 @@ module Vcloud
|
|
89
89
|
|
90
90
|
it "should not then configure the LoadBalancerService if updated again with the same configuration" do
|
91
91
|
expect(Vcloud::Core.logger).
|
92
|
-
to receive(:info).with('
|
93
|
-
|
92
|
+
to receive(:info).with('EdgeGateway::Configure.update: Configuration is already up to date. Skipping.')
|
93
|
+
EdgeGateway::Configure.new(@initial_load_balancer_config_file, @vars_config_file).update
|
94
94
|
end
|
95
95
|
|
96
96
|
end
|
@@ -99,7 +99,7 @@ module Vcloud
|
|
99
99
|
|
100
100
|
it "should be able to configure with no pools and virtual_servers" do
|
101
101
|
config_file = IntegrationHelper.fixture_file('load_balancer_empty.yaml.mustache')
|
102
|
-
|
102
|
+
EdgeGateway::Configure.new(config_file, @vars_config_file).update
|
103
103
|
edge_config = @edge_gateway.vcloud_attributes[:Configuration]
|
104
104
|
remote_vcloud_config = edge_config[:EdgeGatewayServiceConfiguration][:LoadBalancerService]
|
105
105
|
expect(remote_vcloud_config[:Pool].size).to be == 0
|
@@ -108,7 +108,7 @@ module Vcloud
|
|
108
108
|
|
109
109
|
it "should be able to configure with a single Pool and no VirtualServers" do
|
110
110
|
config_file = IntegrationHelper.fixture_file('load_balancer_single_pool.yaml.mustache')
|
111
|
-
|
111
|
+
EdgeGateway::Configure.new(config_file, @vars_config_file).update
|
112
112
|
edge_config = @edge_gateway.vcloud_attributes[:Configuration]
|
113
113
|
remote_vcloud_config = edge_config[:EdgeGatewayServiceConfiguration][:LoadBalancerService]
|
114
114
|
expect(remote_vcloud_config[:Pool].size).to be == 1
|
@@ -116,13 +116,13 @@ module Vcloud
|
|
116
116
|
|
117
117
|
it "should raise an error when trying configure with a single VirtualServer, and no pool mentioned" do
|
118
118
|
config_file = IntegrationHelper.fixture_file('load_balancer_single_virtual_server_missing_pool.yaml.mustache')
|
119
|
-
expect {
|
119
|
+
expect { EdgeGateway::Configure.new(config_file, @vars_config_file).update }.
|
120
120
|
to raise_error('Supplied configuration does not match supplied schema')
|
121
121
|
end
|
122
122
|
|
123
123
|
it "should raise an error when trying configure with a single VirtualServer, with an unconfigured pool" do
|
124
124
|
config_file = IntegrationHelper.fixture_file('load_balancer_single_virtual_server_invalid_pool.yaml.mustache')
|
125
|
-
expect {
|
125
|
+
expect { EdgeGateway::Configure.new(config_file, @vars_config_file).update }.
|
126
126
|
to raise_error(
|
127
127
|
'Load balancer virtual server integration-test-vs-1 does not have a valid backing pool.'
|
128
128
|
)
|
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
require 'tempfile'
|
3
3
|
|
4
4
|
module Vcloud
|
5
|
-
describe
|
5
|
+
describe EdgeGateway::Configure do
|
6
6
|
|
7
7
|
before(:all) do
|
8
8
|
IntegrationHelper.verify_env_vars
|
@@ -16,7 +16,7 @@ module Vcloud
|
|
16
16
|
@files_to_delete = []
|
17
17
|
end
|
18
18
|
|
19
|
-
context "Test NatService specifics
|
19
|
+
context "Test NatService specifics" do
|
20
20
|
|
21
21
|
before(:all) do
|
22
22
|
reset_edge_gateway
|
@@ -30,7 +30,7 @@ module Vcloud
|
|
30
30
|
before(:all) do
|
31
31
|
local_config = Core::ConfigLoader.new.load_config(
|
32
32
|
@initial_nat_config_file,
|
33
|
-
Vcloud::Schema::EDGE_GATEWAY_SERVICES,
|
33
|
+
Vcloud::EdgeGateway::Schema::EDGE_GATEWAY_SERVICES,
|
34
34
|
@vars_config_file
|
35
35
|
)
|
36
36
|
@local_vcloud_config = EdgeGateway::ConfigurationGenerator::NatService.new(
|
@@ -47,7 +47,7 @@ module Vcloud
|
|
47
47
|
it "should only make one EdgeGateway update task, to minimise EdgeGateway reload events" do
|
48
48
|
start_time = Time.now.getutc
|
49
49
|
task_list_before_update = get_all_edge_gateway_update_tasks_ordered_by_start_date_since_time(start_time)
|
50
|
-
|
50
|
+
EdgeGateway::Configure.new(@initial_nat_config_file, @vars_config_file).update
|
51
51
|
task_list_after_update = get_all_edge_gateway_update_tasks_ordered_by_start_date_since_time(start_time)
|
52
52
|
expect(task_list_after_update.size - task_list_before_update.size).to be(1)
|
53
53
|
end
|
@@ -71,8 +71,8 @@ module Vcloud
|
|
71
71
|
end
|
72
72
|
|
73
73
|
it "and then should not configure the firewall service if updated again with the same configuration (idempotency)" do
|
74
|
-
expect(Vcloud::Core.logger).to receive(:info).with('
|
75
|
-
|
74
|
+
expect(Vcloud::Core.logger).to receive(:info).with('EdgeGateway::Configure.update: Configuration is already up to date. Skipping.')
|
75
|
+
EdgeGateway::Configure.new(@initial_nat_config_file, @vars_config_file).update
|
76
76
|
end
|
77
77
|
|
78
78
|
end
|
@@ -118,10 +118,10 @@ module Vcloud
|
|
118
118
|
original_ip: @int_net_ip,
|
119
119
|
})
|
120
120
|
|
121
|
-
|
121
|
+
EdgeGateway::Configure.new(
|
122
122
|
IntegrationHelper.fixture_file('hairpin_nat_config.yaml.mustache'),
|
123
123
|
vars_file
|
124
|
-
)
|
124
|
+
).update
|
125
125
|
|
126
126
|
edge_gateway = Vcloud::Core::EdgeGateway.get_by_name(@edge_name)
|
127
127
|
nat_service = edge_gateway.vcloud_attributes[:Configuration][:EdgeGatewayServiceConfiguration][:NatService]
|
@@ -148,10 +148,10 @@ module Vcloud
|
|
148
148
|
})
|
149
149
|
|
150
150
|
expect {
|
151
|
-
|
151
|
+
EdgeGateway::Configure.new(
|
152
152
|
IntegrationHelper.fixture_file('nat_config.yaml.mustache'),
|
153
153
|
vars_file
|
154
|
-
)
|
154
|
+
).update
|
155
155
|
}.to raise_error("unable to find gateway network interface with id #{random_network_id}")
|
156
156
|
end
|
157
157
|
end
|
@@ -11,7 +11,7 @@
|
|
11
11
|
port: 80, #req
|
12
12
|
protocol: 'HTTP', #req
|
13
13
|
health_check: {
|
14
|
-
port: '80' , #
|
14
|
+
port: '80' , #opt, default is ''
|
15
15
|
protocol: 'HTTP', #opt, default same as service port protocol, HTTPS => SSL
|
16
16
|
health_threshold: '1', #opt default = 2
|
17
17
|
unhealth_threshold: '6', #opt default = 3
|
@@ -24,7 +24,7 @@
|
|
24
24
|
HealthCheckPort: '',
|
25
25
|
HealthCheck:
|
26
26
|
{
|
27
|
-
Mode: "SSL", Uri: '
|
27
|
+
Mode: "SSL", Uri: '', HealthThreshold: '2', UnhealthThreshold: '3', Interval: '5', Timeout: '15'
|
28
28
|
}
|
29
29
|
},
|
30
30
|
{
|
@@ -35,7 +35,7 @@
|
|
35
35
|
HealthCheckPort: '',
|
36
36
|
HealthCheck:
|
37
37
|
{
|
38
|
-
Mode: "TCP", Uri: '
|
38
|
+
Mode: "TCP", Uri: '', HealthThreshold: '2', UnhealthThreshold: '3', Interval: '5', Timeout: '15'
|
39
39
|
}
|
40
40
|
}
|
41
41
|
],
|
@@ -0,0 +1,41 @@
|
|
1
|
+
{
|
2
|
+
enabled: 'true', #opt
|
3
|
+
pools: [
|
4
|
+
{
|
5
|
+
name: 'web-app',
|
6
|
+
description: 'web-app',#opt
|
7
|
+
service: {
|
8
|
+
http: {
|
9
|
+
enabled: 'true', #opt, default true
|
10
|
+
algorithm: 'ROUND_ROBIN', #opt default RRB
|
11
|
+
port: 80, #req
|
12
|
+
protocol: 'HTTP', #req
|
13
|
+
health_check: {
|
14
|
+
port: '80' , #opt, default is ''
|
15
|
+
protocol: 'TCP', #opt, default same as service port protocol, HTTPS => SSL
|
16
|
+
health_threshold: '1', #opt default = 2
|
17
|
+
unhealth_threshold: '6', #opt default = 3
|
18
|
+
interval: '20', #opt default 5 sec
|
19
|
+
timeout: '25' } #optional default 15sec
|
20
|
+
}
|
21
|
+
},
|
22
|
+
members: [{ ip_address: '192.168.254.100', #req
|
23
|
+
weight: '1', #opt default = 1, NB: 0 == 'disabled',
|
24
|
+
}],
|
25
|
+
|
26
|
+
}
|
27
|
+
],
|
28
|
+
virtual_servers: [
|
29
|
+
{
|
30
|
+
name: 'router', #req
|
31
|
+
description: 'describe it', #opt
|
32
|
+
ip_address: '192.2.0.55', #req
|
33
|
+
network: '12345678-1234-1234-1234-123456789012', #req
|
34
|
+
pool: 'web-app', #req
|
35
|
+
logging: 'false', #opt, default false
|
36
|
+
service_profiles: {
|
37
|
+
http: { enabled: true, port: '80' }
|
38
|
+
},
|
39
|
+
}
|
40
|
+
]
|
41
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
{
|
2
|
+
enabled: 'true', #opt
|
3
|
+
pools: [
|
4
|
+
{
|
5
|
+
name: 'web-app',
|
6
|
+
description: 'web-app',#opt
|
7
|
+
service: {
|
8
|
+
http: {
|
9
|
+
enabled: 'true', #opt, default true
|
10
|
+
algorithm: 'ROUND_ROBIN', #opt default RRB
|
11
|
+
port: 80, #req
|
12
|
+
protocol: 'HTTP', #req
|
13
|
+
health_check: {
|
14
|
+
port: '80' , #opt, default is ''
|
15
|
+
protocol: 'TCP', #opt, default same as service port protocol, HTTPS => SSL
|
16
|
+
uri: '/notsupported', #opt
|
17
|
+
health_threshold: '1', #opt default = 2
|
18
|
+
unhealth_threshold: '6', #opt default = 3
|
19
|
+
interval: '20', #opt default 5 sec
|
20
|
+
timeout: '25' } #optional default 15sec
|
21
|
+
}
|
22
|
+
},
|
23
|
+
members: [{ ip_address: '192.168.254.100', #req
|
24
|
+
weight: '1', #opt default = 1, NB: 0 == 'disabled',
|
25
|
+
}],
|
26
|
+
|
27
|
+
}
|
28
|
+
],
|
29
|
+
virtual_servers: [
|
30
|
+
{
|
31
|
+
name: 'router', #req
|
32
|
+
description: 'describe it', #opt
|
33
|
+
ip_address: '192.2.0.55', #req
|
34
|
+
network: '12345678-1234-1234-1234-123456789012', #req
|
35
|
+
pool: 'web-app', #req
|
36
|
+
logging: 'false', #opt, default false
|
37
|
+
service_profiles: {
|
38
|
+
http: { enabled: true, port: '80' }
|
39
|
+
},
|
40
|
+
}
|
41
|
+
]
|
42
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
{
|
2
|
+
enabled: 'true', #opt
|
3
|
+
pools: [
|
4
|
+
{
|
5
|
+
name: 'test-pool-1',
|
6
|
+
description: 'Our Pool description',
|
7
|
+
service: {
|
8
|
+
https: {
|
9
|
+
algorithm: 'IP_HASH',
|
10
|
+
port: 443,
|
11
|
+
protocol: 'HTTPS',
|
12
|
+
health_check: {
|
13
|
+
uri: '/notsupported',
|
14
|
+
}
|
15
|
+
}
|
16
|
+
},
|
17
|
+
members: [
|
18
|
+
{ ip_address: '10.10.10.10', },
|
19
|
+
{ ip_address: '10.10.10.11', },
|
20
|
+
],
|
21
|
+
|
22
|
+
}
|
23
|
+
],
|
24
|
+
virtual_servers: [
|
25
|
+
{
|
26
|
+
name: 'test-vs-1',
|
27
|
+
description: 'Our VirtualServer description',
|
28
|
+
ip_address: '192.2.0.88',
|
29
|
+
network: '12345678-1234-1234-1234-123456789012',
|
30
|
+
pool: 'test-pool-1',
|
31
|
+
service_profiles: {
|
32
|
+
https: {
|
33
|
+
enabled: true,
|
34
|
+
port: '443',
|
35
|
+
persistence: {
|
36
|
+
method: 'SSL_SESSION_ID'
|
37
|
+
}
|
38
|
+
},
|
39
|
+
},
|
40
|
+
}
|
41
|
+
]
|
42
|
+
}
|
@@ -23,7 +23,7 @@
|
|
23
23
|
:HealthCheckPort: ''
|
24
24
|
:HealthCheck:
|
25
25
|
:Mode: SSL
|
26
|
-
:Uri: '
|
26
|
+
:Uri: ''
|
27
27
|
:HealthThreshold: '2'
|
28
28
|
:UnhealthThreshold: '3'
|
29
29
|
:Interval: '5'
|
@@ -35,7 +35,7 @@
|
|
35
35
|
:HealthCheckPort: ''
|
36
36
|
:HealthCheck:
|
37
37
|
:Mode: TCP
|
38
|
-
:Uri: '
|
38
|
+
:Uri: ''
|
39
39
|
:HealthThreshold: '2'
|
40
40
|
:UnhealthThreshold: '3'
|
41
41
|
:Interval: '5'
|