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
Closed

Document external-dns configuration #355

tamalsaha opened this issue Aug 8, 2017 · 9 comments

Comments

@tamalsaha
Copy link
Contributor

For all 3 modes.
https://github.com/kubernetes-incubator/external-dns

@tamalsaha tamalsaha added this to the 3.2.0 milestone Aug 8, 2017
@tamalsaha
Copy link
Contributor Author

tamalsaha 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-sigs/external-dns#195
- kubernetes-sigs/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
Copy link

sheerun commented Oct 16, 2017

Can't extenral-dns recognize ingress resources?

@tamalsaha
Copy link
Contributor Author

tamalsaha 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
Copy link

sheerun 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
Copy link
Contributor Author

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
Copy link

sheerun 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
Copy link

sheerun 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
Copy link
Contributor Author

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

@tamalsaha
Copy link
Contributor Author

#895

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants