aws-quickstart / cdk-eks-blueprints

AWS Quick Start Team
Apache License 2.0
446 stars 198 forks source link

ExternalDNS addon support for Gateway / VirtualService types #1010

Open tdalbo92 opened 3 months ago

tdalbo92 commented 3 months ago

Describe the feature

Allow a mechanism to add custom sources for ExternalDNS to monitor. Currently Ingress and Service are the only supported ones.

Use Case

If using Gateway API spec services, such as Istio or Envoy Gateway, routes are exposed through different CRDs than Service or Ingress. I don't see a way to configure or override the container args[1] to use different sources.

[1] https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/istio.md#manifest-for-clusters-without-rbac-enabled

Proposed Solution

Adding a values parameter to the addon that passes value overrides into the helm chart would suffice.

Other Information

No response

Acknowledgements

CDK version used

2.133

EKS Blueprints Version

1.14.1

Node.js Version

v18.20.1

Environment details (OS name and version, etc.)

MacOS Sonoma 14.5 ARM64

jgreenbow commented 3 months ago

I believe the values parameter already exists for this chart/addon. See https://github.com/aws-quickstart/cdk-eks-blueprints/blob/7869d39fd088fc54e5b82815cb292c7ed92209b3/lib/addons/external-dns/index.ts#L33

I was able to enable httproute and tlsroute support using the existing implementation with the extraArgs key. I used the arguments as shown in Configuring ExternalDNS to use Gateway API Route Sources.

Probably could have used the sources helm value now that I see it (https://artifacthub.io/packages/helm/external-dns/external-dns?modal=values&path=sources).

new blueprints.addons.ExternalDnsAddOn({
  version: 'v1.14.4',
  hostedZoneResources: [HOSTED_ZONE],
  values: {
    extraArgs: [
      '--source=gateway-httproute',
      '--source=gateway-tlsroute',
      '--label-filter=external-dns.enabled=true',
    ],
    policy: 'sync',
    txtOwnerId: id,
    txtPrefix: 'external-dns-',
  },
});

Do you need functionality that isn't supported with this approach?

github-actions[bot] commented 3 days ago

This issue has been automatically marked as stale because it has been open 60 days with no activity. Remove stale label or comment or this issue will be closed in 10 days