Nereus/deploy/base/loadgen.yaml

100 lines
2.8 KiB
YAML

# Load generator. A plain Deployment -- nothing to promote, and it has to keep
# running straight through an API rollout.
#
# Points at the active Service so its traffic never lands on the preview.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nereus-loadgen
labels:
app.kubernetes.io/name: nereus-loadgen
app.kubernetes.io/part-of: nereus
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: nereus-loadgen
template:
metadata:
labels:
app.kubernetes.io/name: nereus-loadgen
app.kubernetes.io/part-of: nereus
spec:
imagePullSecrets:
- name: nereus-registry
securityContext:
# distroless nonroot.
runAsUser: 65532
runAsGroup: 65532
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
containers:
- name: loadgen
image: nereus-loadgen:0.1.0
# Side-loaded with `k3d image import`; there's no registry.
imagePullPolicy: IfNotPresent
env:
- name: TARGET_URL
value: http://nereus-api-active.nereus.svc.cluster.local:8080
- name: RPS
value: "5"
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop: ["ALL"]
readOnlyRootFilesystem: true
resources:
requests:
cpu: 25m
memory: 32Mi
limits:
memory: 128Mi
---
# Keeps request samples flowing through the preview while analysis runs.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nereus-loadgen-preview
labels:
app.kubernetes.io/name: nereus-loadgen-preview
app.kubernetes.io/part-of: nereus
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: nereus-loadgen-preview
template:
metadata:
labels:
app.kubernetes.io/name: nereus-loadgen-preview
app.kubernetes.io/part-of: nereus
spec:
imagePullSecrets:
- name: nereus-registry
securityContext:
runAsUser: 65532
runAsGroup: 65532
runAsNonRoot: true
seccompProfile:
type: RuntimeDefault
containers:
- name: loadgen
image: nereus-loadgen:0.1.0
imagePullPolicy: IfNotPresent
env:
- name: TARGET_URL
value: http://nereus-api-preview.nereus.svc.cluster.local:8080
- name: RPS
value: "5"
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop: ["ALL"]
readOnlyRootFilesystem: true
resources:
requests:
cpu: 25m
memory: 32Mi
limits:
memory: 128Mi