Merge pull request #490 from bpickard22/scale-script

Simple scale script
This commit is contained in:
Doug Smith 2024-07-31 16:52:06 -04:00 committed by GitHub
commit bc2f832cb9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 80 additions and 0 deletions

View File

@ -3,7 +3,9 @@
Run `go mod` with:
```
go mod tidy
go mod vendor
go mod verify
```
## Running with CNI's `docker-run.sh`
@ -66,3 +68,14 @@ spec:
EOF
```
## Using the scale script `/scripts/scale-test.sh`
1. This will not work unless you have a running cluster
A simple way to spin a cluster to use this with is by using
```
./hack/e2e-setup-kind-cluster -n 3
```
2. This script leverages the `whereaboutsScaleNAD` and `scaleTestDeployment` yamls in /yamls
3. To modify the number of pods spun by the script, change the replicas value in the `scaleTestDeployment` yaml

26
script/scale-test.sh Executable file
View File

@ -0,0 +1,26 @@
#!/bin/bash
set -eo pipefail
#An easy way to run this is to create a kind cluster using ./hack/e2e-setup-kind-cluster
HERE="$(dirname "$(readlink --canonicalize ${BASH_SOURCE[0]})")"
ROOT="$(readlink --canonicalize "$HERE/..")"
WHEREABOUTSNAD="$ROOT/yamls/whereaboutsScaleNAD.yaml"
SCALEDEPLOYMENT="$ROOT/yamls/scaleTestDeployment.yaml"
#create the whereabouts nad
oc apply -f "$WHEREABOUTSNAD"
#start a timer to record how long the pods take to spin up
start=$SECONDS
#create the deployment (change the replicas feild in the scale-deployment yaml if you want to test a different number of pods)
oc apply -f "$SCALEDEPLOYMENT"
kubectl rollout status deploy/scale-deployment
#wait for all pods to be deployed
#Log the amount of time it took the pods to create
createTime=$(( SECONDS - start ))
echo Pod creation duration:"$createTime"
#delete the deployment and track pod deletion timing
oc delete deploy/scale-deployment

View File

@ -0,0 +1,25 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: scale-deployment
labels:
app: scale-deployment
spec:
replicas: 10 #use this to modify the number of pods spun up by the scale-test script
selector:
matchLabels:
app: scale-pod
template:
metadata:
annotations:
k8s.v1.cni.cncf.io/networks: whereabouts-scale
labels:
app: scale-pod
spec:
containers:
- name: scale
image: nicolaka/netshoot
command:
- sleep
- "3600"
imagePullPolicy: IfNotPresent

View File

@ -0,0 +1,16 @@
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: whereabouts-scale
spec:
config: '{
"cniVersion": "0.3.0",
"name": "whereabouts-scale",
"type": "macvlan",
"master": "eth0",
"mode": "bridge",
"ipam": {
"type": "whereabouts",
"range": "192.168.2.225/24"
}
}'