apiVersion: v1 kind: ServiceAccount metadata: name: traefik-ingress-controller namespace: support-bot --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: traefik-ingress-controller rules: - apiGroups: [""] resources: ["services", "endpoints", "secrets", "configmaps", "endpointslices", "nodes"] verbs: ["get", "list", "watch"] - apiGroups: ["discovery.k8s.io"] resources: ["endpointslices"] verbs: ["get", "list", "watch"] - apiGroups: ["extensions"] resources: ["ingresses"] verbs: ["get", "list", "watch"] - apiGroups: ["networking.k8s.io"] resources: ["ingresses", "ingressclasses"] verbs: ["get", "list", "watch"] - apiGroups: ["extensions", "networking.k8s.io"] resources: ["ingresses/status"] verbs: ["update"] - apiGroups: ["traefik.io"] resources: ["*"] verbs: ["get", "list", "watch"] --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: traefik-ingress-controller roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: traefik-ingress-controller subjects: - kind: ServiceAccount name: traefik-ingress-controller namespace: support-bot --- apiVersion: apps/v1 kind: Deployment metadata: name: traefik namespace: support-bot labels: app: traefik spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: traefik template: metadata: labels: app: traefik spec: serviceAccountName: traefik-ingress-controller hostNetwork: true dnsPolicy: ClusterFirstWithHostNet containers: - name: traefik image: traefik:v3.7 ports: - name: web containerPort: 80 hostPort: 80 - name: websecure containerPort: 443 hostPort: 443 - name: dashboard containerPort: 9000 args: - --entryPoints.web.address=:80 - --entryPoints.websecure.address=:443 - --entryPoints.traefik.address=:9000 - --providers.kubernetescrd - --providers.kubernetesingress - --api.dashboard=true - --api.insecure=true - --ping=true - --log.level=INFO livenessProbe: httpGet: path: /ping port: 9000 initialDelaySeconds: 5 periodSeconds: 10 readinessProbe: httpGet: path: /ping port: 9000 initialDelaySeconds: 5 periodSeconds: 10 --- apiVersion: v1 kind: Service metadata: name: traefik namespace: support-bot spec: type: ClusterIP selector: app: traefik ports: - name: web port: 80 targetPort: 80 - name: websecure port: 443 targetPort: 443 - name: dashboard port: 9000 targetPort: 9000