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

Document external-dns configuration #355

Closed
tamalsaha opened this issue Aug 8, 2017 · 9 comments

Comments

Projects
None yet
2 participants
@tamalsaha
Copy link
Member

commented Aug 8, 2017

@tamalsaha tamalsaha added this to the 3.2.0 milestone Aug 8, 2017

@tamalsaha

This comment has been minimized.

Copy link
Member Author

commented Aug 30, 2017

ingress.appscode.com/type: LoadBalancer
For a LoadBlanacer type Ingress, you apply "external-dns.alpha.kubernetes.io/hostname" annotation on the service that exposes HAProxy pods.

apiVersion: voyager.appscode.com/v1beta1
kind: Ingress
metadata:
  name: test-ingress-voyager
  namespace: vdimov-dev
  annotations:
     ingress.appscode.com/annotations-service: |
         {
           "external-dns.alpha.kubernetes.io/hostname" : "voyager.example.com,voyager-1.example.com,voyager-2.example.com"
         }
     ingress.appscode.com/replicas: '2'
spec:
  rules:
  - host: voyager.example.com
    http:
      paths:
       - backend:
          serviceName: web
          servicePort: '80'

ingress.appscode.com/type: HostPort
This is only supported by legacy kops controller. external-dns project has recently added support for headless service. There is no release with that commit yet.

- kubernetes-incubator/external-dns#195
- kubernetes-incubator/external-dns#221

For a HostPort type Ingress, you apply "external-dns.alpha.kubernetes.io/hostname" annotation on the pods that exposes HAProxy pods.

apiVersion: voyager.appscode.com/v1beta1
kind: Ingress
metadata:
  name: test-ingress-voyager
  namespace: vdimov-dev
  annotations:
     ingress.appscode.com/type: HostPort
     ingress.appscode.com/annotations-pod: |
         {
           "external-dns.alpha.kubernetes.io/hostname" : "voyager.example.com,voyager-1.example.com,voyager-2.example.com"
         }
     ingress.appscode.com/replicas: '2'
spec:
  rules:
  - host: voyager.example.com
    http:
      paths:
       - backend:
          serviceName: web
          servicePort: '80'

ingress.appscode.com/type: NodePort
external-dns is not supported in this mode.

@tamalsaha tamalsaha modified the milestones: 4.0.0, 3.2.0 Sep 11, 2017

@tamalsaha tamalsaha modified the milestones: 4.0.0, 5.0.0 Oct 4, 2017

@tamalsaha tamalsaha modified the milestones: 5.0.0, 4.1.0 Oct 12, 2017

@sheerun

This comment has been minimized.

Copy link

commented Oct 16, 2017

Can't extenral-dns recognize ingress resources?

@tamalsaha

This comment has been minimized.

Copy link
Member Author

commented Oct 16, 2017

If you use Voyager defined CRDs (apiVersion: voyager.appscode.com/v1beta1), external-dns can't automatically detect Intgress. You have to use the ingress.appscode.com/annotations-service annotation so that external-dns can pick the necessary info from the Service used to expose HAProxy pods.

@sheerun

This comment has been minimized.

Copy link

commented Oct 16, 2017

Can't Voyager automatically set these annotations on its service? It has access to ingress hosts so in the example above it can generate at least external-dns.alpha.kubernetes.io/hostname: "voyager.example.com"

@tamalsaha

This comment has been minimized.

Copy link
Member Author

commented Oct 16, 2017

The issue is voyager does not know if user is using external-dns, whether external-dns supports user's DNS provider etc. So, we left it a manual setup on Ingress YAML.

@sheerun

This comment has been minimized.

Copy link

commented Oct 16, 2017

Unfortunately it is a chore to write above for every ingress. It would be far more convenient if I could set externalDnsIntegration: true in values.yaml and voyager generated these for me :)

@sheerun

This comment has been minimized.

Copy link

commented Oct 16, 2017

Of course extra documentation is also fine, but external-dns seems to be the tool of choice, it's good to integrate with it.

@tamalsaha

This comment has been minimized.

Copy link
Member Author

commented Oct 16, 2017

I hear you! We will look into this. This is not a priority for the moment.

@tamalsaha

This comment has been minimized.

Copy link
Member Author

commented Feb 25, 2018

@tamalsaha tamalsaha closed this Feb 25, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.