From b9100f2dbe7b25be685d8e00d08b65c25b163d98 Mon Sep 17 00:00:00 2001
From: Marco <marco.lorini@garr.it>
Date: Wed, 14 Oct 2020 14:27:07 +0200
Subject: [PATCH] 2020-10-14 ML: add ExternalDNS field details

---
 README.md | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md
index c62dfed..78d955f 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@ If you want create the Kubernetes clusters on Openstack and you use Juju tool to
 ## Environment configuration
 
 Before starting it is necessary create several Kubernetes clusters to make the federation. One cluster will be the Host (Host Cluster), in which will be install the KubeFed (Control Plane), and the remaining clusters will be the Members (Member Cluster).
-To create the clusters on Openstack, it is possible to use the follow Juju bundle: https://jaas.ai/u/csd-garr/kubernetes-openstack-integrator/bundle.
+To create the clusters on Openstack, it is possible to use the follow Juju bundle in the Documention section.
 
 Once all the clusters for federation have been created, it is useful to collect all cluster access configurations (.kube/config) in a single config file. In this way you can easily switch from one cluster to another.
 Below is an example:
@@ -150,14 +150,14 @@ $ kubefedctl join fed-cluster-member1 --cluster-context k8s-context-member1 --ho
 $ kubefedctl join fed-cluster-member2 --cluster-context k8s-context-member2 --host-cluster-context k8s-context-host --v=2
 ```
 
-Remove cluster to the federation, `unjoin` command:
+Remove cluster to the federation, use the `unjoin` command:
 
 ```bash
 $ kubefedctl unjoin fed-cluster-member1 --cluster-context k8s-context-member1 --host-cluster-context k8s-context-host --v=2
 $ kubefedctl unjoin fed-cluster-member2 --cluster-context k8s-context-member2 --host-cluster-context k8s-context-host --v=2
 ```
 
-Command to show federated clusters:
+Command to show the federated clusters:
 
 ```bash
 $ kubectl -n kube-federation-system get kubefedclusters
@@ -344,6 +344,21 @@ spec:
 $ kubectl --context=<host-cluster-context> create -f resource/externaldns.yaml
 ```
 
+The previous configuration is specific to integrate ExternalDNS with the Ingress DNS Multi-Cluster, in this way it will be possible to obtain the information it needs through the "DNSEndpoint" object. The DNSEndpoint object will be created when the Multi-Cluster is configured (see below).
+pdns-api-key
+The main configuration are:
+
+- **source**: the field represents the type of resources for which it is necessary create a DNS record. For example: service or ingress. In this case the source value is `crd` for Multi-Cluster Ingress DNS integration;
+- **crd-source-apiversion**: the field specifies the api for the `crd` source (required to Multi-Cluster Ingress DNS);
+- **crd-source-kind**: specifies the type of resource which will contain the service or ingress endpoint of the member clusters (required to Multi-Cluster Ingress DNS);
+- **provider**: represents the DNS Provider (`pdns` for PowerDNS);
+- **pdns-server**: it is the DNS server endpoint;
+- **pdns-api-key**: the API key for server authentication;
+- **registry**: specifies the type of the mechanism for safeguarding records that do not depend on ExternalDNS (required to Multi-Cluster Ingress DNS);
+- **txt-prefix**: required to Multi-Cluster Ingress DNS;
+- **domain-filter**: will make ExternalDNS see only the zones matching provided domain;
+- **policy**: are the permissions with which External DNS can operate on PowerDNS.
+
 ### Federate deployment
 
 Now create the federated deployment (for this example we used a simple "Hello World" image):
-- 
GitLab