Files
homelab/k8s/apps/iperf3/daemonset.yaml

93 lines
2.4 KiB
YAML
Raw Normal View History

2025-11-18 20:47:43 +02:00
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: iperf3-server
spec:
selector:
matchLabels:
app: iperf3-server
template:
metadata:
labels:
app: iperf3-server
spec:
2025-11-18 22:13:12 +02:00
serviceAccountName: iperf3-server
2025-11-18 21:31:57 +02:00
subdomain: iperf3
2025-11-18 21:40:53 +02:00
initContainers:
2025-11-18 22:13:12 +02:00
- name: create-service
image: bitnami/kubectl:latest
2025-11-18 21:40:53 +02:00
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
2025-11-18 22:13:12 +02:00
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
command:
- /bin/bash
- -c
- |
# Clean node name for service name
NODE_CLEAN=$(echo "$NODE_NAME" | cut -d'.' -f1 | tr '[:upper:]' '[:lower:]' | tr '_' '-')
SERVICE_NAME="iperf3-${NODE_CLEAN}"
# Create service for this pod
kubectl apply -f - <<EOF
apiVersion: v1
kind: Service
metadata:
name: ${SERVICE_NAME}
namespace: iperf3
labels:
app: iperf3-node-service
target-node: "${NODE_NAME}"
spec:
type: ClusterIP
ports:
- name: iperf3
port: 5201
protocol: TCP
---
apiVersion: v1
kind: Endpoints
metadata:
name: ${SERVICE_NAME}
namespace: iperf3
labels:
app: iperf3-node-service
target-node: "${NODE_NAME}"
subsets:
- addresses:
- ip: ${POD_IP}
ports:
- name: iperf3
port: 5201
protocol: TCP
EOF
2025-11-18 20:47:43 +02:00
containers:
- name: iperf3-server
2025-11-18 21:37:09 +02:00
image: networkstatic/iperf3:latest
2025-11-18 20:47:43 +02:00
args: ["-s"]
ports:
- containerPort: 5201
protocol: TCP
2025-11-18 21:31:57 +02:00
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
2025-11-18 20:47:43 +02:00
resources:
requests:
memory: "64Mi"
cpu: "100m"
limits:
memory: "256Mi"
2025-11-24 13:19:04 +02:00
cpu: "750m"
2025-11-18 20:47:43 +02:00
tolerations:
- effect: NoSchedule
operator: Exists
- effect: NoExecute
operator: Exists