You are looking at the documentation of a prior release. To read the documentation of the latest release, please
visit here.
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, since version v0.5.0-alpha.1. Here, apply "external-dns.alpha.kubernetes.io/hostname"
annotation on the 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'
Internal Ingress
Internal ingress is not accessible from outside a cluster. Hence, there is nothing to configure in external DNS servers.