flux-charts/infra-ingress/templates/traefik/release.yaml

120 lines
2.9 KiB
YAML

{{- if (eq .Values.controller "traefik") }}
---
apiVersion: helm.toolkit.fluxcd.io/v2beta2
kind: HelmRelease
metadata:
name: traefik
spec:
chart:
spec:
sourceRef:
kind: HelmRepository
name: traefik
chart: traefik
install:
{{- toYaml .Values.commons.helm.release.install | nindent 4 }}
test:
{{- toYaml .Values.commons.helm.release.test | nindent 4 }}
upgrade:
{{- toYaml .Values.commons.helm.release.upgrade | nindent 4 }}
driftDetection:
{{- toYaml .Values.commons.helm.release.driftDetection | nindent 4 }}
interval: 10m
values:
globalArguments:
- "--global.checknewversion=false"
- "--global.sendanonymoususage=false"
deployment:
enabled: {{ toYaml (not .Values.external) }}
kind: DaemonSet
hostNetwork: {{ .Values.hostNetwork }}
updateStrategy:
rollingUpdate:
maxUnavailable: 1
maxSurge: 0
service:
enabled: false
ipFamilyPolicy: PreferDualStack
ipFamilies:
- IPv6
- IPv4
{{- with .Values.traefik.additionalArguments }}
additionalArguments:
{{- toYaml . | nindent 6 }}
{{- end }}
tolerations:
- key: "CriticalAddonsOnly"
operator: "Exists"
- key: "node-role.kubernetes.io/control-plane"
operator: "Exists"
effect: "NoSchedule"
- key: "node-role.kubernetes.io/master"
operator: "Exists"
effect: "NoSchedule"
priorityClassName: "system-cluster-critical"
ports:
metrics:
port: 9111
web:
hostPort: 80
{{- if .Values.hostNetwork }}
port: 80
{{- end }}
asDefault: true
websecure:
hostPort: 443
{{- if .Values.hostNetwork }}
port: 443
{{- end }}
asDefault: true
http3:
enabled: true
{{- with .Values.traefik.ports }}
{{- toYaml . | nindent 6 }}
{{- end }}
{{- if .Values.hostNetwork }}
podSecurityContext: null
securityContext:
capabilities:
add:
- "NET_BIND_SERVICE"
{{- end }}
providers:
kubernetesIngress:
publishedService:
enabled: true
ingressRoute:
dashboard:
enabled: {{ toYaml (not .Values.external) }}
matchRule: Host(`lb.{{ .Values.commons.ingress.domain }}`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))
entryPoints:
- "traefik"
- "websecure"
{{- if .Values.external }}
hub:
enabled: false
ingressClass:
enabled: false
isDefaultClass: true
rbac:
enabled: false
{{- end }}
metrics:
prometheus:
{{- if (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1/ServiceMonitor") }}
service:
enabled: true
serviceMonitor:
additionalLabels:
{{- toYaml $.Values.commons.prometheus.monitor.labels | nindent 12 }}
{{- end }}
{{- end }}