The magic of fieldPaths
is metadata.annotations.[external-dns.alpha.kubernetes.io/hostname]
NOT metadata.annotations.external-dns.alpha.kubernetes.io/hostname
NOT metadata.annotations[external-dns.alpha.kubernetes.io/hostname]
NOT metadata.annotations.external-dns\.alpha.\kubernetes\.io/hostname
Version:kustomize/v4.4.0 GitCommit:63ec6bdb3d737a7c66901828c5743656c49b60e1
cat parameters.env
FQDN=host.domain.tld
cat ingress.yaml
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
ports:
- name: "8000"
port: 8000
type: NodePort
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: "my-service-ingress"
annotations:
external-dns.alpha.kubernetes.io/hostname:
kubernetes.io/ingress.class: alb
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-TLS-1-1-2017-01
alb.ingress.kubernetes.io/healthcheck-port: traffic-port
spec:
rules:
- host:
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 8000
cat kustomizaiton.yaml
replacements:
- source:
kind: ConfigMap
fieldPath: data.FQDN
targets:
- select:
kind: Ingress
name: my-service-ingress
fieldPaths:
- spec.rules.0.host
- metadata.annotations.[external-dns.alpha.kubernetes.io/hostname]