bittorrent-benchmarks/k8s/charts/deluge/templates/deluge-statefulset.yaml

83 lines
2.6 KiB
YAML

apiVersion: apps/v1
kind: StatefulSet
metadata:
name: deluge-nodes-{{ include "experiment.fullId" . }}
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.experiment.networkSize }}
serviceName: deluge-nodes-service-{{ include "experiment.fullId" . }}
podManagementPolicy: Parallel
selector:
matchLabels:
app.kubernetes.io/component: deluge-node
{{- include "deluge-benchmarks.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
app.kubernetes.io/component: deluge-node
{{- include "deluge-benchmarks.labels" . | nindent 8 }}
spec:
{{- if not .Values.deployment.allowColocation }}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app.kubernetes.io/component
operator: In
values:
- deluge-node
topologyKey: "kubernetes.io/hostname"
{{- end }}
{{- with .Values.deployment.delugeNodePool }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: deluge-node
image: codexstorage/deluge
imagePullPolicy: Always
ports:
- containerPort: 6890
env:
- name: CLIENT_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: DELUGE_RPC_PORT
value: "6890"
- name: DELUGE_LISTEN_PORTS
value: "6891,6892"
- name: DELUGE_LOG_LEVEL
value: "info"
command: [ "/bin/bash", "--login", "-c" ]
args:
- |
export DELUGE_NODE_ID=${CLIENT_POD_NAME}
# Makes sure there's no previous garbage in the config dir.
rm -rf ${DELUGE_CONFIG_DIR}/*
${DELUGE_APP}/docker/bin/start.sh
volumeMounts:
- name: deluge-node-storage
mountPath: /var/lib/deluge
- name: deluge-agent
image: {{ include "benchmark.harness.image" . }}
imagePullPolicy: {{ include "benchmark.harness.imagePullPolicy" . }}
command: [
"poetry", "run", "bittorrent-benchmarks",
"agent", "experiments.k8s.yaml", "deluge_agent", "--port", "9001"
]
ports:
- containerPort: 9001
volumeMounts:
- name: deluge-node-storage
mountPath: /var/lib/deluge
volumes:
- name: deluge-node-storage
emptyDir: { }