kubedeploy-k3s/infrastructure/03-traefik/base/deployment-traefik.yaml

128 lines
3.6 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: traefik
namespace: traefik
spec:
minReadySeconds: 0
replicas: 1
selector:
matchLabels:
app: traefik
strategy:
type: RollingUpdate
template:
metadata:
annotations:
prometheus.io/path: /metrics
prometheus.io/port: "9100"
prometheus.io/scrape: "true"
labels:
app: traefik
spec:
containers:
- resources: {}
args:
- --global.sendanonymoususage=false
- --global.checknewversion=false
- --entrypoints.smb-udp137.address=:137/udp
- --entrypoints.smb-udp138.address=:138/udp
- --entrypoints.smb-tcp139.address=:139/tcp
- --entrypoints.smb-tcp445.address=:445/tcp
- --entrypoints.dns.address=:53/udp
- --entrypoints.metrics.address=:9100/tcp
- --entrypoints.traefik.address=:9000/tcp
- --entrypoints.web.address=:8000/tcp
- --entrypoints.websecure.address=:8443/tcp
- --api.dashboard=true
- --ping=true
- --metrics.prometheus=true
- --metrics.prometheus.entrypoint=metrics
- --providers.kubernetescrd
- --providers.kubernetescrd.labelSelector=local=true
- --providers.kubernetescrd.allowExternalNameServices=true
- --entrypoints.websecure.http.middlewares=traefik-default-headers
- --entrypoints.websecure.http.tls=true
- --entrypoints.websecure.http.tls.certResolver=default
- --log.level=WARN
- --accesslog=true
- --accesslog.fields.defaultmode=keep
- --accesslog.fields.headers.defaultmode=drop
- --serversTransport.insecureSkipVerify=true
- --log.level=INFO
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
image: docker.io/traefik:latest
imagePullPolicy: IfNotPresent
livenessProbe:
failureThreshold: 3
httpGet:
path: /ping
port: 9000
scheme: HTTP
initialDelaySeconds: 2
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 2
name: traefik
ports:
- containerPort: 445
name: smb
- containerPort: 53
name: dns
protocol: UDP
- containerPort: 9100
name: metrics
protocol: TCP
- containerPort: 9000
name: traefik
protocol: TCP
- containerPort: 8000
name: web
protocol: TCP
- containerPort: 8443
name: websecure
protocol: TCP
readinessProbe:
failureThreshold: 1
httpGet:
path: /ping
port: 9000
scheme: HTTP
initialDelaySeconds: 2
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 2
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
volumeMounts:
- mountPath: /data
name: data
- mountPath: /tmp
name: tmp
hostNetwork: false
securityContext:
fsGroupChangePolicy: OnRootMismatch
runAsGroup: 65532
runAsNonRoot: true
runAsUser: 65532
serviceAccountName: traefik
terminationGracePeriodSeconds: 60
volumes:
- emptyDir: {}
name: data
- emptyDir: {}
name: tmp