Skip to content

Traefik IngressRoute template doesn't support custom annotations #220

Description

@luthes

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions