From 1b275fc3f4863f8d6b086e3a524dc2d3cdace170 Mon Sep 17 00:00:00 2001 From: Omer Date: Tue, 23 Apr 2024 15:51:26 +0300 Subject: [PATCH 01/29] docs: Add setup example for CloudFlare provider in ExternalDNS Helm chart documentation --- charts/external-dns/README.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/charts/external-dns/README.md b/charts/external-dns/README.md index a94215f64b..451dbc33c7 100644 --- a/charts/external-dns/README.md +++ b/charts/external-dns/README.md @@ -35,6 +35,35 @@ helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 Configuring the _ExternalDNS_ provider should be done via the `provider.name` value with provider specific configuration being set via the `provider..` values, where supported, and the `extraArgs` value. For legacy support `provider` can be set to the name of the provider with all additional configuration being set via the `extraArgs` value. See [documentation](https://kubernetes-sigs.github.io/external-dns/#new-providers) for more info on available providers and tutorials. +### Provider Example +#### Setting Up ExternalDNS with CloudFlare +To deploy ExternalDNS configured for the CloudFlare DNS provider, begin by creating a Kubernetes secret to securely store your CloudFlare API key. This key will enable ExternalDNS to authenticate with CloudFlare: +```shell +kubectl create secret generic cloudflare-api-key --from-literal=apiKey=YOUR_API_KEY +``` +Ensure to replace YOUR_API_KEY with your actual CloudFlare API key. + +Next, create a values.yaml file to configure ExternalDNS to use CloudFlare as the DNS provider. This file should include the necessary environment variables: +```shell +provider: + name: cloudflare +env: + - name: CF_API_KEY + valueFrom: + secretKeyRef: + name: cloudflare-api-key + key: apiKey + - name: CF_API_EMAIL + value: "example@example.com" +``` +Replace your-email@example.com with the email associated with your CloudFlare account. + +Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: +```shell +helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml +``` +This command will configure ExternalDNS to manage DNS records using CloudFlare, based on resources present in your Kubernetes cluster. + ### Providers with Specific Configuration Support | Provider | Supported | From a7e487d413ec84ba5c70129ff8f91fd84bd2064d Mon Sep 17 00:00:00 2001 From: Omer Date: Wed, 24 Apr 2024 19:52:46 +0300 Subject: [PATCH 02/29] Revert changes to charts/external-dns/README.md and add helm docs for docs/tutorials/cloudflare.md --- charts/external-dns/README.md | 29 ----------------------- docs/tutorials/cloudflare.md | 44 +++++++++++++++++++++++++++++++---- 2 files changed, 39 insertions(+), 34 deletions(-) diff --git a/charts/external-dns/README.md b/charts/external-dns/README.md index 451dbc33c7..a94215f64b 100644 --- a/charts/external-dns/README.md +++ b/charts/external-dns/README.md @@ -35,35 +35,6 @@ helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 Configuring the _ExternalDNS_ provider should be done via the `provider.name` value with provider specific configuration being set via the `provider..` values, where supported, and the `extraArgs` value. For legacy support `provider` can be set to the name of the provider with all additional configuration being set via the `extraArgs` value. See [documentation](https://kubernetes-sigs.github.io/external-dns/#new-providers) for more info on available providers and tutorials. -### Provider Example -#### Setting Up ExternalDNS with CloudFlare -To deploy ExternalDNS configured for the CloudFlare DNS provider, begin by creating a Kubernetes secret to securely store your CloudFlare API key. This key will enable ExternalDNS to authenticate with CloudFlare: -```shell -kubectl create secret generic cloudflare-api-key --from-literal=apiKey=YOUR_API_KEY -``` -Ensure to replace YOUR_API_KEY with your actual CloudFlare API key. - -Next, create a values.yaml file to configure ExternalDNS to use CloudFlare as the DNS provider. This file should include the necessary environment variables: -```shell -provider: - name: cloudflare -env: - - name: CF_API_KEY - valueFrom: - secretKeyRef: - name: cloudflare-api-key - key: apiKey - - name: CF_API_EMAIL - value: "example@example.com" -``` -Replace your-email@example.com with the email associated with your CloudFlare account. - -Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: -```shell -helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml -``` -This command will configure ExternalDNS to manage DNS records using CloudFlare, based on resources present in your Kubernetes cluster. - ### Providers with Specific Configuration Support | Provider | Supported | diff --git a/docs/tutorials/cloudflare.md b/docs/tutorials/cloudflare.md index 846ed22722..fd1dd239b5 100644 --- a/docs/tutorials/cloudflare.md +++ b/docs/tutorials/cloudflare.md @@ -34,8 +34,36 @@ Cloudflare API has a [global rate limit of 1,200 requests per five minutes](http ## Deploy ExternalDNS Connect your `kubectl` client to the cluster you want to test ExternalDNS with. + +Begin by creating a Kubernetes secret to securely store your CloudFlare API key. This key will enable ExternalDNS to authenticate with CloudFlare: +```shell +kubectl create secret generic cloudflare-api-key --from-literal=apiKey=YOUR_API_KEY +``` +Ensure to replace YOUR_API_KEY with your actual CloudFlare API key. Then apply one of the following manifests file to deploy ExternalDNS. +### Using Helm + +Create a values.yaml file to configure ExternalDNS to use CloudFlare as the DNS provider. This file should include the necessary environment variables: +```shell +provider: + name: cloudflare +env: + - name: CF_API_KEY + valueFrom: + secretKeyRef: + name: cloudflare-api-key + key: apiKey + - name: CF_API_EMAIL + value: "YOUR_CLOUDFLARE_EMAIL" +``` +Replace YOUR_CLOUDFLARE_EMAIL with the email associated with your CloudFlare account. + +Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: +```shell +helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml +``` + ### Manifest (for clusters without RBAC enabled) ```yaml @@ -64,9 +92,12 @@ spec: - --provider=cloudflare - --cloudflare-proxied # (optional) enable the proxy feature of Cloudflare (DDOS protection, CDN...) - --cloudflare-dns-records-per-page=5000 # (optional) configure how many DNS records to fetch per request - env: - - name: CF_API_KEY - value: "YOUR_CLOUDFLARE_API_KEY" + env: + - name: CF_API_KEY + valueFrom: + secretKeyRef: + name: cloudflare-api-key + key: apiKey - name: CF_API_EMAIL value: "YOUR_CLOUDFLARE_EMAIL" ``` @@ -134,8 +165,11 @@ spec: - --cloudflare-proxied # (optional) enable the proxy feature of Cloudflare (DDOS protection, CDN...) - --cloudflare-dns-records-per-page=5000 # (optional) configure how many DNS records to fetch per request env: - - name: CF_API_KEY - value: "YOUR_CLOUDFLARE_API_KEY" + - name: CF_API_KEY + valueFrom: + secretKeyRef: + name: cloudflare-api-key + key: apiKey - name: CF_API_EMAIL value: "YOUR_CLOUDFLARE_EMAIL" ``` From de07d9dbdab6c1fc4a304d7829a5ef98d4f8747e Mon Sep 17 00:00:00 2001 From: Omer Date: Wed, 24 Apr 2024 20:09:53 +0300 Subject: [PATCH 03/29] Set all credentials in secrets --- docs/tutorials/cloudflare.md | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/docs/tutorials/cloudflare.md b/docs/tutorials/cloudflare.md index fd1dd239b5..a0bfcd1016 100644 --- a/docs/tutorials/cloudflare.md +++ b/docs/tutorials/cloudflare.md @@ -37,9 +37,10 @@ Connect your `kubectl` client to the cluster you want to test ExternalDNS with. Begin by creating a Kubernetes secret to securely store your CloudFlare API key. This key will enable ExternalDNS to authenticate with CloudFlare: ```shell -kubectl create secret generic cloudflare-api-key --from-literal=apiKey=YOUR_API_KEY +kubectl create secret generic cloudflare-api-key --from-literal=API_KEY=YOUR_API_KEY ---from-literal=CF_API_EMAIL=YOUR_CLOUDFLARE_EMAIL ``` -Ensure to replace YOUR_API_KEY with your actual CloudFlare API key. +Ensure to replace YOUR_API_KEY with your actual CloudFlare API key and YOUR_CLOUDFLARE_EMAIL with the email associated with your CloudFlare account. + Then apply one of the following manifests file to deploy ExternalDNS. ### Using Helm @@ -55,9 +56,11 @@ env: name: cloudflare-api-key key: apiKey - name: CF_API_EMAIL - value: "YOUR_CLOUDFLARE_EMAIL" + valueFrom: + secretKeyRef: + name: cloudflare-api-key + key: YOUR_CLOUDFLARE_EMAIL ``` -Replace YOUR_CLOUDFLARE_EMAIL with the email associated with your CloudFlare account. Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: ```shell @@ -94,12 +97,15 @@ spec: - --cloudflare-dns-records-per-page=5000 # (optional) configure how many DNS records to fetch per request env: - name: CF_API_KEY - valueFrom: - secretKeyRef: - name: cloudflare-api-key - key: apiKey - - name: CF_API_EMAIL - value: "YOUR_CLOUDFLARE_EMAIL" + valueFrom: + secretKeyRef: + name: cloudflare-api-key + key: API_KEY + - name: CF_API_EMAIL + valueFrom: + secretKeyRef: + name: cloudflare-api-key + key: YOUR_CLOUDFLARE_EMAIL ``` ### Manifest (for clusters with RBAC enabled) @@ -166,12 +172,15 @@ spec: - --cloudflare-dns-records-per-page=5000 # (optional) configure how many DNS records to fetch per request env: - name: CF_API_KEY - valueFrom: + valueFrom: secretKeyRef: name: cloudflare-api-key key: apiKey - - name: CF_API_EMAIL - value: "YOUR_CLOUDFLARE_EMAIL" + - name: CF_API_EMAIL + valueFrom: + secretKeyRef: + name: cloudflare-api-key + key: YOUR_CLOUDFLARE_EMAIL ``` ## Deploying an Nginx Service From 83b3ed110abe1cf44952651ea942cd1eed931e03 Mon Sep 17 00:00:00 2001 From: Omer Date: Wed, 24 Apr 2024 20:10:49 +0300 Subject: [PATCH 04/29] Added helm docks to akami-edgedns --- docs/tutorials/akamai-edgedns.md | 43 +++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/docs/tutorials/akamai-edgedns.md b/docs/tutorials/akamai-edgedns.md index 7ec153a6fe..2bf6e18c0e 100644 --- a/docs/tutorials/akamai-edgedns.md +++ b/docs/tutorials/akamai-edgedns.md @@ -34,7 +34,48 @@ In addition to specifying auth credentials individually, an Akamai Edgegrid .edg An operational External-DNS deployment consists of an External-DNS container and service. The following sections demonstrate the ConfigMap objects that would make up an example functional external DNS kubernetes configuration utilizing NGINX as the service. -Connect your `kubectl` client to the External-DNS cluster, and then apply one of the following manifest files: +Connect your `kubectl` client to the External-DNS cluster. + +Begin by creating a Kubernetes secret to securely store your Akamai Edge DNS Access Tokens. This key will enable ExternalDNS to authenticate with Akamai Edge DNS: +```shell +kubectl create secret generic external-dns --from-literal=EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN=YOUR_SERVICECONSUMERDOMAIN --from-literal=EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN=YOUR_CLIENT_TOKEN --from-literal=EXTERNAL_DNS_AKAMAI_CLIENT_SECRET=YOUR_CLIENT_SECRET --from-literal=EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN=YOUR_ACCESS_TOKEN +``` +Ensure to replace YOUR_SERVICECONSUMERDOMAIN, EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN, YOUR_CLIENT_SECRET and YOUR_ACCESS_TOKEN with your actual Akamai Edge DNS API keys. + +Then apply one of the following manifests file to deploy ExternalDNS. + +### Using Helm + +Create a values.yaml file to configure ExternalDNS to use Akamai Edge DNS as the DNS provider. This file should include the necessary environment variables: +```shell +provider: + name: akamai +env: + - name: EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN + valueFrom: + secretKeyRef: + name: external-dns + key: EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN + - name: EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN + valueFrom: + secretKeyRef: + name: external-dns + key: EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN + - name: EXTERNAL_DNS_AKAMAI_CLIENT_SECRET + valueFrom: + secretKeyRef: + name: external-dns + key: EXTERNAL_DNS_AKAMAI_CLIENT_SECRET + - name: EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN + valueFrom: + secretKeyRef: + name: external-dns + key: EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN +``` +Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: +```shell +helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml +``` ### Manifest (for clusters without RBAC enabled) From 739993c69d24e8afcb162bcaeaef7597a4f6bb89 Mon Sep 17 00:00:00 2001 From: Omer Date: Fri, 26 Apr 2024 18:31:41 +0300 Subject: [PATCH 05/29] Added helm docs to ns1 --- docs/tutorials/ns1.md | 42 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/docs/tutorials/ns1.md b/docs/tutorials/ns1.md index 71d9039cb4..572b7f2880 100644 --- a/docs/tutorials/ns1.md +++ b/docs/tutorials/ns1.md @@ -41,6 +41,34 @@ var `NS1_APIKEY` will be needed to run ExternalDNS with NS1. Connect your `kubectl` client to the cluster with which you want to test ExternalDNS, and then apply one of the following manifest files for deployment: +Begin by creating a Kubernetes secret to securely store your CloudFlare API key. This key will enable ExternalDNS to authenticate with CloudFlare: +```shell +kubectl create secret generic NS1_APIKEY --from-literal=NS1_API_KEY=YOUR_NS1_API_KEY +``` + +Ensure to replace YOUR_NS1_API_KEY with your actual NS1 API key. + +Then apply one of the following manifests file to deploy ExternalDNS. + +## Using Helm + +Create a values.yaml file to configure ExternalDNS to use CloudFlare as the DNS provider. This file should include the necessary environment variables: +```shell +provider: + name: ns1 +env: + - name: NS1_APIKEY + valueFrom: + secretKeyRef: + name: NS1_APIKEY + key: NS1_API_KEY +``` + +Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: +```shell +helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml +``` + ### Manifest (for clusters without RBAC enabled) ```yaml @@ -67,8 +95,11 @@ spec: - --domain-filter=example.com # (optional) limit to only example.com domains; change to match the zone created above. - --provider=ns1 env: - - name: NS1_APIKEY - value: "YOUR_NS1_API_KEY" + - name: NS1_APIKEY + valueFrom: + secretKeyRef: + name: NS1_APIKEY + key: NS1_API_KEY ``` ### Manifest (for clusters with RBAC enabled) @@ -131,8 +162,11 @@ spec: - --domain-filter=example.com # (optional) limit to only example.com domains; change to match the zone created above. - --provider=ns1 env: - - name: NS1_APIKEY - value: "YOUR_NS1_API_KEY" + - name: NS1_APIKEY + valueFrom: + secretKeyRef: + name: NS1_APIKEY + key: NS1_API_KEY ``` ## Deploying an Nginx Service From dcbcdd5084efc0d455dc2911b6288177f43951d8 Mon Sep 17 00:00:00 2001 From: Omer Date: Fri, 26 Apr 2024 18:36:43 +0300 Subject: [PATCH 06/29] Fixed typo --- docs/tutorials/ns1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/ns1.md b/docs/tutorials/ns1.md index 572b7f2880..dfc17ca1df 100644 --- a/docs/tutorials/ns1.md +++ b/docs/tutorials/ns1.md @@ -52,7 +52,7 @@ Then apply one of the following manifests file to deploy ExternalDNS. ## Using Helm -Create a values.yaml file to configure ExternalDNS to use CloudFlare as the DNS provider. This file should include the necessary environment variables: +Create a values.yaml file to configure ExternalDNS to use NS1 as the DNS provider. This file should include the necessary environment variables: ```shell provider: name: ns1 From 3e547466813b6b43fd964cc67b313df3231b59d6 Mon Sep 17 00:00:00 2001 From: Omer Date: Fri, 26 Apr 2024 18:37:18 +0300 Subject: [PATCH 07/29] Fixed typo --- docs/tutorials/ns1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/ns1.md b/docs/tutorials/ns1.md index dfc17ca1df..abd765a272 100644 --- a/docs/tutorials/ns1.md +++ b/docs/tutorials/ns1.md @@ -41,7 +41,7 @@ var `NS1_APIKEY` will be needed to run ExternalDNS with NS1. Connect your `kubectl` client to the cluster with which you want to test ExternalDNS, and then apply one of the following manifest files for deployment: -Begin by creating a Kubernetes secret to securely store your CloudFlare API key. This key will enable ExternalDNS to authenticate with CloudFlare: +Begin by creating a Kubernetes secret to securely store your NS1 API key. This key will enable ExternalDNS to authenticate with NS1: ```shell kubectl create secret generic NS1_APIKEY --from-literal=NS1_API_KEY=YOUR_NS1_API_KEY ``` From 19f149f66010c2db0618c1d261121e3a5f81b713 Mon Sep 17 00:00:00 2001 From: Omer Date: Fri, 26 Apr 2024 18:38:58 +0300 Subject: [PATCH 08/29] Added helm docs to digitalocean --- docs/tutorials/digitalocean.md | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/docs/tutorials/digitalocean.md b/docs/tutorials/digitalocean.md index e50ddb4f2d..c10bd35053 100644 --- a/docs/tutorials/digitalocean.md +++ b/docs/tutorials/digitalocean.md @@ -21,8 +21,29 @@ The environment variable `DO_TOKEN` will be needed to run ExternalDNS with Digit ## Deploy ExternalDNS Connect your `kubectl` client to the cluster you want to test ExternalDNS with. + +Begin by creating a Kubernetes secret to securely store your DigitalOcean API key. This key will enable ExternalDNS to authenticate with DigitalOcean: +```shell +kubectl create secret generic DO_TOKEN --from-literal=DO_TOKEN=YOUR_DIGITALOCEAN_API_KEY +``` +Ensure to replace YOUR_DIGITALOCEAN_API_KEY with your actual DigitalOcean API key. + Then apply one of the following manifests file to deploy ExternalDNS. +## Using Helm + +Create a values.yaml file to configure ExternalDNS to use DigitalOcean as the DNS provider. This file should include the necessary environment variables: +```shell +provider: + name: digitalocean +env: + - name: DO_TOKEN + valueFrom: + secretKeyRef: + name: DO_TOKEN + key: DO_TOKEN +``` + ### Manifest (for clusters without RBAC enabled) ```yaml apiVersion: apps/v1 @@ -50,7 +71,10 @@ spec: - --provider=digitalocean env: - name: DO_TOKEN - value: "YOUR_DIGITALOCEAN_API_KEY" + valueFrom: + secretKeyRef: + name: DO_TOKEN + key: DO_TOKEN ``` ### Manifest (for clusters with RBAC enabled) @@ -114,7 +138,10 @@ spec: - --provider=digitalocean env: - name: DO_TOKEN - value: "YOUR_DIGITALOCEAN_API_KEY" + valueFrom: + secretKeyRef: + name: DO_TOKEN + key: DO_TOKEN ``` From 66592c7b2516d2a288523e33d4502c2bca07c5d1 Mon Sep 17 00:00:00 2001 From: Omer Date: Fri, 26 Apr 2024 22:21:22 +0300 Subject: [PATCH 09/29] Added helm docs to godaddy --- docs/tutorials/godaddy.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/tutorials/godaddy.md b/docs/tutorials/godaddy.md index a95bf538a6..2a0b758703 100644 --- a/docs/tutorials/godaddy.md +++ b/docs/tutorials/godaddy.md @@ -24,6 +24,24 @@ Using the [GoDaddy documentation](https://developer.godaddy.com/getstarted) you Connect your `kubectl` client to the cluster with which you want to test ExternalDNS, and then apply one of the following manifest files for deployment: +## Using Helm + +Create a values.yaml file to configure ExternalDNS to use NS1 as the DNS provider. This file should include the necessary environment variables: +```shell +provider: + name: godaddy +extraArgs: + - --godaddy-api-key=YOUR_API_KEY + - --godaddy-api-secret=YOUR_API_SECRET +``` + +Ensure to replace YOUR_API_KEY and YOUR_API_SECRET with your actual godaddy API key and godaddy API secret. + +Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: +```shell +helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml +``` + ### Manifest (for clusters without RBAC enabled) ```yaml From 8d6e87ff1cdd355abe7b00cf2169df2d07a233c7 Mon Sep 17 00:00:00 2001 From: Omer Date: Fri, 26 Apr 2024 22:27:40 +0300 Subject: [PATCH 10/29] Added helm docs to aws --- docs/tutorials/aws.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/tutorials/aws.md b/docs/tutorials/aws.md index 54eafba5f4..eb061b1117 100644 --- a/docs/tutorials/aws.md +++ b/docs/tutorials/aws.md @@ -392,6 +392,22 @@ kubectl get namespaces | grep -q $EXTERNALDNS_NS || \ kubectl create namespace $EXTERNALDNS_NS ``` +## Using Helm (with OIDC) + +Create a values.yaml file to configure ExternalDNS: +```shell +provider: + name: aws +env: + - name: AWS_DEFAULT_REGION + value: us-east-1 # change to region where EKS is installed +``` + +Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: +```shell +helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml +``` + ### Manifest (for clusters without RBAC enabled) Save the following below as `externaldns-no-rbac.yaml`. From 2c87289ee65340dd72a1a9f183b40c83d345162a Mon Sep 17 00:00:00 2001 From: Omer Date: Fri, 26 Apr 2024 22:34:34 +0300 Subject: [PATCH 11/29] Added helm docs to vult --- docs/tutorials/vultr.md | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/docs/tutorials/vultr.md b/docs/tutorials/vultr.md index c5fcbed8e8..ea476278d9 100644 --- a/docs/tutorials/vultr.md +++ b/docs/tutorials/vultr.md @@ -20,8 +20,36 @@ The environment variable `VULTR_API_KEY` will be needed to run ExternalDNS with ## Deploy ExternalDNS Connect your `kubectl` client to the cluster you want to test ExternalDNS with. + +Begin by creating a Kubernetes secret to securely store your Akamai Edge DNS Access Tokens. This key will enable ExternalDNS to authenticate with Akamai Edge DNS: +```shell +kubectl create secret generic VULTR_API_KEY --from-literal=VULTR_API_KEY=YOUR_VULTR_API_KEY +``` + +Ensure to replace YOUR_VULTR_API_KEY, with your actual Vultr API key. + + Then apply one of the following manifests file to deploy ExternalDNS. +### Using Helm + +reate a values.yaml file to configure ExternalDNS to use Akamai Edge DNS as the DNS provider. This file should include the necessary environment variables: +```shell +provider: + name: akamai +env: + - name: VULTR_API_KEY + valueFrom: + secretKeyRef: + name: VULTR_API_KEY + key: VULTR_API_KEY +``` + +Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: +```shell +helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml +``` + ### Manifest (for clusters without RBAC enabled) ```yaml @@ -49,7 +77,10 @@ spec: - --provider=vultr env: - name: VULTR_API_KEY - value: "YOU_VULTR_API_KEY" + valueFrom: + secretKeyRef: + name: VULTR_API_KEY + key: VULTR_API_KEY ``` ### Manifest (for clusters with RBAC enabled) @@ -113,7 +144,10 @@ spec: - --provider=vultr env: - name: VULTR_API_KEY - value: "YOU_VULTR_API_KEY" + valueFrom: + secretKeyRef: + name: VULTR_API_KEY + key: VULTR_API_KEY ``` ## Deploying a Nginx Service From 399940f985077206cfbdba9b96794c14cd1108a9 Mon Sep 17 00:00:00 2001 From: Omer Date: Fri, 26 Apr 2024 22:42:01 +0300 Subject: [PATCH 12/29] Added helm docs to plural --- docs/tutorials/plural.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/tutorials/plural.md b/docs/tutorials/plural.md index 762c59d3fb..5fadc6593b 100644 --- a/docs/tutorials/plural.md +++ b/docs/tutorials/plural.md @@ -15,6 +15,30 @@ To create the secret you can run `kubectl create secret generic plural-env --fro Connect your `kubectl` client to the cluster you want to test ExternalDNS with. Then apply one of the following manifests file to deploy ExternalDNS. +## Using Helm + +Create a values.yaml file to configure ExternalDNS to use plural DNS as the DNS provider. This file should include the necessary environment variables: +```shell +provider: + name: plural +extraArgs: + - --plural-cluster=example-plural-cluster + - --plural-provider=aws # gcp, azure, equinix and kind are also possible +env: + - name: PLURAL_ACCESS_TOKEN + valueFrom: + secretKeyRef: + name: PLURAL_ACCESS_TOKEN + key: plural-env + - name: PLURAL_ENDPOINT + value: https://app.plural.sh +``` + +Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: +```shell +helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml +``` + ### Manifest (for clusters without RBAC enabled) ```yaml From 0a1f6d77ef22c26cabc5dfaa65627fde0e35e2e8 Mon Sep 17 00:00:00 2001 From: Omer Date: Fri, 26 Apr 2024 22:43:31 +0300 Subject: [PATCH 13/29] Change secret name --- docs/tutorials/akamai-edgedns.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/docs/tutorials/akamai-edgedns.md b/docs/tutorials/akamai-edgedns.md index 2bf6e18c0e..8970447383 100644 --- a/docs/tutorials/akamai-edgedns.md +++ b/docs/tutorials/akamai-edgedns.md @@ -38,8 +38,9 @@ Connect your `kubectl` client to the External-DNS cluster. Begin by creating a Kubernetes secret to securely store your Akamai Edge DNS Access Tokens. This key will enable ExternalDNS to authenticate with Akamai Edge DNS: ```shell -kubectl create secret generic external-dns --from-literal=EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN=YOUR_SERVICECONSUMERDOMAIN --from-literal=EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN=YOUR_CLIENT_TOKEN --from-literal=EXTERNAL_DNS_AKAMAI_CLIENT_SECRET=YOUR_CLIENT_SECRET --from-literal=EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN=YOUR_ACCESS_TOKEN +kubectl create secret generic AKAMAI-DNS --from-literal=EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN=YOUR_SERVICECONSUMERDOMAIN --from-literal=EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN=YOUR_CLIENT_TOKEN --from-literal=EXTERNAL_DNS_AKAMAI_CLIENT_SECRET=YOUR_CLIENT_SECRET --from-literal=EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN=YOUR_ACCESS_TOKEN ``` + Ensure to replace YOUR_SERVICECONSUMERDOMAIN, EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN, YOUR_CLIENT_SECRET and YOUR_ACCESS_TOKEN with your actual Akamai Edge DNS API keys. Then apply one of the following manifests file to deploy ExternalDNS. @@ -54,22 +55,22 @@ env: - name: EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN valueFrom: secretKeyRef: - name: external-dns + name: AKAMAI-DNS key: EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN - name: EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN valueFrom: secretKeyRef: - name: external-dns + name: AKAMAI-DNS key: EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN - name: EXTERNAL_DNS_AKAMAI_CLIENT_SECRET valueFrom: secretKeyRef: - name: external-dns + name: AKAMAI-DNS key: EXTERNAL_DNS_AKAMAI_CLIENT_SECRET - name: EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN valueFrom: secretKeyRef: - name: external-dns + name: AKAMAI-DNS key: EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN ``` Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: @@ -111,22 +112,22 @@ spec: - name: EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN valueFrom: secretKeyRef: - name: external-dns + name: AKAMAI-DNS key: EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN - name: EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN valueFrom: secretKeyRef: - name: external-dns + name: AKAMAI-DNS key: EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN - name: EXTERNAL_DNS_AKAMAI_CLIENT_SECRET valueFrom: secretKeyRef: - name: external-dns + name: AKAMAI-DNS key: EXTERNAL_DNS_AKAMAI_CLIENT_SECRET - name: EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN valueFrom: secretKeyRef: - name: external-dns + name: AKAMAI-DNS key: EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN ``` @@ -197,22 +198,22 @@ spec: - name: EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN valueFrom: secretKeyRef: - name: external-dns + name: AKAMAI-DNS key: EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN - name: EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN valueFrom: secretKeyRef: - name: external-dns + name: AKAMAI-DNS key: EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN - name: EXTERNAL_DNS_AKAMAI_CLIENT_SECRET valueFrom: secretKeyRef: - name: external-dns + name: AKAMAI-DNS key: EXTERNAL_DNS_AKAMAI_CLIENT_SECRET - name: EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN valueFrom: secretKeyRef: - name: external-dns + name: AKAMAI-DNS key: EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN ``` From 513c00fbe3ff5f6b4acad2325493fb9f2d335d2c Mon Sep 17 00:00:00 2001 From: Omer Date: Fri, 26 Apr 2024 23:00:24 +0300 Subject: [PATCH 14/29] Added helm docs to README for hekm --- charts/external-dns/README.md.gotmpl | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/charts/external-dns/README.md.gotmpl b/charts/external-dns/README.md.gotmpl index 675835de8f..898d77fee8 100644 --- a/charts/external-dns/README.md.gotmpl +++ b/charts/external-dns/README.md.gotmpl @@ -25,6 +25,16 @@ After you've installed the repo you can install the chart. helm upgrade --install {{ template "chart.name" . }} external-dns/{{ template "chart.name" . }} --version {{ template "chart.version" . }} ``` +For set up for a specific provider, see the following examples: +- [AWS](https://github.com/omerap12/external-dns/blob/docs/helm-documentation/docs/tutorials/aws.md#using-helm-with-oidc) +- [akamai-edgedns](https://github.com/omerap12/external-dns/blob/docs/helm-documentation/docs/tutorials/akamai-edgedns.md#using-helm) +- [cloudflare](https://github.com/omerap12/external-dns/blob/docs/helm-documentation/docs/tutorials/cloudflare.md#using-helm) +- [digitalocean](https://github.com/omerap12/external-dns/blob/docs/helm-documentation/docs/tutorials/digitalocean.md#using-helm) +- [godaddy](https://github.com/omerap12/external-dns/blob/docs/helm-documentation/docs/tutorials/godaddy.md#using-helm) +- [ns1](https://github.com/omerap12/external-dns/blob/docs/helm-documentation/docs/tutorials/ns1.md#using-helm) +- [plural](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/plural.md#deploy-externaldns) +- [vultr](https://github.com/omerap12/external-dns/blob/docs/helm-documentation/docs/tutorials/vultr.md#using-helm) + ## Providers Configuring the _ExternalDNS_ provider should be done via the `provider.name` value with provider specific configuration being set via the `provider..` values, where supported, and the `extraArgs` value. For legacy support `provider` can be set to the name of the provider with all additional configuration being set via the `extraArgs` value. From ef5c582046440eb2a15bb949e26431a98d74f45b Mon Sep 17 00:00:00 2001 From: Omer Date: Fri, 26 Apr 2024 23:15:01 +0300 Subject: [PATCH 15/29] Update README template for helm --- charts/external-dns/README.md.gotmpl | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/charts/external-dns/README.md.gotmpl b/charts/external-dns/README.md.gotmpl index 898d77fee8..4853864402 100644 --- a/charts/external-dns/README.md.gotmpl +++ b/charts/external-dns/README.md.gotmpl @@ -26,14 +26,14 @@ helm upgrade --install {{ template "chart.name" . }} external-dns/{{ template "c ``` For set up for a specific provider, see the following examples: -- [AWS](https://github.com/omerap12/external-dns/blob/docs/helm-documentation/docs/tutorials/aws.md#using-helm-with-oidc) -- [akamai-edgedns](https://github.com/omerap12/external-dns/blob/docs/helm-documentation/docs/tutorials/akamai-edgedns.md#using-helm) -- [cloudflare](https://github.com/omerap12/external-dns/blob/docs/helm-documentation/docs/tutorials/cloudflare.md#using-helm) -- [digitalocean](https://github.com/omerap12/external-dns/blob/docs/helm-documentation/docs/tutorials/digitalocean.md#using-helm) -- [godaddy](https://github.com/omerap12/external-dns/blob/docs/helm-documentation/docs/tutorials/godaddy.md#using-helm) -- [ns1](https://github.com/omerap12/external-dns/blob/docs/helm-documentation/docs/tutorials/ns1.md#using-helm) -- [plural](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/plural.md#deploy-externaldns) -- [vultr](https://github.com/omerap12/external-dns/blob/docs/helm-documentation/docs/tutorials/vultr.md#using-helm) +- [AWS](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md#using-helm-with-oidc) +- [akamai-edgedns](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/akamai-edgedns.md#using-helm) +- [cloudflare](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/cloudflare.md#using-helm) +- [digitalocean](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/digitalocean.md#using-helm) +- [godaddy](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/godaddy.md#using-helm) +- [ns1](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/ns1.md#using-helm) +- [plural](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/plural.md#using-helm) +- [vultr](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/vultr.md#using-helm) ## Providers From 7e7d452de5b292aa02fa46a12779b3034cc19282 Mon Sep 17 00:00:00 2001 From: Omer Date: Sat, 27 Apr 2024 00:22:14 +0300 Subject: [PATCH 16/29] Add spaces --- docs/tutorials/akamai-edgedns.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/tutorials/akamai-edgedns.md b/docs/tutorials/akamai-edgedns.md index 8970447383..9fcf5d5b73 100644 --- a/docs/tutorials/akamai-edgedns.md +++ b/docs/tutorials/akamai-edgedns.md @@ -37,6 +37,7 @@ An operational External-DNS deployment consists of an External-DNS container and Connect your `kubectl` client to the External-DNS cluster. Begin by creating a Kubernetes secret to securely store your Akamai Edge DNS Access Tokens. This key will enable ExternalDNS to authenticate with Akamai Edge DNS: + ```shell kubectl create secret generic AKAMAI-DNS --from-literal=EXTERNAL_DNS_AKAMAI_SERVICECONSUMERDOMAIN=YOUR_SERVICECONSUMERDOMAIN --from-literal=EXTERNAL_DNS_AKAMAI_CLIENT_TOKEN=YOUR_CLIENT_TOKEN --from-literal=EXTERNAL_DNS_AKAMAI_CLIENT_SECRET=YOUR_CLIENT_SECRET --from-literal=EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN=YOUR_ACCESS_TOKEN ``` @@ -48,6 +49,7 @@ Then apply one of the following manifests file to deploy ExternalDNS. ### Using Helm Create a values.yaml file to configure ExternalDNS to use Akamai Edge DNS as the DNS provider. This file should include the necessary environment variables: + ```shell provider: name: akamai @@ -73,8 +75,10 @@ env: name: AKAMAI-DNS key: EXTERNAL_DNS_AKAMAI_ACCESS_TOKEN ``` + Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: ```shell + helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml ``` From bd44a29ac69839335050af3bfe86ae332a4f29a9 Mon Sep 17 00:00:00 2001 From: Omer Date: Sat, 27 Apr 2024 00:22:46 +0300 Subject: [PATCH 17/29] Add spaces --- docs/tutorials/aws.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/tutorials/aws.md b/docs/tutorials/aws.md index eb061b1117..ed88f05aca 100644 --- a/docs/tutorials/aws.md +++ b/docs/tutorials/aws.md @@ -395,6 +395,7 @@ kubectl get namespaces | grep -q $EXTERNALDNS_NS || \ ## Using Helm (with OIDC) Create a values.yaml file to configure ExternalDNS: + ```shell provider: name: aws @@ -404,6 +405,7 @@ env: ``` Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: + ```shell helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml ``` From a6585190f461a76aabef61c7bd5eb42c36476ed9 Mon Sep 17 00:00:00 2001 From: Omer Date: Sat, 27 Apr 2024 00:23:21 +0300 Subject: [PATCH 18/29] Add spaces --- docs/tutorials/cloudflare.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/tutorials/cloudflare.md b/docs/tutorials/cloudflare.md index a0bfcd1016..f42d8be739 100644 --- a/docs/tutorials/cloudflare.md +++ b/docs/tutorials/cloudflare.md @@ -36,9 +36,11 @@ Cloudflare API has a [global rate limit of 1,200 requests per five minutes](http Connect your `kubectl` client to the cluster you want to test ExternalDNS with. Begin by creating a Kubernetes secret to securely store your CloudFlare API key. This key will enable ExternalDNS to authenticate with CloudFlare: + ```shell kubectl create secret generic cloudflare-api-key --from-literal=API_KEY=YOUR_API_KEY ---from-literal=CF_API_EMAIL=YOUR_CLOUDFLARE_EMAIL ``` + Ensure to replace YOUR_API_KEY with your actual CloudFlare API key and YOUR_CLOUDFLARE_EMAIL with the email associated with your CloudFlare account. Then apply one of the following manifests file to deploy ExternalDNS. @@ -46,6 +48,7 @@ Then apply one of the following manifests file to deploy ExternalDNS. ### Using Helm Create a values.yaml file to configure ExternalDNS to use CloudFlare as the DNS provider. This file should include the necessary environment variables: + ```shell provider: name: cloudflare @@ -63,6 +66,7 @@ env: ``` Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: + ```shell helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml ``` From c3e8e0997c8bb3105fd5c567eaed8fde2ac1ffae Mon Sep 17 00:00:00 2001 From: Omer Date: Sat, 27 Apr 2024 00:23:55 +0300 Subject: [PATCH 19/29] Add spaces --- docs/tutorials/digitalocean.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/tutorials/digitalocean.md b/docs/tutorials/digitalocean.md index c10bd35053..57d43d5328 100644 --- a/docs/tutorials/digitalocean.md +++ b/docs/tutorials/digitalocean.md @@ -23,9 +23,11 @@ The environment variable `DO_TOKEN` will be needed to run ExternalDNS with Digit Connect your `kubectl` client to the cluster you want to test ExternalDNS with. Begin by creating a Kubernetes secret to securely store your DigitalOcean API key. This key will enable ExternalDNS to authenticate with DigitalOcean: + ```shell kubectl create secret generic DO_TOKEN --from-literal=DO_TOKEN=YOUR_DIGITALOCEAN_API_KEY ``` + Ensure to replace YOUR_DIGITALOCEAN_API_KEY with your actual DigitalOcean API key. Then apply one of the following manifests file to deploy ExternalDNS. @@ -33,6 +35,7 @@ Then apply one of the following manifests file to deploy ExternalDNS. ## Using Helm Create a values.yaml file to configure ExternalDNS to use DigitalOcean as the DNS provider. This file should include the necessary environment variables: + ```shell provider: name: digitalocean @@ -45,6 +48,7 @@ env: ``` ### Manifest (for clusters without RBAC enabled) + ```yaml apiVersion: apps/v1 kind: Deployment From 689f9ffa4f6a02a6a22fcad8714a23564b86bc14 Mon Sep 17 00:00:00 2001 From: Omer Date: Sat, 27 Apr 2024 00:29:38 +0300 Subject: [PATCH 20/29] Add spaces --- docs/tutorials/ns1.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/tutorials/ns1.md b/docs/tutorials/ns1.md index abd765a272..e7da7286e8 100644 --- a/docs/tutorials/ns1.md +++ b/docs/tutorials/ns1.md @@ -42,6 +42,7 @@ var `NS1_APIKEY` will be needed to run ExternalDNS with NS1. Connect your `kubectl` client to the cluster with which you want to test ExternalDNS, and then apply one of the following manifest files for deployment: Begin by creating a Kubernetes secret to securely store your NS1 API key. This key will enable ExternalDNS to authenticate with NS1: + ```shell kubectl create secret generic NS1_APIKEY --from-literal=NS1_API_KEY=YOUR_NS1_API_KEY ``` @@ -53,6 +54,7 @@ Then apply one of the following manifests file to deploy ExternalDNS. ## Using Helm Create a values.yaml file to configure ExternalDNS to use NS1 as the DNS provider. This file should include the necessary environment variables: + ```shell provider: name: ns1 @@ -65,6 +67,7 @@ env: ``` Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: + ```shell helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml ``` From 5ca2a2911944bade2bd73239fe37214643fcd032 Mon Sep 17 00:00:00 2001 From: Omer Date: Sat, 27 Apr 2024 00:30:57 +0300 Subject: [PATCH 21/29] Add spaces --- docs/tutorials/plural.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/tutorials/plural.md b/docs/tutorials/plural.md index 5fadc6593b..ca1173b662 100644 --- a/docs/tutorials/plural.md +++ b/docs/tutorials/plural.md @@ -18,6 +18,7 @@ Then apply one of the following manifests file to deploy ExternalDNS. ## Using Helm Create a values.yaml file to configure ExternalDNS to use plural DNS as the DNS provider. This file should include the necessary environment variables: + ```shell provider: name: plural @@ -35,6 +36,7 @@ env: ``` Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: + ```shell helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml ``` From 4e655fbc2ef44cb95b90f839d7662adb7600ae86 Mon Sep 17 00:00:00 2001 From: Omer Date: Sat, 27 Apr 2024 00:31:17 +0300 Subject: [PATCH 22/29] Add spaces --- docs/tutorials/vultr.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/tutorials/vultr.md b/docs/tutorials/vultr.md index ea476278d9..3831d9b634 100644 --- a/docs/tutorials/vultr.md +++ b/docs/tutorials/vultr.md @@ -22,6 +22,7 @@ The environment variable `VULTR_API_KEY` will be needed to run ExternalDNS with Connect your `kubectl` client to the cluster you want to test ExternalDNS with. Begin by creating a Kubernetes secret to securely store your Akamai Edge DNS Access Tokens. This key will enable ExternalDNS to authenticate with Akamai Edge DNS: + ```shell kubectl create secret generic VULTR_API_KEY --from-literal=VULTR_API_KEY=YOUR_VULTR_API_KEY ``` @@ -34,6 +35,7 @@ Then apply one of the following manifests file to deploy ExternalDNS. ### Using Helm reate a values.yaml file to configure ExternalDNS to use Akamai Edge DNS as the DNS provider. This file should include the necessary environment variables: + ```shell provider: name: akamai @@ -46,6 +48,7 @@ env: ``` Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: + ```shell helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml ``` From a37d4972a3d64e33b690537ba677b0d72701b90d Mon Sep 17 00:00:00 2001 From: Omer Date: Sat, 27 Apr 2024 00:32:56 +0300 Subject: [PATCH 23/29] Add spaces --- docs/tutorials/godaddy.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/tutorials/godaddy.md b/docs/tutorials/godaddy.md index 2a0b758703..a954522684 100644 --- a/docs/tutorials/godaddy.md +++ b/docs/tutorials/godaddy.md @@ -27,6 +27,7 @@ Connect your `kubectl` client to the cluster with which you want to test Externa ## Using Helm Create a values.yaml file to configure ExternalDNS to use NS1 as the DNS provider. This file should include the necessary environment variables: + ```shell provider: name: godaddy @@ -38,6 +39,7 @@ extraArgs: Ensure to replace YOUR_API_KEY and YOUR_API_SECRET with your actual godaddy API key and godaddy API secret. Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: + ```shell helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml ``` From 51b35cb0acb0e9aa5ec34032ed10f88846298cc4 Mon Sep 17 00:00:00 2001 From: Omer Date: Sat, 27 Apr 2024 00:35:12 +0300 Subject: [PATCH 24/29] Add spaces --- docs/tutorials/akamai-edgedns.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/akamai-edgedns.md b/docs/tutorials/akamai-edgedns.md index 9fcf5d5b73..bcbe937968 100644 --- a/docs/tutorials/akamai-edgedns.md +++ b/docs/tutorials/akamai-edgedns.md @@ -77,8 +77,8 @@ env: ``` Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: -```shell +```shell helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml ``` From 9d41b4814683055160ca0302899321c48bea8b0e Mon Sep 17 00:00:00 2001 From: Omer Date: Sat, 27 Apr 2024 00:36:29 +0300 Subject: [PATCH 25/29] removed unused files --- docs/tutorials/akamai-edgedns.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/tutorials/akamai-edgedns.md b/docs/tutorials/akamai-edgedns.md index bcbe937968..fbba11e4f8 100644 --- a/docs/tutorials/akamai-edgedns.md +++ b/docs/tutorials/akamai-edgedns.md @@ -82,6 +82,7 @@ Finally, install the ExternalDNS chart with Helm using the configuration specifi helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml ``` + ### Manifest (for clusters without RBAC enabled) ```yaml From 82fd2773be9a295bca45608bdd5876e489d580ab Mon Sep 17 00:00:00 2001 From: Omer Date: Sat, 27 Apr 2024 08:23:57 +0300 Subject: [PATCH 26/29] Remove version flag from helm command --- docs/tutorials/akamai-edgedns.md | 2 +- docs/tutorials/aws.md | 2 +- docs/tutorials/cloudflare.md | 2 +- docs/tutorials/godaddy.md | 2 +- docs/tutorials/ns1.md | 2 +- docs/tutorials/plural.md | 2 +- docs/tutorials/vultr.md | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/tutorials/akamai-edgedns.md b/docs/tutorials/akamai-edgedns.md index fbba11e4f8..fc435c2fc6 100644 --- a/docs/tutorials/akamai-edgedns.md +++ b/docs/tutorials/akamai-edgedns.md @@ -79,7 +79,7 @@ env: Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: ```shell -helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml +helm upgrade --install external-dns external-dns/external-dns --values values.yaml ``` diff --git a/docs/tutorials/aws.md b/docs/tutorials/aws.md index ed88f05aca..708b0164ce 100644 --- a/docs/tutorials/aws.md +++ b/docs/tutorials/aws.md @@ -407,7 +407,7 @@ env: Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: ```shell -helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml +helm upgrade --install external-dns external-dns/external-dns --values values.yaml ``` ### Manifest (for clusters without RBAC enabled) diff --git a/docs/tutorials/cloudflare.md b/docs/tutorials/cloudflare.md index f42d8be739..487f190385 100644 --- a/docs/tutorials/cloudflare.md +++ b/docs/tutorials/cloudflare.md @@ -68,7 +68,7 @@ env: Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: ```shell -helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml +helm upgrade --install external-dns external-dns/external-dns --values values.yaml ``` ### Manifest (for clusters without RBAC enabled) diff --git a/docs/tutorials/godaddy.md b/docs/tutorials/godaddy.md index a954522684..f896020825 100644 --- a/docs/tutorials/godaddy.md +++ b/docs/tutorials/godaddy.md @@ -41,7 +41,7 @@ Ensure to replace YOUR_API_KEY and YOUR_API_SECRET with your actual godaddy API Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: ```shell -helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml +helm upgrade --install external-dns external-dns/external-dns --values values.yaml ``` ### Manifest (for clusters without RBAC enabled) diff --git a/docs/tutorials/ns1.md b/docs/tutorials/ns1.md index e7da7286e8..4673a60353 100644 --- a/docs/tutorials/ns1.md +++ b/docs/tutorials/ns1.md @@ -69,7 +69,7 @@ env: Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: ```shell -helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml +helm upgrade --install external-dns external-dns/external-dns --values values.yaml ``` ### Manifest (for clusters without RBAC enabled) diff --git a/docs/tutorials/plural.md b/docs/tutorials/plural.md index ca1173b662..629f9d3452 100644 --- a/docs/tutorials/plural.md +++ b/docs/tutorials/plural.md @@ -38,7 +38,7 @@ env: Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: ```shell -helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml +helm upgrade --install external-dns external-dns/external-dns --values values.yaml ``` ### Manifest (for clusters without RBAC enabled) diff --git a/docs/tutorials/vultr.md b/docs/tutorials/vultr.md index 3831d9b634..09f6406df5 100644 --- a/docs/tutorials/vultr.md +++ b/docs/tutorials/vultr.md @@ -50,7 +50,7 @@ env: Finally, install the ExternalDNS chart with Helm using the configuration specified in your values.yaml file: ```shell -helm upgrade --install external-dns external-dns/external-dns --version 1.14.4 --values values.yaml +helm upgrade --install external-dns external-dns/external-dns --values values.yaml ``` ### Manifest (for clusters without RBAC enabled) From cbf2e787d9c07fa13eab13d517955a5d912e440e Mon Sep 17 00:00:00 2001 From: Omer Date: Mon, 29 Apr 2024 14:13:44 +0300 Subject: [PATCH 27/29] Moved charts docs under #Providers --- charts/external-dns/README.md.gotmpl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/charts/external-dns/README.md.gotmpl b/charts/external-dns/README.md.gotmpl index 4853864402..707e1c31db 100644 --- a/charts/external-dns/README.md.gotmpl +++ b/charts/external-dns/README.md.gotmpl @@ -25,7 +25,9 @@ After you've installed the repo you can install the chart. helm upgrade --install {{ template "chart.name" . }} external-dns/{{ template "chart.name" . }} --version {{ template "chart.version" . }} ``` -For set up for a specific provider, see the following examples: +## Providers + +For set up for a specific provider using the Helm chart, see the following links: - [AWS](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md#using-helm-with-oidc) - [akamai-edgedns](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/akamai-edgedns.md#using-helm) - [cloudflare](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/cloudflare.md#using-helm) @@ -35,8 +37,6 @@ For set up for a specific provider, see the following examples: - [plural](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/plural.md#using-helm) - [vultr](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/vultr.md#using-helm) -## Providers - Configuring the _ExternalDNS_ provider should be done via the `provider.name` value with provider specific configuration being set via the `provider..` values, where supported, and the `extraArgs` value. For legacy support `provider` can be set to the name of the provider with all additional configuration being set via the `extraArgs` value. See [documentation](https://kubernetes-sigs.github.io/external-dns/#new-providers) for more info on available providers and tutorials. From 592aab227fe4f562321f24cf61db7469f0d8c324 Mon Sep 17 00:00:00 2001 From: Omer Date: Mon, 29 Apr 2024 17:25:07 +0300 Subject: [PATCH 28/29] Set new heading 'Other Providers' on README.md.gotmpl --- charts/external-dns/README.md.gotmpl | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/charts/external-dns/README.md.gotmpl b/charts/external-dns/README.md.gotmpl index 707e1c31db..d99f0968dd 100644 --- a/charts/external-dns/README.md.gotmpl +++ b/charts/external-dns/README.md.gotmpl @@ -27,6 +27,17 @@ helm upgrade --install {{ template "chart.name" . }} external-dns/{{ template "c ## Providers +Configuring the _ExternalDNS_ provider should be done via the `provider.name` value with provider specific configuration being set via the `provider..` values, where supported, and the `extraArgs` value. For legacy support `provider` can be set to the name of the provider with all additional configuration being set via the `extraArgs` value. +See [documentation](https://kubernetes-sigs.github.io/external-dns/#new-providers) for more info on available providers and tutorials. + +### Providers with Specific Configuration Support + +| Provider | Supported | +|------------------------|------------| +| `webhook` | ✅ | + +### Other Providers + For set up for a specific provider using the Helm chart, see the following links: - [AWS](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md#using-helm-with-oidc) - [akamai-edgedns](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/akamai-edgedns.md#using-helm) @@ -37,15 +48,6 @@ For set up for a specific provider using the Helm chart, see the following links - [plural](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/plural.md#using-helm) - [vultr](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/vultr.md#using-helm) -Configuring the _ExternalDNS_ provider should be done via the `provider.name` value with provider specific configuration being set via the `provider..` values, where supported, and the `extraArgs` value. For legacy support `provider` can be set to the name of the provider with all additional configuration being set via the `extraArgs` value. -See [documentation](https://kubernetes-sigs.github.io/external-dns/#new-providers) for more info on available providers and tutorials. - -### Providers with Specific Configuration Support - -| Provider | Supported | -|------------------------|------------| -| `webhook` | ✅ | - ## Namespaced Scoped Installation external-dns supports running on a namespaced only scope, too. From ab86ac702228ac8412429a37388e7b59471df180 Mon Sep 17 00:00:00 2001 From: Omer Date: Tue, 30 Apr 2024 18:38:59 +0300 Subject: [PATCH 29/29] Run helm-docs --- charts/external-dns/README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/charts/external-dns/README.md b/charts/external-dns/README.md index a94215f64b..f4680f3d67 100644 --- a/charts/external-dns/README.md +++ b/charts/external-dns/README.md @@ -41,6 +41,18 @@ See [documentation](https://kubernetes-sigs.github.io/external-dns/#new-provider |------------------------|------------| | `webhook` | ✅ | +### Other Providers + +For set up for a specific provider using the Helm chart, see the following links: +- [AWS](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md#using-helm-with-oidc) +- [akamai-edgedns](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/akamai-edgedns.md#using-helm) +- [cloudflare](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/cloudflare.md#using-helm) +- [digitalocean](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/digitalocean.md#using-helm) +- [godaddy](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/godaddy.md#using-helm) +- [ns1](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/ns1.md#using-helm) +- [plural](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/plural.md#using-helm) +- [vultr](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/vultr.md#using-helm) + ## Namespaced Scoped Installation external-dns supports running on a namespaced only scope, too.