# infrastructure/traefik/deployment.yaml apiVersion: v1 items: - apiVersion: apps/v1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "4" name: traefik namespace: traefik spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: app: traefik strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: annotations: kubectl.kubernetes.io/restartedAt: "2025-02-12T05:57:48-06:00" creationTimestamp: null labels: app: traefik spec: containers: - args: - --providers.kubernetesIngress=true - --providers.kubernetescrd=true - --entrypoints.web.address=:80 - --entrypoints.websecure.address=:443 - --api.dashboard=true - --metrics.prometheus=true - --metrics.prometheus.addEntryPointsLabels=true - --metrics.prometheus.addRoutersLabels=true - --metrics.prometheus.addServicesLabels=true - --entrypoints.web.transport.respondingTimeouts.readTimeout=0s - --entrypoints.web.transport.respondingTimeouts.writeTimeout=0s - --entrypoints.web.transport.respondingTimeouts.idleTimeout=0s - --entrypoints.websecure.transport.respondingTimeouts.readTimeout=0s - --entrypoints.websecure.transport.respondingTimeouts.writeTimeout=0s - --entrypoints.websecure.transport.respondingTimeouts.idleTimeout=0s - --entrypoints.metrics.address=:9100 - --metrics.prometheus.entryPoint=metrics image: traefik:v3.3.3 imagePullPolicy: IfNotPresent name: traefik ports: - containerPort: 80 name: web protocol: TCP - containerPort: 443 name: websecure protocol: TCP - containerPort: 8080 name: admin protocol: TCP - containerPort: 9100 name: metrics protocol: TCP terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst nodeSelector: node-role.kubernetes.io/worker: "true" restartPolicy: Always schedulerName: default-scheduler serviceAccount: traefik-ingress-controller serviceAccountName: traefik-ingress-controller terminationGracePeriodSeconds: 30 kind: List metadata: {}