flux-infra/infrastructure/controllers/traefik.yaml

62 lines
1.4 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
name: traefik
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: HelmRepository
metadata:
name: traefik
namespace: traefik
spec:
interval: 1m0s
url: https://traefik.github.io/charts
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: traefik
namespace: traefik
spec:
chart:
spec:
chart: traefik
reconcileStrategy: ChartVersion
sourceRef:
kind: HelmRepository
name: traefik
version: 31.1.1
interval: 1m0s
values:
deployment:
kind: DaemonSet
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/master
operator: Exists
- matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: Exists
ports:
web:
redirectTo:
port: websecure
providers:
kubernetesCRD:
ingressClass: "traefik-external"
# This is needed in order to properly forward the real ip to each service
# There are likely better ways of handling that, but for now this works
hostNetwork: true
service:
spec:
externalTrafficPolicy: Local
updateStrategy:
rollingUpdate:
maxUnavailable: 2
maxSurge: 0