When using the Traefik IngressRoute (ingressClass: "traefik"), the template at templates/ingress-traefik.yaml doesn't include any mechanism to add custom annotations to the rendered IngressRoute resource.
The ingress_annotations value only applies to the standard networking.k8s.io/v1 Ingress template (templates/ingress.yaml), not the Traefik CRD template.
This prevents users from adding annotations needed by external tooling, such as:
- external-dns.alpha.kubernetes.io/hostname (for automatic DNS record creation)
- external-dns.alpha.kubernetes.io/target
- kubernetes.io/ingress.class (for IngressRoute class filtering)
Current behavior:
# ingress-traefik.yaml
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: {{ .Release.Name }}-ingress
namespace: {{ .Release.Namespace }}
spec:
...
No annotations are rendered regardless of what's set in ingress_annotations.
Expected behavior:
The Traefik IngressRoute template should support custom annotations, either via the existing ingress_annotations value or a dedicated
traefik.annotations field:
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: {{ .Release.Name }}-ingress
namespace: {{ .Release.Namespace }}
{{- with .Values.ingress.ingress_annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
...
Workaround:
Disable the chart's ingress (ingress.enabled: false) and maintain a hand-written IngressRoute outside the chart.
Chart version: 1.5.0 (plane-ce)
When using the Traefik IngressRoute (ingressClass: "traefik"), the template at templates/ingress-traefik.yaml doesn't include any mechanism to add custom annotations to the rendered IngressRoute resource.
The ingress_annotations value only applies to the standard networking.k8s.io/v1 Ingress template (templates/ingress.yaml), not the Traefik CRD template.
This prevents users from adding annotations needed by external tooling, such as:
Current behavior:
No annotations are rendered regardless of what's set in ingress_annotations.
Expected behavior:
The Traefik IngressRoute template should support custom annotations, either via the existing ingress_annotations value or a dedicated
traefik.annotations field:
Workaround:
Disable the chart's ingress (ingress.enabled: false) and maintain a hand-written IngressRoute outside the chart.
Chart version: 1.5.0 (plane-ce)