ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
Active/Backup Amphora manipulation tests
2
Description
3
Test Steps
4
StepExpected Result
5
1. Create LB objects
a. Create LB in external network
# openstack loadbalancer create --name LB public-subnet
b. Create listener for the created LB
# openstack loadbalancer listener create --name listener1 --loadbalancer LB --protocol HTTP --protocol-port 80
c. Create pool for the listener
# openstack loadbalancer pool create --name pool1 --lb-algorithm ROUND_ROBIN --listener listener1 --protocol HTTP
d. Create ICMP health monitors for the pool
# loadbalancer healthmonitor create --delay 5 --max-retries 4 --timeout 10 --type PING --pool pool1 e. Add the created VMsas pool members for LB process.
# openstack loadbalancer member create --subnet private-subnet --address VM_IP_ADDRESS --protocol-port 80 pool1
1. 2 Amphoras should be created - nova list --all-tenants. Each amphora on different Compute node.
For these amps to be on different compute nodes, anti-affinity needs to be configured in the octavia.conf

! we should have a message that tells the admin to be aware that LB creation uses Port and VM quota, and uses resources
<johnsom> It seems like we should be able to do the following:
<johnsom> 1. generate SSH keys
<johnsom> 2. Load the public SSH key into nova as a "keypair"
* tesseract has quit (Quit: ♪♫•*¨*•.¸¸♫♪♪♫•*¨*•.¸¸♫♪♪♫•*¨*•.¸¸♫♪♪♫•*¨*•.¸¸♫♪)
<johnsom> 3. configure octavia.conf to use the nova "keypair" when creating load balancers.
<johnsom> 4. restart o-cw
<johnsom> 5. create load balancer
<johnsom> If we absolutely have to have the end-user setup this pre-condition we could create a script and have the test "skip" if the known keypair is missing from nova.
<johnsom> But I would hope we don't have to do that
6
2. Verify Amphore internal_network interface MTU is as configured in the network.2. The IF MTU on the Amphora should be as configured for the neutron internal network.
7
3. Execute curl/wget requests of a large page on the servers via VIP.
req='curl LB_ADDRES(or its FIP)'; for REQ in `seq 1 1 100`; do $req; done
3. Requests should be replied and load balanced properly.
8
4. During the requests:
Stop haproxy service on the amphora. Monitor the octavia logs
4. A fail over should occur - small amount/no traffic loss should happen
9
5. Start the stopped HAproxy service5. Should be started properly
10
6. During the requests:: Restart Amphora VM Monitor the octavia logs6.A fail over should occur - small amount/no traffic loss should happen
11
7.During the requests: Restart the compute node - puprose: amphora
VM should be migrated to other compute node. Monitor the octavia logs
12
13
14
15
Active/backup- 1 amphora boot failure
16
LB creation boot 2 amphoras. We want to examine what is the behavior when 1 of those failsDescription
17
Test Steps
18
StepExpected Result
19
On a setup with enough space for 1 amphora, create a LB
20
Verify that 1 amphora booted properly and another failed.
21
See LB statusShould be ERROR
22
1 VM should be up and another in ERROR stateLogs should explain the error state
23
24
25
26
Source ip LB and failover
27
How to configure spare pool size , House keeping manger doc
28
StepExpected Result
29
1. Configure spare amphora pool size to 2
30
2. Configure LB obects and session persistence
a. Create LB in external network # openstack loadbalancer create --name LB public-subnet b. Create listener for the created LB # openstack loadbalancer listener create --name listener1 --loadbalancer LB --protocol HTTP --protocol-port 80 c. Create pool for the listener # openstack loadbalancer pool create --name pool1 --lb-algorithm SOURCE_IP --listener listener1 --protocol HTTP d. Create ICMP health monitors for the pool # loadbalancer healthmonitor create --delay 5 --max-retries 4 --timeout 10 --type PING --pool pool1 e. Add the created VMs as pool members for LB process. # openstack loadbalancer member create --subnet private-subnet --address VM_IP_ADDRESS --protocol-port 80 pool1
31
3. Execute curl/wget requests of a large page on the servers via VIP. req='curl LB_ADDRES(or its FIP)'; for REQ in `seq 1 1 100`; do $req; done
32
4. During the requests stop the active Amphora to initiate fail over.Backup amphora should become acitve
Traffic should almost not be affected
An amphora from the pool should become backup.
the shutdown Amphora should be cleaned up(?) Session persistence should be kept (or re decided? )
33
34
35
Multiple Listeners 1 pool- 1 http listener, 1 https listener. Same Http pool for both listeners.
36
terminated TLS config
37
Test Steps
38
StepExpected Result
39
1. Create LB objects
a. Create LB in internal network (If needed create FIP and assign it to the VIP)
# openstack loadbalancer create --name LB
b. Create HTTP listener for the created LB
# openstack loadbalancer listener create --name listenerHTTP1 --loadbalancer LB --protocol HTTP --protocol-port 80
c. Create same pool
# openstack loadbalancer pool create --name pool1 --lb-algorithm SOURCE_IP --listener listenerHTTP1 --protocol HTTP d. Create HTTPS listener for the created LB and assign to existing pool # openstack loadbalancer listener create --name listenerHTTPS1 --loadbalancer LB --protocol HTTPS --protocol-port 443 --pool-id pool1
e. Create HTTP health monitors for the pool
# loadbalancer healthmonitor create --delay 5 --max-retries 4 --timeout 10 --type HTTPS --pool pool1 f. Add the created VMs as pool members for LB process.
openstack loadbalancer member create --subnet private-subnet --address VM_IP_ADDRESS --protocol-port 80 pool1
40
2. Execute 1 HTTP and 1 HTTPS curl/wget request of a large page on the servers via VIP. req='curl LB_ADDRES(or its FIP):80'; for REQ in `seq 1 1 100`; do $req; done req='curl LB_ADDRES(or its FIP):443'; for REQ in `seq 1 1 100`; do $req; done
41
42
43
44
Listener and pool different protocols - Listener HTTP, pool HTTPS.
45
TBD
46
StepExpected Result
47
1. Create LB objects
a. Create LB in external network # openstack loadbalancer create --name LB public-subnet b. Create listener for the created LB # openstack loadbalancer listener create --name listener1 --loadbalancer LB --protocol HTTP --protocol-port 80 c. Create pool for the listener # openstack loadbalancer pool create --name pool1 --lb-algorithm ROUND_ROBIN --listener listener1 --protocol HTTPS d. Create ICMP health monitors for the pool # loadbalancer healthmonitor create --delay 5 --max-retries 4 --timeout 10 --type PING --pool pool1 e. Add the created VMs as pool members for LB process. # openstack loadbalancer member create --subnet private-subnet --address VM_IP_ADDRESS --protocol-port 443 pool1
All objects should be created successfully
48
2. Execute curl/wget requests of a large page on the servers via VIP. req='curl LB_ADDRES(or its FIP):80'; for REQ in `seq 1 1 100`; do $req; done
49
50
51
52
L7 content switching- L7 policies with l7 rules matching by hostnames/file type/path/header/cookie, and actions reject/redirect to pool/redirect to path.
53
L7 content switching test cases
54
StepExpected Result
55
Hostname+starts with, action reject
1. Create LB
2. Create Listener
3. Create l7policy- action reject
4. Create rule -Hostname+starts with 5. Run traffic
56
Path+ends with, action redirect to URL
57
File type + contains , action redirect to same protocol pool
58
Header + equal to, action redirect to different protocol pool
59
Cookie+regex , action reject
60
Hostname+ contains, reject - the rule should not match - default pool should be configured
61
Hostname+ contains, reject - the rule should not match - default pool should NOT be configured
62
Policy with maximum rules - match all, redirect to pool
63
Policy with maximum rules - match all except last rule , redirect to URL
64
65
66
67
amphorae upgrade (upload new glance image and tag + failover + assert image amp's using)
68
steps will be provided
69
70
71
raise network error on the amphora and check operational_status
72
steps will be provided
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100