Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for external-dns annotations on HTTPRoutes #5032

Open
Thakurvaibhav opened this issue Jan 26, 2025 · 5 comments
Open

Support for external-dns annotations on HTTPRoutes #5032

Thakurvaibhav opened this issue Jan 26, 2025 · 5 comments
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature.

Comments

@Thakurvaibhav
Copy link

What would you like to be added:
external-dns annotations are only supported on the Gateway resource. Are there any plans to support these on HTTPRoutes ( and other resources ) as well ?

Why is this needed:
We have a shared gateway with a https listener with a wildcard cert attached to it.
We then create HTTPRoutes with specific hostnames. external-dns is able to look for HTTPRoutes to create hostnames but there is no annotation support such as TTL, additional hostnames etc.

@Thakurvaibhav Thakurvaibhav added the kind/feature Categorizes issue or PR as related to a new feature. label Jan 26, 2025
@ivankatliarchuk
Copy link
Contributor

HI @Thakurvaibhav would you be able to share Kubernetes manifests, or anything that could help to understand the request better.

@Thakurvaibhav
Copy link
Author

@ivankatliarchuk

Here is a manifest of the shared gateway for various services

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: eg-infra-shared-01
  namespace: envoy-gateway-system
spec:
  gatewayClassName: infra-shared-01
  listeners:
    - allowedRoutes:
        namespaces:
          from: All
      name: http
      port: 80
      protocol: HTTP
    - allowedRoutes:
        namespaces:
          from: All
      hostname: '*.mydomian.io'
      name: https
      port: 443
      protocol: HTTPS
      tls:
        mode: Terminate
        certificateRefs:
        - group: ""
          kind: Secret
          name: mydomain-tls
          namespace: envoy-gateway-system
    - allowedRoutes:
        namespaces:
          from: All
      hostname: mySecureService.mydomain.io
      name: mySecureService-https
      port: 443
      protocol: HTTPS
      tls:
        certificateRefs:
        - group: ""
          kind: Secret
          name: mySecureService-server-tls
          namespace: envoy-gateway-system
        mode: Terminate

As you can see that this gateway has a wildcard host and another defined host which uses mTLS. In addition to the gateway, we have HTTP Routes in various namespaces such as the following:

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: grafana
  namespace: monitoring
spec:
  parentRefs:
    - name: eg-infra-shared-01
      namespace: envoy-gateway-system
      sectionName: https
  hostnames:
  - grafana.mydomain.io
  rules:
    - backendRefs:
        - name: grafana
          port: 3000
      matches:
        - path:
            type: PathPrefix
            value: /

We would prefer external-dns to consume annotations from both HTTPRoutes object and Gateway objects.

@ivankatliarchuk
Copy link
Contributor

I'm going to add /help we may have someone to be able help with proposing and implementing a solution

@ivankatliarchuk
Copy link
Contributor

/help

@k8s-ci-robot
Copy link
Contributor

@ivankatliarchuk:
This request has been marked as needing help from a contributor.

Guidelines

Please ensure that the issue body includes answers to the following questions:

  • Why are we solving this issue?
  • To address this issue, are there any code changes? If there are code changes, what needs to be done in the code and what places can the assignee treat as reference points?
  • Does this issue have zero to low barrier of entry?
  • How can the assignee reach out to you for help?

For more details on the requirements of such an issue, please see here and ensure that they are met.

If this request no longer meets these requirements, the label can be removed
by commenting with the /remove-help command.

In response to this:

/help

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added the help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. label Feb 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines. kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

No branches or pull requests

3 participants