203 lines
4.4 KiB
YAML
203 lines
4.4 KiB
YAML
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: locust-cm
|
|
data:
|
|
ATTACKED_HOST: http://hotrod:8080
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: scripts-cm
|
|
data:
|
|
locustfile.py: |
|
|
from locust import HttpUser, task, between
|
|
class UserTasks(HttpUser):
|
|
wait_time = between(5, 15)
|
|
|
|
@task
|
|
def rachel(self):
|
|
self.client.get("/dispatch?customer=123&nonse=0.6308392664170006")
|
|
@task
|
|
def trom(self):
|
|
self.client.get("/dispatch?customer=392&nonse=0.015296363321630757")
|
|
@task
|
|
def japanese(self):
|
|
self.client.get("/dispatch?customer=731&nonse=0.8022286220408668")
|
|
@task
|
|
def coffee(self):
|
|
self.client.get("/dispatch?customer=567&nonse=0.0022220379420636593")
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
service: hotrod
|
|
name: hotrod
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
service: hotrod
|
|
strategy: {}
|
|
template:
|
|
metadata:
|
|
labels:
|
|
service: hotrod
|
|
spec:
|
|
containers:
|
|
- args:
|
|
- all
|
|
env:
|
|
- name: JAEGER_ENDPOINT
|
|
value: ${JAEGER_ENDPOINT}
|
|
image: ${HOTROD_IMAGE}
|
|
imagePullPolicy: IfNotPresent
|
|
name: hotrod
|
|
ports:
|
|
- containerPort: 8080
|
|
restartPolicy: Always
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
labels:
|
|
service: hotrod
|
|
name: hotrod
|
|
spec:
|
|
ports:
|
|
- name: "8080"
|
|
port: 8080
|
|
targetPort: 8080
|
|
selector:
|
|
service: hotrod
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
annotations:
|
|
deployment.kubernetes.io/revision: "1"
|
|
labels:
|
|
role: locust-master
|
|
name: locust-master
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
role: locust-master
|
|
strategy:
|
|
rollingUpdate:
|
|
maxSurge: 1
|
|
maxUnavailable: 1
|
|
type: RollingUpdate
|
|
template:
|
|
metadata:
|
|
labels:
|
|
role: locust-master
|
|
spec:
|
|
containers:
|
|
- image: ${LOCUST_IMAGE}
|
|
imagePullPolicy: IfNotPresent
|
|
name: locust-master
|
|
env:
|
|
- name: ATTACKED_HOST
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: locust-cm
|
|
key: ATTACKED_HOST
|
|
- name: LOCUST_MODE
|
|
value: MASTER
|
|
- name: LOCUST_OPTS
|
|
value: --print-stats
|
|
volumeMounts:
|
|
- mountPath: /locust
|
|
name: locust-scripts
|
|
ports:
|
|
- containerPort: 5557
|
|
name: comm
|
|
- containerPort: 5558
|
|
name: comm-plus-1
|
|
- containerPort: 8089
|
|
name: web-ui
|
|
terminationMessagePath: /dev/termination-log
|
|
terminationMessagePolicy: File
|
|
dnsPolicy: ClusterFirst
|
|
restartPolicy: Always
|
|
schedulerName: default-scheduler
|
|
securityContext: {}
|
|
terminationGracePeriodSeconds: 30
|
|
volumes:
|
|
- name: locust-scripts
|
|
configMap:
|
|
name: scripts-cm
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
labels:
|
|
role: locust-master
|
|
name: locust-master
|
|
spec:
|
|
ports:
|
|
- port: 5557
|
|
name: communication
|
|
- port: 5558
|
|
name: communication-plus-1
|
|
- port: 8089
|
|
targetPort: 8089
|
|
name: web-ui
|
|
selector:
|
|
role: locust-master
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
annotations:
|
|
deployment.kubernetes.io/revision: "1"
|
|
labels:
|
|
role: locust-worker
|
|
name: locust-worker
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
role: locust-worker
|
|
strategy:
|
|
rollingUpdate:
|
|
maxSurge: 1
|
|
maxUnavailable: 1
|
|
type: RollingUpdate
|
|
template:
|
|
metadata:
|
|
labels:
|
|
role: locust-worker
|
|
spec:
|
|
containers:
|
|
- image: ${LOCUST_IMAGE}
|
|
imagePullPolicy: IfNotPresent
|
|
name: locust-worker
|
|
env:
|
|
- name: ATTACKED_HOST
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: locust-cm
|
|
key: ATTACKED_HOST
|
|
- name: LOCUST_MODE
|
|
value: WORKER
|
|
- name: LOCUST_MASTER_HOST
|
|
value: locust-master
|
|
volumeMounts:
|
|
- mountPath: /locust
|
|
name: locust-scripts
|
|
terminationMessagePath: /dev/termination-log
|
|
terminationMessagePolicy: File
|
|
dnsPolicy: ClusterFirst
|
|
restartPolicy: Always
|
|
schedulerName: default-scheduler
|
|
securityContext: {}
|
|
terminationGracePeriodSeconds: 30
|
|
volumes:
|
|
- name: locust-scripts
|
|
configMap:
|
|
name: scripts-cm
|