Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{{$CpuRequest := DefaultParam .CpuRequest "5m"}}
{{$MemoryRequest := DefaultParam .MemoryRequest "20M"}}

{{$Image := DefaultParam .Image "mcr.microsoft.com/oss/kubernetes/pause:3.6"}}

apiVersion: apps/v1
kind: Deployment
metadata:
name: {{.Name}}
labels:
group: {{.Group}}
{{if .SvcName}}
svc: {{.SvcName}}-{{.Index}}
{{end}}
spec:
replicas: {{.Replicas}}
selector:
matchLabels:
name: {{.Name}}
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 20%
maxSurge: 20%
template:
metadata:
labels:
name: {{.Name}}
group: {{.Group}}
{{if .SvcName}}
svc: {{.SvcName}}-{{.Index}}
{{end}}
restart: {{.deploymentLabel}}
spec:
nodeSelector:
slo: "true"
containers:
- env:
- name: ENV_VAR
value: a
Comment on lines +39 to +40
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this being used?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed

image: {{$Image}}
imagePullPolicy: IfNotPresent
name: {{.Name}}
ports:
resources:
requests:
cpu: {{$CpuRequest}}
memory: {{$MemoryRequest}}
# Add not-ready/unreachable tolerations for 15 minutes so that node
# failure doesn't trigger pod deletion.
tolerations:
- key: "node.kubernetes.io/not-ready"
operator: "Exists"
effect: "NoExecute"
tolerationSeconds: 900
- key: "node.kubernetes.io/unreachable"
operator: "Exists"
effect: "NoExecute"
tolerationSeconds: 900
- key: "slo"
operator: "Equal"
value: "true"
effect: "NoSchedule"
108 changes: 108 additions & 0 deletions modules/python/clusterloader2/hyperion/config/load-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: load-config

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we rename it to something else, as we already have a load-config file in slo.
in pipeline we pass " cl2_config_file: .yaml" so this can create some issue.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All other frameworks have a load-config file, so I think we should follow the convention


# Config options for test parameters
{{$repeats := DefaultParam .CL2_REPEATS 1}}
{{$groupName := DefaultParam .CL2_GROUP_NAME "service-discovery"}}

{{$operationTimeout := DefaultParam .CL2_OPERATION_TIMEOUT "15m"}}

{{$latencyPodCpu := DefaultParam .CL2_LATENCY_POD_CPU 10}}
{{$latencyPodMemory := DefaultParam .CL2_LATENCY_POD_MEMORY 50}}
{{$podStartupLatencyThreshold := DefaultParam .CL2_POD_STARTUP_LATENCY_THRESHOLD "15s"}} #todo look into this

{{$CILIUM_METRICS_ENABLED := DefaultParam .CL2_CILIUM_METRICS_ENABLED false}}

{{$NO_OF_NAMESPACES := DefaultParam .CL2_NO_OF_NAMESPACES 1}}
{{$NO_OF_PODS := DefaultParam .CL2_NO_OF_PODS 500}}
{{$NO_OF_REPLICAS_PER_DEPLOYMENT := DefaultParam .CL2_NO_OF_REPLICAS_PER_DEPLOYMENT 20}}

{{$podsPerNamespace := DivideInt $NO_OF_PODS $NO_OF_NAMESPACES}}
{{$deploymentsPerNamespace := DivideInt $podsPerNamespace $NO_OF_REPLICAS_PER_DEPLOYMENT}}

# QPS
# We use RandomizedTimeLimitedLoad for load QPS.
# Specifically, we aim to create/delete LOAD_TEST_THROUGHPUT/DELETE_TEST_THROUGHPUT pods per second, on average.
# Operations make an independent choice about the time to start uniformly at random from the associated time period.
{{$LOAD_TEST_THROUGHPUT := DefaultParam .CL2_LOAD_TEST_THROUGHPUT 100}}
{{$DELETE_TEST_THROUGHPUT := DefaultParam .CL2_DELETE_TEST_THROUGHPUT $LOAD_TEST_THROUGHPUT}}
{{$saturationTime := DivideInt $NO_OF_PODS $LOAD_TEST_THROUGHPUT}}
{{$deletionTime := DivideInt $NO_OF_PODS $DELETE_TEST_THROUGHPUT}}

namespace:
number: {{$NO_OF_NAMESPACES}}
prefix: hyperion
deleteStaleNamespaces: true
deleteAutomanagedNamespaces: true
enableExistingNamespaces: false

tuningSets:
- name: Sequence
parallelismLimitedLoad:
parallelismLimit: 1
- name: RandomizedSaturationTimeLimited
RandomizedTimeLimitedLoad:
timeLimit: {{$saturationTime}}s
- name: RandomizedDeletionTimeLimited
RandomizedTimeLimitedLoad:
timeLimit: {{$deletionTime}}s

steps:
- name: Log - NO_OF_NAMESPACES={{$NO_OF_NAMESPACES}}, NO_OF_PODS={{$NO_OF_PODS}}, NO_OF_REPLICAS_PER_DEPLOYMENT={{$NO_OF_REPLICAS_PER_DEPLOYMENT}}, podsPerNamespace={{$podsPerNamespace}}, deploymentsPerNamespace={{$deploymentsPerNamespace}}, NO_OF_REPLICAS_PER_DEPLOYMENT={{$NO_OF_REPLICAS_PER_DEPLOYMENT}}, repeats={{$repeats}}, $saturationTime={{$saturationTime}}, $deletionTime={{$deletionTime}}
measurements:
- Identifier: Dummy
Method: Sleep
Params:
action: start
duration: 1ms

- module:
path: /modules/measurements.yaml
params:
action: start
group: {{$groupName}}

{{if $CILIUM_METRICS_ENABLED}}
- module:
path: /modules/cilium-measurements.yaml
params:
action: start
{{end}}

- module:
path: /modules/reconcile-objects.yaml
params:
actionName: "create"
namespaces: {{$NO_OF_NAMESPACES}}
tuningSet: RandomizedSaturationTimeLimited
operationTimeout: {{$operationTimeout}}
replicasPerDeployment: {{$NO_OF_REPLICAS_PER_DEPLOYMENT}}
deploymentsPerNamespace: {{$deploymentsPerNamespace}}
CpuRequest: {{$latencyPodCpu}}m
MemoryRequest: {{$latencyPodMemory}}M
Group: {{$groupName}}
deploymentLabel: start

- module:
path: /modules/reconcile-objects.yaml
params:
actionName: "delete"
namespaces: {{$NO_OF_NAMESPACES}}
tuningSet: RandomizedDeletionTimeLimited
operationTimeout: {{$operationTimeout}}
replicasPerDeployment: {{$NO_OF_REPLICAS_PER_DEPLOYMENT}}
deploymentsPerNamespace: 0
deploymentLabel: restart
Group: {{$groupName}}

{{if $CILIUM_METRICS_ENABLED}}
- module:
path: /modules/cilium-measurements.yaml
params:
action: gather
{{end}}

- module:
path: /modules/measurements.yaml
params:
action: gather
group: {{$groupName}}
Loading