New to Voyager? Please start here.

Configuring external DNS servers

external-dns project can be used to configure external DNS servers for Voyager managed ingresses.

LoadBalancer Ingress

For a LoadBalancer type Ingress, apply "external-dns.alpha.kubernetes.io/hostname" annotation on the service that exposes HAProxy pods. This service should have a name like voyager-{ingress-name} in the same namespace of the Ingress object. Since, Voyager uses its own CRD for Ingress, external-dns project must use the service to discover loadbalancer ip.

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'

NodePort Ingress

external-dns does not support NodePort ingress.

HostPort Ingress

HostPort type Ingress is supported by external-dns. Here, apply "external-dns.alpha.kubernetes.io/hostname" annotation on the HAProxy services.

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-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'

Internal Ingress

Internal ingress is not accessible from outside a cluster. Hence, there is nothing to configure in external DNS servers.

Take your team where it needs to go.

Create your cluster in minutes. Our team is here to help and would be happy to chat with you.