apiVersion: apps/v1 kind: Deployment metadata: name: cloudflared namespace: cloudflared spec: replicas: 2 selector: matchLabels: app: cloudflared template: metadata: labels: app: cloudflared spec: securityContext: runAsNonRoot: true runAsUser: 65532 runAsGroup: 65532 fsGroup: 65532 seccompProfile: type: RuntimeDefault containers: - name: cloudflared image: cloudflare/cloudflared:2025.4.0 args: - tunnel - --config - /etc/cloudflared/config.yaml - --metrics - 0.0.0.0:2000 - --protocol - http2 - --no-autoupdate - run volumeMounts: - name: config mountPath: /etc/cloudflared/config.yaml subPath: config.yaml - name: creds mountPath: /etc/cloudflared/creds readOnly: true resources: requests: memory: "256Mi" cpu: "100m" limits: memory: "512Mi" cpu: "500m" livenessProbe: httpGet: path: /ready port: 2000 initialDelaySeconds: 10 periodSeconds: 10 securityContext: allowPrivilegeEscalation: False capabilities: drop: - ALL volumes: - name: config configMap: name: cloudflared-config - name: creds secret: secretName: tunnel-credentials