apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: traefik
  namespace: traefik
spec:
  interval: 5m
  chart:
    spec:
      chart: traefik
      version: '22.0.0'
      sourceRef:
        kind: HelmRepository
        name: traefik-charts
        namespace: flux-system
      interval: 1m
  values:
    additionalArguments:
    - --api.insecure
    - --entryPoints.factorio.address=:34197/udp

    logs:
      general:
        level: DEBUG

    providers:
      kubernetesCRD:
        enabled: true
        allowCrossNamespace: false
        allowExternalNameServices: false
        allowEmptyServices: false
        namespaces: []

      kubernetesIngress:
        enabled: true
        allowExternalNameServices: false
        allowEmptyServices: false
        namespaces: []
        publishedService:
          enabled: false

    ports:
      traefik:
        port: 9000
        expose: false
        exposedPort: 9000
        protocol: TCP

      web:
        port: 8000
        nodePort: 30080
        expose: true
        redirectTo: websecure
        protocol: TCP

      websecure:
        port: 8443
        nodePort: 30443
        expose: true
        protocol: TCP
        tls:
          enabled: true

      metrics:
        port: 9100
        expose: false
        protocol: TCP

    # Disable Dashboard
    ingressRoute:
      dashboard:
        enabled: false

    # Set Traefik as your default Ingress Controller, according to Kubernetes 1.19+ changes.
    ingressClass:
      enabled: true
      isDefaultClass: true

    tlsStore:
      default:
        defaultCertificate:
          secretName: wildcard-main-tls

    metrics:
      prometheus:
        entryPoint: metrics

    namespaceOverride: traefik