apiVersion: helm.cattle.io/v1 kind: HelmChartConfig metadata: name: traefik namespace: kube-system spec: valuesContent: |- # 3 replicas for HA deployment: replicas: 3 # Resource limits resources: requests: cpu: 50m memory: 128Mi limits: memory: 192Mi # Pod Anti-Affinity - 가능하면 각 노드에 분산 배치 (soft) affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchLabels: app.kubernetes.io/name: traefik topologyKey: kubernetes.io/hostname # Control-plane 노드에도 배치 허용 tolerations: - key: node-role.kubernetes.io/control-plane operator: Exists # Traefik Dashboard 활성화 dashboard: enabled: true # API 활성화 (Dashboard에서 필요) api: dashboard: true # Cross-namespace middleware 허용 providers: kubernetesCRD: allowCrossNamespace: true # CLI 추가 인자 additionalArguments: - "--api.insecure=true" # ports 설정 ports: traefik: expose: default: true # svclb tolerations for control-plane node service: annotations: svccontroller.k3s.cattle.io/tolerations: '[{"key":"node-role.kubernetes.io/control-plane","operator":"Exists","effect":"NoSchedule"}]' # Prometheus metrics metrics: prometheus: entryPoint: metrics addEntryPointsLabels: true addRoutersLabels: true addServicesLabels: true service: enabled: true serviceMonitor: enabled: true namespace: prometheus additionalLabels: release: prometheus