modules/python/clusterloader2/slo/config/network-policy-scale-config.yaml (100 lines of code) (raw):
name: netpol-scale-test
# cluster config
{{$CILIUM_ENABLED := DefaultParam .CL2_CILIUM_ENABLED false}}
{{$CILIUM_ENVOY_ENABLED := DefaultParam .CL2_CILIUM_ENVOY_ENABLED false}}
# test setup config
{{$NUMBER_OF_SERVERS_PER_Group := DefaultParam .CL2_NUMBER_OF_SERVERS_PER_GROUP 2}}
{{$NUMBER_OF_CLIENTS_PER_Group := DefaultParam .CL2_NUMBER_OF_CLIENTS_PER_GROUP 1}}
{{$NUMBER_OF_GROUPS := DefaultParam .CL2_NUMBER_OF_GROUPS 2}}
{{$TARGET_PORT := DefaultParam .CL2_TARGET_PORT 8080}}
{{$WORKERS_PER_CLIENT := DefaultParam .CL2_WORKERS_PER_CLIENT 5}}
{{$DURATION := DefaultParam .CL2_DURATION 600}}
{{$Network_Policy_Type := DefaultParam .CL2_NETWORK_POLICY_TYPE "k8s"}}
{{$Netwrok_POlicy_L7_Enabled := DefaultParam .CL2_NETWORK_POLICY_L7_ENABLED false}}
{{$SOAK_TEST := DefaultParam .CL2_SOAK_TEST false}}
{{$CLIENT_METRICS_GATHERING := DefaultParam .CL2_CLIENT_METRICS_GATHERING false}}
namespace:
number: {{$NUMBER_OF_GROUPS}}
prefix: slo
deleteStaleNamespaces: true
deleteAutomanagedNamespaces: true
enableExistingNamespaces: false
steps:
# 1. If cilium enabled
# * start cilium agent metrics
# * start cilium envoy metrics
# 2. start network performance measurement (setup and run)
# 3. gather network performance measurement (wait and gather results)
# 4. gather cilium envoy metrics
# 5. gather cilium agent metrics
# 6. sleep for 5 minutes before deleting the namespaces, to not overload apiserver
- module:
path: /modules/measurements.yaml
params:
action: start
group: "service-discovery"
{{if $CILIUM_ENABLED}}
- module:
path: /modules/cilium-measurements.yaml
params:
action: start
{{if $CILIUM_ENVOY_ENABLED}}
- module:
path: /modules/cilium-envoy-measurements.yaml
params:
action: start
{{end}}
{{end}}
{{if $CLIENT_METRICS_GATHERING}}
- module:
path: /modules/network-policy-client-metrics.yaml
params:
action: start
{{end}}
# start network performance measurement
- name: Network Policy Soak Test - Start
measurements:
- Identifier: NetworkPolicySoakMeasurement
Method: NetworkPolicySoakMeasurement
Params:
action: start
targetLabelKey: app
targetLabelValue: target
clientLabelKey: app
clientLabelValue: client
targetReplicasPerNs: {{$NUMBER_OF_SERVERS_PER_Group}}
clientReplicasPerDep: {{$NUMBER_OF_CLIENTS_PER_Group}}
targetPort: {{$TARGET_PORT}}
targetPath: /
testDuration: "{{$DURATION}}"
workerPerClient: {{$WORKERS_PER_CLIENT}}
npType: {{$Network_Policy_Type}}
resourceGatheringEnabled: true
ingressEgressMode: egress # ingress, egress, both, none
{{if $CLIENT_METRICS_GATHERING}}
clientMetricsGatheringEnabled: true
{{end}}
# 5. gather network performance measurement (wait and gather results)
- name: Network Policy Soak Test - Gather Results
measurements:
- Identifier: NetworkPolicySoakMeasurement
Method: NetworkPolicySoakMeasurement
Params:
action: gather #gather will wait for the soak test to finish
{{if $CLIENT_METRICS_GATHERING}}
- module:
path: /modules/network-policy-client-metrics.yaml
params:
action: gather
{{end}}
{{if $CILIUM_ENABLED}}
- module:
path: /modules/cilium-measurements.yaml
params:
action: gather
{{if $CILIUM_ENVOY_ENABLED}}
- module:
path: /modules/cilium-envoy-measurements.yaml
params:
action: gather
{{end}}
{{end}}
- module:
path: /modules/measurements.yaml
params:
action: gather
group: "service-discovery"
# 6. sleep for 5 minutes before deleting the namespaces, to not overload apiserver
- name: Sleep
measurements:
- Identifier: Sleep
Method: Sleep
Params:
duration: 5m