Skip to content

Commit

Permalink
Add ILB Recovery Latency test
Browse files Browse the repository at this point in the history
  • Loading branch information
dlapcevic committed Oct 7, 2021
1 parent 2b25033 commit 9d2646a
Showing 1 changed file with 130 additions and 0 deletions.
130 changes: 130 additions & 0 deletions clusterloader2/testing/l4ilb/config-ilb-recovery.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
# Timer measurement is used to measure the time between the start of an action executed by the
# Exec command and when the ILB services are running and reachable.
# ServiceCreationLatency measurement is used only for determining the moment when all of the
# ILBs are reachable. Since it reports time based on the initial creation of the service, and
# not from the start of the action, the measured time will not be shown.

# Constants
{{$LB_REPLICAS_PER_NS := DefaultParam .CL2_LB_REPLICAS_PER_NS 5}}
{{$LB_BACKEND_SIZE := DefaultParam .CL2_LB_BACKEND_SIZE 10}}
{{$EXTERNAL_TRAFFIC_POLICY := DefaultParam .CL2_EXTERNAL_TRAFFIC_POLICY "Cluster"}}
{{$ilbWaitTimeout := DefaultParam .CL2_ILB_WAIT_TIMEOUT "10m"}}
{{$ilbQPS := DefaultParam .CL2_ILB_TEST_QPS 20}}
{{$ILB_RECOVERY_LABEL := "ilb-recovery"}}
{{$namespaces := 1}}

# Command to be executed
{{$EXEC_COMMAND := DefaultParam .CL2_EXEC_COMMAND nil}}
{{$EXEC_TIMEOUT := DefaultParam .CL2_EXEC_TIMEOUT "60m"}}
{{$EXEC_ADDITIONAL_ARGUMENT := DefaultParam .CL2_EXEC_ADDITIONAL_ARGUMENT ""}}

name: l4ilb-recovery
namespace:
number: {{$namespaces}}
tuningSets:
- name: ILBConstantQPS
qpsLoad:
qps: {{$ilbQPS}}
steps:
- name: Start measurement for running pods
measurements:
- Identifier: WaitForRunningDeployments
Method: WaitForControlledPodsRunning
Params:
action: start
apiVersion: apps/v1
kind: Deployment
labelSelector: group = ilb-load
operationTimeout: 15m
- name: Creating ILBs
phases:
- namespaceRange:
min: 1
max: {{$namespaces}}
replicasPerNamespace: {{$LB_REPLICAS_PER_NS}}
tuningSet: ILBConstantQPS
objectBundle:
- basename: ilb-service
objectTemplatePath: service.yaml
templateFillMap:
DeploymentBaseName: ilb-dep
ExternalTrafficPolicy: {{$EXTERNAL_TRAFFIC_POLICY}}
ILBSizeLabel: {{$ILB_RECOVERY_LABEL}}
- basename: ilb-dep
objectTemplatePath: dep.yaml
templateFillMap:
NumReplicas: {{$LB_BACKEND_SIZE}}
- name: Waiting for objects creation to be completed
measurements:
- Identifier: WaitForRunningDeployments
Method: WaitForControlledPodsRunning
Params:
action: gather
{{if $EXEC_COMMAND}}
- name: Starting measurements
measurements:
- Identifier: ServiceCreationLatency
Method: ServiceCreationLatency
Params:
action: start
waitTimeout: {{$ilbWaitTimeout}}
labelSelector: size = {{$ILB_RECOVERY_LABEL}}
- name: Starting ILB recovery timer
measurements:
- Identifier: ILBRecoveryTimer
Method: Timer
Params:
action: start
label: {{$ILB_RECOVERY_LABEL}}
- name: Execute command
measurements:
- Identifier: ExecCommand
Method: Exec
Params:
timeout: {{$EXEC_TIMEOUT}}
command:
{{range $EXEC_COMMAND}}
- {{.}}
{{end}}
{{if $EXEC_ADDITIONAL_ARGUMENT}}
- {{$EXEC_ADDITIONAL_ARGUMENT}}
{{end}}
- name: Waiting for ILBs to be reachable after the command is executed
measurements:
- Identifier: ServiceCreationLatency
Method: ServiceCreationLatency
Params:
action: waitForReady
- name: Stopping ILB recovery timer
measurements:
- Identifier: ILBRecoveryTimer
Method: Timer
Params:
action: stop
label: {{$ILB_RECOVERY_LABEL}}
{{end}}
- name: Deleting ILBs
phases:
- namespaceRange:
min: 1
max: {{$namespaces}}
replicasPerNamespace: 0
tuningSet: ILBConstantQPS
objectBundle:
- basename: ilb-service
objectTemplatePath: service.yaml
- basename: ilb-dep
objectTemplatePath: dep.yaml
- name: Waiting for objects deletion to be completed
measurements:
- Identifier: WaitForRunningDeployments
Method: WaitForControlledPodsRunning
Params:
action: gather
- name: Gathering measurements
measurements:
- Identifier: ILBRecoveryTimer
Method: Timer
Params:
action: gather
label: {{$ILB_RECOVERY_LABEL}}

0 comments on commit 9d2646a

Please sign in to comment.