diff --git a/README.md b/README.md index c13327094..2aea7367a 100644 --- a/README.md +++ b/README.md @@ -160,7 +160,7 @@ The following tutorials are provided: * AWS * [AWS Load Balancer Controller](docs/tutorials/aws-load-balancer-controller.md) * [Route53](docs/tutorials/aws.md) - * [Same domain for public and private Route53 zones](docs/tutorials/public-private-route53.md) + * [Same domain for public and private Route53 zones](docs/tutorials/aws-public-private-route53.md) * [Cloud Map](docs/tutorials/aws-sd.md) * [Kube Ingress AWS Controller](docs/tutorials/kube-ingress-aws.md) * [Azure DNS](docs/tutorials/azure.md) @@ -174,15 +174,13 @@ The following tutorials are provided: * [ExternalName Services](docs/tutorials/externalname.md) * Google Kubernetes Engine * [Using Google's Default Ingress Controller](docs/tutorials/gke.md) - * [Using the Nginx Ingress Controller](docs/tutorials/nginx-ingress.md) + * [Using the Nginx Ingress Controller](docs/tutorials/gke-nginx.md) * [Headless Services](docs/tutorials/hostport.md) -* [Istio Gateway Source](docs/tutorials/istio.md) -* [Kubernetes Security Context](docs/tutorials/security-context.md) +* [Istio Gateway Source](docs/sources/istio.md) * [Linode](docs/tutorials/linode.md) -* [Nginx Ingress Controller](docs/tutorials/nginx-ingress.md) * [NS1](docs/tutorials/ns1.md) -* [NS Record Creation with CRD Source](docs/tutorials/ns-record.md) -* [MX Record Creation with CRD Source](docs/tutorials/mx-record.md) +* [NS Record Creation with CRD Source](docs/sources/ns-record.md) +* [MX Record Creation with CRD Source](docs/sources/mx-record.md) * [OpenStack Designate](docs/tutorials/designate.md) * [Oracle Cloud Infrastructure (OCI) DNS](docs/tutorials/oracle.md) * [PowerDNS](docs/tutorials/pdns.md) @@ -195,7 +193,7 @@ The following tutorials are provided: * [GoDaddy](docs/tutorials/godaddy.md) * [Gandi](docs/tutorials/gandi.md) * [IBM Cloud](docs/tutorials/ibmcloud.md) -* [Nodes as source](docs/tutorials/nodes.md) +* [Nodes as source](docs/sources/nodes.md) * [TencentCloud](docs/tutorials/tencentcloud.md) * [Plural](docs/tutorials/plural.md) * [Pi-hole](docs/tutorials/pihole.md) diff --git a/docs/sources/sources.md b/docs/sources/about.md similarity index 99% rename from docs/sources/sources.md rename to docs/sources/about.md index 5f262bb40..5a7a6d3bf 100644 --- a/docs/sources/sources.md +++ b/docs/sources/about.md @@ -1,4 +1,4 @@ -# Sources +# About | Source | Resources | annotation-filter | label-filter | |---------------------------------|-------------------------------------------------------------------------------|-------------------|--------------| diff --git a/docs/tutorials/f5-virtualserver.md b/docs/sources/f5-virtualserver.md similarity index 93% rename from docs/tutorials/f5-virtualserver.md rename to docs/sources/f5-virtualserver.md index f91acabec..5df99cdf3 100644 --- a/docs/tutorials/f5-virtualserver.md +++ b/docs/sources/f5-virtualserver.md @@ -1,4 +1,4 @@ -# Configuring ExternalDNS to use the F5 Networks VirtualServer Source +# F5 Networks VirtualServer Source This tutorial describes how to configure ExternalDNS to use the F5 Networks VirtualServer Source. It is meant to supplement the other provider-specific setup tutorials. The F5 Networks VirtualServer CRD is part of [this](https://github.com/F5Networks/k8s-bigip-ctlr) project. See more in-depth info regarding the VirtualServer CRD [here](https://github.com/F5Networks/k8s-bigip-ctlr/blob/master/docs/config_examples/customResource/CustomResource.md#virtualserver). @@ -30,4 +30,4 @@ Note that, in case you're not installing via Helm, you'll need the following in - get - list - watch -``` \ No newline at end of file +``` diff --git a/docs/tutorials/gateway-api.md b/docs/sources/gateway-api.md similarity index 98% rename from docs/tutorials/gateway-api.md rename to docs/sources/gateway-api.md index 1eadf934c..534cc0363 100644 --- a/docs/tutorials/gateway-api.md +++ b/docs/sources/gateway-api.md @@ -1,4 +1,4 @@ -# Configuring ExternalDNS to use Gateway API Route Sources +# Gateway API Route Sources This describes how to configure ExternalDNS to use Gateway API Route sources. It is meant to supplement the other provider-specific setup tutorials. diff --git a/docs/tutorials/gloo-proxy.md b/docs/sources/gloo-proxy.md similarity index 97% rename from docs/tutorials/gloo-proxy.md rename to docs/sources/gloo-proxy.md index 60defbd6e..79e9f4045 100644 --- a/docs/tutorials/gloo-proxy.md +++ b/docs/sources/gloo-proxy.md @@ -1,4 +1,4 @@ -# Configuring ExternalDNS to use the Gloo Proxy Source +# Gloo Proxy Source This tutorial describes how to configure ExternalDNS to use the Gloo Proxy source. It is meant to supplement the other provider-specific setup tutorials. diff --git a/docs/tutorials/istio.md b/docs/sources/istio.md similarity index 98% rename from docs/tutorials/istio.md rename to docs/sources/istio.md index a2dff8439..20ce2b7cc 100644 --- a/docs/tutorials/istio.md +++ b/docs/sources/istio.md @@ -1,4 +1,5 @@ -# Configuring ExternalDNS to use the Istio Gateway and/or Istio Virtual Service Source +# Istio Gateway / Virtual Service Source + This tutorial describes how to configure ExternalDNS to use the Istio Gateway source. It is meant to supplement the other provider-specific setup tutorials. @@ -43,6 +44,7 @@ spec: ``` ### Manifest (for clusters with RBAC enabled) + ```yaml apiVersion: v1 kind: ServiceAccount @@ -58,7 +60,7 @@ rules: resources: ["services","endpoints","pods"] verbs: ["get","watch","list"] - apiGroups: ["extensions","networking.k8s.io"] - resources: ["ingresses"] + resources: ["ingresses"] verbs: ["get","watch","list"] - apiGroups: [""] resources: ["nodes"] @@ -134,7 +136,7 @@ kubectl patch clusterrole external-dns --type='json' \ ### Verify that Istio Gateway/VirtualService Source works -Follow the [Istio ingress traffic tutorial](https://istio.io/docs/tasks/traffic-management/ingress/) +Follow the [Istio ingress traffic tutorial](https://istio.io/docs/tasks/traffic-management/ingress/) to deploy a sample service that will be exposed outside of the service mesh. The following are relevant snippets from that tutorial. @@ -150,7 +152,9 @@ $ kubectl apply -f <(istioctl kube-inject -f https://raw.githubusercontent.com/i ``` #### Using a Gateway as a source + ##### Create an Istio Gateway: + ```bash $ cat <=0.5.6** version of ExternalDNS for this tutorial diff --git a/docs/tutorials/aws-load-balancer-controller.md b/docs/tutorials/aws-load-balancer-controller.md index 98bc5da69..7cd6285e7 100644 --- a/docs/tutorials/aws-load-balancer-controller.md +++ b/docs/tutorials/aws-load-balancer-controller.md @@ -1,4 +1,4 @@ -# Using ExternalDNS with aws-load-balancer-controller +# AWS Load Balancer Controller This tutorial describes how to use ExternalDNS with the [aws-load-balancer-controller][1]. diff --git a/docs/tutorials/public-private-route53.md b/docs/tutorials/aws-public-private-route53.md similarity index 97% rename from docs/tutorials/public-private-route53.md rename to docs/tutorials/aws-public-private-route53.md index 7786d10fb..bf87dfccf 100644 --- a/docs/tutorials/public-private-route53.md +++ b/docs/tutorials/aws-public-private-route53.md @@ -1,10 +1,10 @@ -# Setting up ExternalDNS using the same domain for public and private Route53 zones +# AWS Route53 with same domain for public and private zones This tutorial describes how to setup ExternalDNS using the same domain for public and private Route53 zones and [nginx-ingress-controller](https://github.com/kubernetes/ingress-nginx). It also outlines how to use [cert-manager](https://github.com/jetstack/cert-manager) to automatically issue SSL certificates from [Let's Encrypt](https://letsencrypt.org/) for both public and private records. ## Deploy public nginx-ingress-controller -Consult [External DNS nginx ingress docs](nginx-ingress.md) for installation guidelines. +You may be interested with [GKE with nginx ingress](gke-nginx.md) for installation guidelines. Specify `ingress-class` in nginx-ingress-controller container args: @@ -107,8 +107,6 @@ spec: ## Deploy private nginx-ingress-controller -Consult [External DNS nginx ingress docs](nginx-ingress.md) for installation guidelines. - Make sure to specify `ingress-class` in nginx-ingress-controller container args: ```yaml diff --git a/docs/tutorials/aws-sd.md b/docs/tutorials/aws-sd.md index bc103b755..c12616931 100644 --- a/docs/tutorials/aws-sd.md +++ b/docs/tutorials/aws-sd.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS using AWS Cloud Map API +# AWS Cloud Map API This tutorial describes how to set up ExternalDNS for usage within a Kubernetes cluster with [AWS Cloud Map API](https://docs.aws.amazon.com/cloud-map/). diff --git a/docs/tutorials/aws.md b/docs/tutorials/aws.md index 66e714049..c5797092b 100644 --- a/docs/tutorials/aws.md +++ b/docs/tutorials/aws.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on AWS +# AWS This tutorial describes how to setup ExternalDNS for usage within a Kubernetes cluster on AWS. Make sure to use **>=0.15.0** version of ExternalDNS for this tutorial @@ -525,7 +525,7 @@ Annotations which are specific to AWS. ### alias -`external-dns.alpha.kubernetes.io/alias` if set to `true` on an ingress, it will create an ALIAS record when the target is an ALIAS as well. To make the target an alias, the ingress needs to be configured correctly as described in [the docs](./nginx-ingress.md#with-a-separate-tcp-load-balancer). In particular, the argument `--publish-service=default/nginx-ingress-controller` has to be set on the `nginx-ingress-controller` container. If one uses the `nginx-ingress` Helm chart, this flag can be set with the `controller.publishService.enabled` configuration option. +`external-dns.alpha.kubernetes.io/alias` if set to `true` on an ingress, it will create an ALIAS record when the target is an ALIAS as well. To make the target an alias, the ingress needs to be configured correctly as described in [the docs](./gke-nginx.md#with-a-separate-tcp-load-balancer). In particular, the argument `--publish-service=default/nginx-ingress-controller` has to be set on the `nginx-ingress-controller` container. If one uses the `nginx-ingress` Helm chart, this flag can be set with the `controller.publishService.enabled` configuration option. ### target-hosted-zone diff --git a/docs/tutorials/azure-private-dns.md b/docs/tutorials/azure-private-dns.md index ba4038942..d10799583 100644 --- a/docs/tutorials/azure-private-dns.md +++ b/docs/tutorials/azure-private-dns.md @@ -1,4 +1,4 @@ -# Set up ExternalDNS for Azure Private DNS +# Azure Private DNS This tutorial describes how to set up ExternalDNS for managing records in Azure Private DNS. diff --git a/docs/tutorials/azure.md b/docs/tutorials/azure.md index 27c4c2e6d..e6d277e18 100644 --- a/docs/tutorials/azure.md +++ b/docs/tutorials/azure.md @@ -1,5 +1,4 @@ - -# Setting up ExternalDNS for Services on Azure +# Azure DNS This tutorial describes how to setup ExternalDNS for [Azure DNS](https://azure.microsoft.com/services/dns/) with [Azure Kubernetes Service](https://docs.microsoft.com/azure/aks/). diff --git a/docs/tutorials/civo.md b/docs/tutorials/civo.md index a4fea9a32..8922a9ebd 100644 --- a/docs/tutorials/civo.md +++ b/docs/tutorials/civo.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on Civo +# Civo DNS This tutorial describes how to setup ExternalDNS for usage within a Kubernetes cluster using Civo DNS Manager. @@ -183,4 +183,4 @@ Now that we have verified that ExternalDNS will automatically manage Civo DNS re ``` $ kubectl delete service -f nginx.yaml $ kubectl delete service -f externaldns.yaml -``` \ No newline at end of file +``` diff --git a/docs/tutorials/cloudflare.md b/docs/tutorials/cloudflare.md index a5d670fe2..b2a4d40bf 100644 --- a/docs/tutorials/cloudflare.md +++ b/docs/tutorials/cloudflare.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on Cloudflare +# Cloudflare DNS This tutorial describes how to setup ExternalDNS for usage within a Kubernetes cluster using Cloudflare DNS. diff --git a/docs/tutorials/contour.md b/docs/tutorials/contour.md index 0ffc9c398..edd1484af 100644 --- a/docs/tutorials/contour.md +++ b/docs/tutorials/contour.md @@ -1,4 +1,4 @@ -# Setting up External DNS with Contour +# Contour HTTPProxy This tutorial describes how to configure External DNS to use the Contour `HTTPProxy` source. Using the `HTTPProxy` resource with External DNS requires Contour version 1.5 or greater. diff --git a/docs/tutorials/coredns.md b/docs/tutorials/coredns.md index 67d32c615..37552b577 100644 --- a/docs/tutorials/coredns.md +++ b/docs/tutorials/coredns.md @@ -1,39 +1,56 @@ -# Setting up ExternalDNS for CoreDNS with minikube +# CoreDNS with minikube + +:warning: This tutorial is out of date. + +:information_source: PRs to update it are welcome ! + This tutorial describes how to setup ExternalDNS for usage within a [minikube](https://github.com/kubernetes/minikube) cluster that makes use of [CoreDNS](https://github.com/coredns/coredns) and [nginx ingress controller](https://github.com/kubernetes/ingress-nginx). + You need to: + * install CoreDNS with [etcd](https://github.com/etcd-io/etcd) enabled * install external-dns with coredns as a provider * enable ingress controller for the minikube cluster - ## Creating a cluster -``` + +```shell minikube start ``` ## Installing CoreDNS with etcd enabled + Helm chart is used to install etcd and CoreDNS. + ### Initializing helm chart -``` + +```shell helm init ``` + ### Installing etcd + [etcd operator](https://github.com/coreos/etcd-operator) is used to manage etcd clusters. ``` helm install stable/etcd-operator --name my-etcd-op ``` + etcd cluster is installed with example yaml from etcd operator website. -``` + +```shell kubectl apply -f https://raw.githubusercontent.com/coreos/etcd-operator/HEAD/example/example-etcd-cluster.yaml ``` ### Installing CoreDNS + In order to make CoreDNS work with etcd backend, values.yaml of the chart should be changed with corresponding configurations. + ``` wget https://raw.githubusercontent.com/helm/charts/HEAD/stable/coredns/values.yaml ``` You need to edit/patch the file with below diff + ```diff diff --git a/values.yaml b/values.yaml index 964e72b..e2fa934 100644 @@ -68,23 +85,29 @@ index 964e72b..e2fa934 100644 # Complete example with all the options: # - zones: # the `zones` block can be left out entirely, defaults to "." ``` + **Note**: + * IP address of etcd's endpoint should be get from etcd client service. It should be "example-etcd-cluster-client" in this example. This IP address is used through this document for etcd endpoint configuration. -``` + +```shell $ kubectl get svc example-etcd-cluster-client NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE example-etcd-cluster-client ClusterIP 10.105.68.165 2379/TCP 16m ``` + * Parameters should configure your own domain. "example.org" is used in this example. - After configuration done in values.yaml, you can install coredns chart. -``` + +```shell helm install --name my-coredns --values values.yaml stable/coredns ``` ## Installing ExternalDNS + ### Install external ExternalDNS + ETCD_URLS is configured to etcd client service address. Optionally, you can configure ETCD_USERNAME and ETCD_PASSWORD for authenticating to etcd. It is also possible to connect to the etcd cluster via HTTPS using the following environment variables: ETCD_CA_FILE, ETCD_CERT_FILE, ETCD_KEY_FILE, ETCD_TLS_SERVER_NAME, ETCD_TLS_INSECURE. @@ -187,13 +210,16 @@ spec: ``` ## Enable the ingress controller + You can use the ingress controller in minikube cluster. It needs to enable ingress addon in the cluster. -``` + +```shell minikube addons enable ingress ``` ## Testing ingress example -``` + +```shell $ cat ingress.yaml apiVersion: networking.k8s.io/v1 kind: Ingress @@ -213,9 +239,9 @@ $ kubectl apply -f ingress.yaml ingress.extensions "nginx" created ``` - Wait a moment until DNS has the ingress IP. The DNS service IP is from CoreDNS service. It is "my-coredns-coredns" in this example. -``` + +```shell $ kubectl get svc my-coredns-coredns NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE my-coredns-coredns ClusterIP 10.100.4.143 53/UDP 12m diff --git a/docs/tutorials/designate.md b/docs/tutorials/designate.md index d5b3a703d..381fde7e1 100644 --- a/docs/tutorials/designate.md +++ b/docs/tutorials/designate.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on OpenStack Designate +# Designate DNS from OpenStack This tutorial describes how to setup ExternalDNS for usage within a Kubernetes cluster using OpenStack Designate DNS. diff --git a/docs/tutorials/digitalocean.md b/docs/tutorials/digitalocean.md index 06bbd4551..e6383f2bf 100644 --- a/docs/tutorials/digitalocean.md +++ b/docs/tutorials/digitalocean.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on DigitalOcean +# DigitalOcean DNS This tutorial describes how to setup ExternalDNS for usage within a Kubernetes cluster using DigitalOcean DNS. diff --git a/docs/tutorials/dnsimple.md b/docs/tutorials/dnsimple.md index b3baabb7c..1f0626971 100644 --- a/docs/tutorials/dnsimple.md +++ b/docs/tutorials/dnsimple.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on DNSimple +# DNSimple This tutorial describes how to setup ExternalDNS for usage with DNSimple. diff --git a/docs/tutorials/exoscale.md b/docs/tutorials/exoscale.md index 92b708856..2201d831c 100644 --- a/docs/tutorials/exoscale.md +++ b/docs/tutorials/exoscale.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Exoscale +# Exoscale ## Prerequisites diff --git a/docs/tutorials/externalname.md b/docs/tutorials/externalname.md index f9f449cff..e4fd2d939 100644 --- a/docs/tutorials/externalname.md +++ b/docs/tutorials/externalname.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for ExternalName Services +# ExternalName Services This tutorial describes how to setup ExternalDNS for usage in conjunction with an ExternalName service. diff --git a/docs/tutorials/gandi.md b/docs/tutorials/gandi.md index 54ce12afe..b9de48b75 100644 --- a/docs/tutorials/gandi.md +++ b/docs/tutorials/gandi.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on Gandi +# Gandi This tutorial describes how to setup ExternalDNS for usage within a Kubernetes cluster using Gandi. diff --git a/docs/tutorials/nginx-ingress.md b/docs/tutorials/gke-nginx.md similarity index 99% rename from docs/tutorials/nginx-ingress.md rename to docs/tutorials/gke-nginx.md index 9de62ecfb..ea13edcb3 100644 --- a/docs/tutorials/nginx-ingress.md +++ b/docs/tutorials/gke-nginx.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS on GKE with nginx-ingress-controller +# GKE with nginx-ingress-controller This tutorial describes how to setup ExternalDNS for usage within a GKE cluster that doesn't make use of Google's [default ingress controller](https://github.com/kubernetes/ingress-gce) but rather uses [nginx-ingress-controller](https://github.com/kubernetes/ingress-nginx) for that task. diff --git a/docs/tutorials/gke.md b/docs/tutorials/gke.md index 07a3953d0..5f5862091 100644 --- a/docs/tutorials/gke.md +++ b/docs/tutorials/gke.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS on Google Kubernetes Engine +# GKE with default controller This tutorial describes how to setup ExternalDNS for usage within a [GKE](https://cloud.google.com/kubernetes-engine) ([Google Kuberentes Engine](https://cloud.google.com/kubernetes-engine)) cluster. Make sure to use **>=0.11.0** version of ExternalDNS for this tutorial diff --git a/docs/tutorials/godaddy.md b/docs/tutorials/godaddy.md index 9b24bc625..bd97dce9e 100644 --- a/docs/tutorials/godaddy.md +++ b/docs/tutorials/godaddy.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on GoDaddy +# GoDaddy This tutorial describes how to setup ExternalDNS for use within a Kubernetes cluster using GoDaddy DNS. diff --git a/docs/tutorials/hostport.md b/docs/tutorials/hostport.md index d9a7bfdc5..339832560 100644 --- a/docs/tutorials/hostport.md +++ b/docs/tutorials/hostport.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Headless Services +# Headless Services This tutorial describes how to setup ExternalDNS for usage in conjunction with a Headless service. diff --git a/docs/tutorials/ibmcloud.md b/docs/tutorials/ibmcloud.md index b1a207d0c..8cf362c24 100644 --- a/docs/tutorials/ibmcloud.md +++ b/docs/tutorials/ibmcloud.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on IBMCloud +# IBMCloud This tutorial describes how to setup ExternalDNS for usage within a Kubernetes cluster using IBMCloud DNS. @@ -259,4 +259,4 @@ Using the `external-dns.alpha.kubernetes.io/ibmcloud-proxied: "true"` annotation By default, IBMCloud DNS Services don't active your private zone with new zone added, with externale DNS, you can use `external-dns.alpha.kubernetes.io/ibmcloud-vpc: "crn:v1:bluemix:public:is:us-south:a/bcf1865e99742d38d2d5fc3fb80a5496::vpc:r006-74353823-a60d-42e4-97c5-5e2551278435"` annotation on your ingress or service, it will active your private zone with in specific VPC for that record created in. this setting won't work if the private zone was active already. -Note: the annotaion value is the VPC CRN, every IBM Cloud service have a valid CRN. \ No newline at end of file +Note: the annotaion value is the VPC CRN, every IBM Cloud service have a valid CRN. diff --git a/docs/tutorials/kops-dns-controller.md b/docs/tutorials/kops-dns-controller.md index 04da968bf..d2facdad1 100644 --- a/docs/tutorials/kops-dns-controller.md +++ b/docs/tutorials/kops-dns-controller.md @@ -1,4 +1,4 @@ -# kOps dns-controller compatibility mode +# kOps dns-controller kOps includes a dns-controller that is primarily used to bootstrap the cluster, but can also be used for provisioning DNS entries for Services and Ingress. @@ -34,4 +34,4 @@ Annotations added to Pods will always result in an A record being created. * For a Service of Type=LoadBalancer, ExternalDNS looks at Status.LoadBalancer.Ingress. It will create CNAMEs to hostnames, and A records for IP addresses. It will do this for both internal and external names -* For a Service of Type=NodePort, ExternalDNS will create A records for the Node's internal/external IP addresses, as appropriate. \ No newline at end of file +* For a Service of Type=NodePort, ExternalDNS will create A records for the Node's internal/external IP addresses, as appropriate. diff --git a/docs/tutorials/kube-ingress-aws.md b/docs/tutorials/kube-ingress-aws.md index 5cf37d4ec..ee9ecd212 100644 --- a/docs/tutorials/kube-ingress-aws.md +++ b/docs/tutorials/kube-ingress-aws.md @@ -1,4 +1,4 @@ -# Using ExternalDNS with kube-ingress-aws-controller +# kube-ingress-aws-controller This tutorial describes how to use ExternalDNS with the [kube-ingress-aws-controller][1]. diff --git a/docs/tutorials/linode.md b/docs/tutorials/linode.md index d638df80e..097a89196 100644 --- a/docs/tutorials/linode.md +++ b/docs/tutorials/linode.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on Linode +# Linode This tutorial describes how to setup ExternalDNS for usage within a Kubernetes cluster using Linode DNS Manager. diff --git a/docs/tutorials/ns1.md b/docs/tutorials/ns1.md index 241cbec4a..6d7300aff 100644 --- a/docs/tutorials/ns1.md +++ b/docs/tutorials/ns1.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on NS1 +# NS1 This tutorial describes how to setup ExternalDNS for use within a Kubernetes cluster using NS1 DNS. diff --git a/docs/tutorials/oracle.md b/docs/tutorials/oracle.md index 4ed5096cb..ab6449486 100644 --- a/docs/tutorials/oracle.md +++ b/docs/tutorials/oracle.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Oracle Cloud Infrastructure (OCI) +# Oracle Cloud Infrastructure This tutorial describes how to setup ExternalDNS for usage within a Kubernetes cluster using OCI DNS. diff --git a/docs/tutorials/ovh.md b/docs/tutorials/ovh.md index da513831f..8a27c1a76 100644 --- a/docs/tutorials/ovh.md +++ b/docs/tutorials/ovh.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on OVH +# OVHcloud This tutorial describes how to setup ExternalDNS for use within a Kubernetes cluster using OVH DNS. diff --git a/docs/tutorials/pdns.md b/docs/tutorials/pdns.md index 582516118..365fffb80 100644 --- a/docs/tutorials/pdns.md +++ b/docs/tutorials/pdns.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for PowerDNS +# PowerDNS ## Prerequisites diff --git a/docs/tutorials/pihole.md b/docs/tutorials/pihole.md index 75f337099..d9b32e4ad 100644 --- a/docs/tutorials/pihole.md +++ b/docs/tutorials/pihole.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Pi-hole +# Pi-hole This tutorial describes how to setup ExternalDNS to sync records with Pi-hole's Custom DNS. Pi-hole has an internal list it checks last when resolving requests. This list can contain any number of arbitrary A, AAAA or CNAME records. diff --git a/docs/tutorials/plural.md b/docs/tutorials/plural.md index 65981b3c8..4d85a72ef 100644 --- a/docs/tutorials/plural.md +++ b/docs/tutorials/plural.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on Plural +# Plural This tutorial describes how to setup ExternalDNS for usage within a Kubernetes cluster using Plural DNS. diff --git a/docs/tutorials/rdns.md b/docs/tutorials/rdns.md index 40deb04da..7e10403c1 100644 --- a/docs/tutorials/rdns.md +++ b/docs/tutorials/rdns.md @@ -1,6 +1,9 @@ -# Setting up ExternalDNS for RancherDNS(RDNS) with kubernetes +# RancherDNS + This tutorial describes how to setup ExternalDNS for usage within a kubernetes cluster that makes use of [RDNS](https://github.com/rancher/rdns-server) and [nginx ingress controller](https://github.com/kubernetes/ingress-nginx). + You need to: + * install RDNS with [etcd](https://github.com/etcd-io/etcd) enabled * install external-dns with rdns as a provider diff --git a/docs/tutorials/rfc2136.md b/docs/tutorials/rfc2136.md index 3dc3a7b3d..a89b39aec 100644 --- a/docs/tutorials/rfc2136.md +++ b/docs/tutorials/rfc2136.md @@ -1,17 +1,21 @@ -# Configuring RFC2136 provider +# RFC2136 provider + This tutorial describes how to use the RFC2136 with either BIND or Windows DNS. ## Using with BIND + To use external-dns with BIND: generate/procure a key, configure DNS and add a deployment of external-dns. ### Server credentials: + - RFC2136 was developed for and tested with [BIND](https://www.isc.org/downloads/bind/) DNS server. This documentation assumes that you already have a configured and working server. If you don't, please check BIND documents or tutorials. - If your DNS is provided for you, ask for a TSIG key authorized to update and transfer the zone you wish to update. The key will look something like below. Skip the next steps wrt BIND setup. + ```text key "externaldns-key" { algorithm hmac-sha256; @@ -25,6 +29,7 @@ a key printed to standard out like above (or in the case of dnssec-keygen in a file called `Kexternaldns......key`). ### BIND Configuration: + If you do not administer your own DNS, skip to RFC provider configuration - Edit your named.conf file (or appropriate included file) and add/change the @@ -75,9 +80,11 @@ following. ### Using external-dns + To use external-dns add an ingress or a LoadBalancer service with a host that is part of the domain-filter. For example both of the following would produce A records. + ```text apiVersion: v1 kind: Service @@ -133,8 +140,8 @@ tutorial and are covered in the main documentation. ### Generate reverse DNS records -If you want to generate reverse DNS records for your services, you have to enable the functionality using the `--rfc2136-create-ptr` -flag. You have also to add the zone to the list of zones managed by ExternalDNS via the `--rfc2136-zone` and `--domain-filter` flags. +If you want to generate reverse DNS records for your services, you have to enable the functionality using the `--rfc2136-create-ptr` +flag. You have also to add the zone to the list of zones managed by ExternalDNS via the `--rfc2136-zone` and `--domain-filter` flags. An example of a valid configuration is the following: ```--domain-filter=157.168.192.in-addr.arpa --rfc2136-zone=157.168.192.in-addr.arpa``` diff --git a/docs/tutorials/scaleway.md b/docs/tutorials/scaleway.md index 621ae64ad..5d5414383 100644 --- a/docs/tutorials/scaleway.md +++ b/docs/tutorials/scaleway.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on Scaleway +# Scaleway This tutorial describes how to setup ExternalDNS for usage within a Kubernetes cluster using Scaleway DNS. diff --git a/docs/tutorials/tencentcloud.md b/docs/tutorials/tencentcloud.md index cdab4cee9..5ac087924 100644 --- a/docs/tutorials/tencentcloud.md +++ b/docs/tutorials/tencentcloud.md @@ -1,6 +1,7 @@ -# Setting up ExternalDNS for Tencent Cloud +# Tencent Cloud ## External Dns Version + * Make sure to use **>=0.13.1** version of ExternalDNS for this tutorial ## Set up PrivateDns or DNSPod @@ -8,17 +9,18 @@ Tencent Cloud DNSPod Service is the domain name resolution and management service for public access. Tencent Cloud PrivateDNS Service is the domain name resolution and management service for VPC internal access. -* If you want to use internal dns service in Tencent Cloud. -1. Set up the args `--tencent-cloud-zone-type=private` +* If you want to use internal dns service in Tencent Cloud. +1. Set up the args `--tencent-cloud-zone-type=private` 2. Create a DNS domain in PrivateDNS console. DNS domain which will contain the managed DNS records. * If you want to use public dns service in Tencent Cloud. -1. Set up the args `--tencent-cloud-zone-type=public` +1. Set up the args `--tencent-cloud-zone-type=public` 2. Create a Domain in DnsPod console. DNS domain which will contain the managed DNS records. ## Set up CAM for API Key In Tencent CAM Console. you may get the secretId and secretKey pair. make sure the key pair has those Policy. + ```json { "version": "2.0", @@ -72,7 +74,7 @@ rules: resources: ["services","endpoints","pods"] verbs: ["get","watch","list"] - apiGroups: ["extensions","networking.k8s.io"] - resources: ["ingresses"] + resources: ["ingresses"] verbs: ["get","watch","list"] - apiGroups: [""] resources: ["nodes"] @@ -99,7 +101,7 @@ data: tencent-cloud.json: | { "regionId": "ap-shanghai", - "secretId": "******", + "secretId": "******", "secretKey": "******", "vpcId": "vpc-******", "internetEndpoint": false # Default: false. Access the Tencent API through the intranet. If you need to deploy on the public network, you need to change to true diff --git a/docs/tutorials/transip.md b/docs/tutorials/transip.md index afb3d3ac2..9de15e4fe 100644 --- a/docs/tutorials/transip.md +++ b/docs/tutorials/transip.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on TransIP +# TransIP This tutorial describes how to setup ExternalDNS for usage within a Kubernetes cluster using TransIP. diff --git a/docs/tutorials/ultradns.md b/docs/tutorials/ultradns.md index 40c6dfb75..591de6a64 100644 --- a/docs/tutorials/ultradns.md +++ b/docs/tutorials/ultradns.md @@ -1,4 +1,4 @@ -# Setting up ExternalDNS for Services on UltraDNS +# UltraDNS This tutorial describes how to setup ExternalDNS for usage within a Kubernetes cluster using UltraDNS. diff --git a/kustomize/kustomization.yaml b/kustomize/kustomization.yaml index 37ea99655..679d56974 100644 --- a/kustomize/kustomization.yaml +++ b/kustomize/kustomization.yaml @@ -3,7 +3,7 @@ kind: Kustomization images: - name: registry.k8s.io/external-dns/external-dns - newTag: v0.14.2 + newTag: v0.15.0 resources: - ./external-dns-deployment.yaml diff --git a/mkdocs.yml b/mkdocs.yml index 8da9aac33..b96fa998e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,7 +2,6 @@ site_name: external-dns site_author: external-dns maintainers repo_name: kubernetes-sigs/external-dns repo_url: https://github.com/kubernetes-sigs/external-dns/ -trademark: https://www.linuxfoundation.org/legal/trademark-usage docs_dir: . @@ -19,11 +18,7 @@ nav: - Tutorials: docs/tutorials/* - Annotations: - About: docs/annotations/annotations.md - - Sources: - - About: docs/sources/sources.md - - Gateway: docs/sources/gateway.md - - Ingress: docs/sources/ingress.md - - Service: docs/sources/service.md + - Sources: docs/sources/* - Registries: - About: docs/registry/registry.md - TXT: docs/registry/txt.md