Skip to content

Commit 6c4cee4

Browse files
Merge pull request #70322 from xenolinux/edns-improv
OSDOCS#9360: Improve the External DNS Operator content
2 parents 80dc8ed + 2f39840 commit 6c4cee4

15 files changed

+102
-115
lines changed

_topic_maps/_topic_map.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1315,11 +1315,11 @@ Topics:
13151315
File: nw-installing-external-dns-operator-on-cloud-providers
13161316
- Name: External DNS Operator configuration parameters
13171317
File: nw-configuration-parameters
1318-
- Name: Creating DNS records on an public hosted zone for AWS
1318+
- Name: Creating DNS records on a public hosted zone for AWS
13191319
File: nw-creating-dns-records-on-aws
1320-
- Name: Creating DNS records on an public zone for Azure
1320+
- Name: Creating DNS records on a public zone for Azure
13211321
File: nw-creating-dns-records-on-azure
1322-
- Name: Creating DNS records on an public managed zone for GCP
1322+
- Name: Creating DNS records on a public managed zone for GCP
13231323
File: nw-creating-dns-records-on-gcp
13241324
- Name: Creating DNS records on a public DNS zone for Infoblox
13251325
File: nw-creating-dns-records-on-infoblox

modules/configuring-egress-proxy-edns-operator.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
:_mod-docs-content-type: PROCEDURE
66
[id="nw-configuring-cluster-wide-proxy_{context}"]
7-
= Configuring the External DNS Operator to trust the certificate authority of the cluster-wide proxy
7+
= Trusting the certificate authority of the cluster-wide proxy
88

99
You can configure the External DNS Operator to trust the certificate authority of the cluster-wide proxy.
1010

@@ -44,4 +44,4 @@ $ oc -n external-dns-operator exec deploy/external-dns-operator -c external-dns-
4444
[source,terminal]
4545
----
4646
trusted-ca
47-
----
47+
----

modules/nw-control-dns-records-public-hosted-zone-azure.adoc

Lines changed: 20 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,18 @@
44

55
:_mod-docs-content-type: PROCEDURE
66
[id="nw-control-dns-records-public-hosted-zone-azure_{context}"]
7-
= Creating DNS records on an public DNS zone for Azure by using Red Hat External DNS Operator
7+
= Creating DNS records on an Azure public DNS zone
88

9-
You can create DNS records on a public DNS zone for Azure by using Red Hat External DNS Operator.
9+
You can create DNS records on a public DNS zone for Azure by using the External DNS Operator.
1010

11-
.Procedure
11+
.Prerequisites
1212

13-
. Check the user. The user must have access to the `kube-system` namespace. If you don’t have the credentials, as you can fetch the credentials from the `kube-system` namespace to use the cloud provider client:
14-
+
15-
[source,terminal]
16-
----
17-
$ oc whoami
18-
----
19-
+
20-
.Example output
21-
[source,terminal]
22-
----
23-
system:admin
24-
----
13+
* You must have administrator privileges.
14+
* The `admin` user must have access to the `kube-system` namespace.
15+
16+
.Procedure
2517

26-
. Fetch the values from azure-credentials secret present in `kube-system` namespace.
18+
. Fetch the credentials from the `kube-system` namespace to use the cloud provider client by running the following command:
2719
+
2820
[source,terminal]
2921
----
@@ -34,14 +26,14 @@ $ SUBSCRIPTION_ID=$(oc get secrets azure-credentials -n kube-system --template
3426
$ TENANT_ID=$(oc get secrets azure-credentials -n kube-system --template={{.data.azure_tenant_id}} | base64 -d)
3527
----
3628

37-
. Login to azure with base64 decoded values:
29+
. Log in to Azure by running the following command:
3830
+
3931
[source,terminal]
4032
----
4133
$ az login --service-principal -u "${CLIENT_ID}" -p "${CLIENT_SECRET}" --tenant "${TENANT_ID}"
4234
----
4335

44-
. Get the routes to check the domain:
36+
. Get a list of routes by running the following command:
4537
+
4638
[source,terminal]
4739
----
@@ -55,15 +47,16 @@ openshift-console console console-openshift-console.apps.te
5547
openshift-console downloads downloads-openshift-console.apps.test.azure.example.com downloads http edge/Redirect None
5648
----
5749

58-
. Get the list of dns zones to find the one which corresponds to the previously found route's domain:
50+
. Get a list of DNS zones by running the following command:
5951
+
6052
[source,terminal]
6153
----
6254
$ az network dns zone list --resource-group "${RESOURCE_GROUP}"
6355
----
6456

65-
. Create `ExternalDNS` resource for `route` source:
57+
. Create a YAML file, for example, `external-dns-sample-azure.yaml`, that defines the `ExternalDNS` object:
6658
+
59+
.Example `external-dns-sample-azure.yaml` file
6760
[source,yaml]
6861
----
6962
apiVersion: externaldns.olm.openshift.io/v1beta1
@@ -79,16 +72,15 @@ spec:
7972
openshiftRouteOptions: <4>
8073
routerName: default <5>
8174
type: OpenShiftRoute <6>
82-
EOF
8375
----
84-
<1> Specifies the name of External DNS CR.
85-
<2> Define the zone ID.
86-
<3> Defines the Azure DNS provider.
76+
<1> Specifies the External DNS name.
77+
<2> Defines the zone ID.
78+
<3> Defines the provider type.
8779
<4> You can define options for the source of DNS records.
88-
<5> If the source is `OpenShiftRoute` then you can pass the OpenShift Ingress Controller name. External DNS selects the canonical hostname of that router as the target while creating CNAME record.
89-
<6> Defines OpenShift `route` resource as the source for the DNS records which gets created in the previously specified DNS provider.
80+
<5> If the source type is `OpenShiftRoute`, you can pass the OpenShift Ingress Controller name. External DNS selects the canonical hostname of that router as the target while creating CNAME record.
81+
<6> Defines the `route` resource as the source for the Azure DNS records.
9082

91-
. Check the records created for OCP routes using the following command:
83+
. Check the DNS records created for {product-title} routes by running the following command:
9284
+
9385
[source,terminal]
9486
----
@@ -97,5 +89,5 @@ $ az network dns record-set list -g "${RESOURCE_GROUP}" -z test.azure.example.c
9789
+
9890
[NOTE]
9991
====
100-
To create records on private hosted zones on private Azure dns, you need to specify the private zone under `zones` which populates the provider type to `azure-private-dns` in the `ExternalDNS` container args.
92+
To create records on private hosted zones on private Azure DNS, you need to specify the private zone under the `zones` field which populates the provider type to `azure-private-dns` in the `ExternalDNS` container arguments.
10193
====

modules/nw-control-dns-records-public-hosted-zone-infoblox.adoc

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
[id="nw-control-dns-records-public-dns-zone-infoblox_{context}"]
77
= Creating DNS records on a public DNS zone on Infoblox
88

9-
You can create DNS records on a public DNS zone on Infoblox by using the Red Hat External DNS Operator.
9+
You can create DNS records on a public DNS zone on Infoblox by using the External DNS Operator.
1010

1111
.Prerequisites
1212

@@ -22,7 +22,7 @@ You can create DNS records on a public DNS zone on Infoblox by using the Red Hat
2222
$ oc -n external-dns-operator create secret generic infoblox-credentials --from-literal=EXTERNAL_DNS_INFOBLOX_WAPI_USERNAME=<infoblox_username> --from-literal=EXTERNAL_DNS_INFOBLOX_WAPI_PASSWORD=<infoblox_password>
2323
----
2424

25-
. Get the routes objects to check your cluster domain by running the following command:
25+
. Get a list of routes by running the following command:
2626
+
2727
[source,terminal]
2828
----
@@ -36,17 +36,18 @@ openshift-console console console-openshift-console.apps.te
3636
openshift-console downloads downloads-openshift-console.apps.test.example.com downloads http edge/Redirect None
3737
----
3838

39-
. Create an `ExternalDNS` resource YAML file, for example, sample-infoblox.yaml, as follows:
39+
. Create a YAML file, for example, `external-dns-sample-infoblox.yaml`, that defines the `ExternalDNS` object:
4040
+
41+
.Example `external-dns-sample-infoblox.yaml` file
4142
[source,yaml]
4243
----
4344
apiVersion: externaldns.olm.openshift.io/v1beta1
4445
kind: ExternalDNS
4546
metadata:
46-
name: sample-infoblox
47+
name: sample-infoblox <1>
4748
spec:
4849
provider:
49-
type: Infoblox
50+
type: Infoblox <2>
5051
infoblox:
5152
credentials:
5253
name: infoblox-credentials
@@ -58,16 +59,20 @@ spec:
5859
matchType: Exact
5960
name: test.example.com
6061
source:
61-
type: OpenShiftRoute
62+
type: OpenShiftRoute <3>
6263
openshiftRouteOptions:
63-
routerName: default
64+
routerName: default <4>
6465
----
66+
<1> Specifies the External DNS name.
67+
<2> Defines the provider type.
68+
<3> You can define options for the source of DNS records.
69+
<4> If the source type is `OpenShiftRoute`, you can pass the OpenShift Ingress Controller name. External DNS selects the canonical hostname of that router as the target while creating CNAME record.
6570

66-
. Create an `ExternalDNS` resource on Infoblox by running the following command:
71+
. Create the `ExternalDNS` resource on Infoblox by running the following command:
6772
+
6873
[source,terminal]
6974
----
70-
$ oc create -f sample-infoblox.yaml
75+
$ oc create -f external-dns-sample-infoblox.yaml
7176
----
7277

7378
. From the Infoblox UI, check the DNS records created for `console` routes:

modules/nw-control-dns-records-public-managed-zone-gcp.adoc

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,24 @@
55

66
:_mod-docs-content-type: PROCEDURE
77
[id="nw-control-dns-records-public-managed-zone-gcp_{context}"]
8-
= Creating DNS records on an public managed zone for GCP by using Red Hat External DNS Operator
8+
= Creating DNS records on a public managed zone for GCP
99

10-
You can create DNS records on a public managed zone for GCP by using Red Hat External DNS Operator.
10+
You can create DNS records on a public managed zone for GCP by using the External DNS Operator.
1111

12-
.Procedure
12+
.Prerequisites
1313

14-
. Check the user. The user must have access to the `kube-system` namespace. If you don’t have the credentials, as you can fetch the credentials from the `kube-system` namespace to use the cloud provider client:
15-
+
16-
[source,terminal]
17-
----
18-
$ oc whoami
19-
----
20-
+
21-
.Example output
22-
[source,terminal]
23-
----
24-
system:admin
25-
----
14+
* You must have administrator privileges.
15+
16+
.Procedure
2617

27-
. Copy the value of service_account.json in gcp-credentials secret in a file encoded-gcloud.json by running the following command:
18+
. Copy the `gcp-credentials` secret in the `encoded-gcloud.json` file by running the following command:
2819
+
2920
[source,terminal]
3021
----
3122
$ oc get secret gcp-credentials -n kube-system --template='{{$v := index .data "service_account.json"}}{{$v}}' | base64 -d - > decoded-gcloud.json
3223
----
3324

34-
. Export Google credentials:
25+
. Export your Google credentials by running the following command:
3526
+
3627
[source,terminal]
3728
----
@@ -45,14 +36,14 @@ $ export GOOGLE_CREDENTIALS=decoded-gcloud.json
4536
$ gcloud auth activate-service-account <client_email as per decoded-gcloud.json> --key-file=decoded-gcloud.json
4637
----
4738

48-
. Set your project:
39+
. Set your project by running the following command:
4940
+
5041
[source,terminal]
5142
----
5243
$ gcloud config set project <project_id as per decoded-gcloud.json>
5344
----
5445

55-
. Get the routes to check the domain:
46+
. Get a list of routes by running the following command:
5647
+
5748
[source,terminal]
5849
----
@@ -66,16 +57,22 @@ openshift-console console console-openshift-console.apps.te
6657
openshift-console downloads downloads-openshift-console.apps.test.gcp.example.com downloads http edge/Redirect None
6758
----
6859

69-
. Get the list of managed zones to find the zone which corresponds to the previously found route’s domain:
60+
. Get a list of managed zones by running the following command:
7061
+
7162
[source,terminal]
7263
----
7364
$ gcloud dns managed-zones list | grep test.gcp.example.com
65+
----
66+
+
67+
.Example output
68+
[source,terminal]
69+
----
7470
qe-cvs4g-private-zone test.gcp.example.com
7571
----
7672

77-
. Create `ExternalDNS` resource for `route` source:
73+
. Create a YAML file, for example, `external-dns-sample-gcp.yaml`, that defines the `ExternalDNS` object:
7874
+
75+
.Example `external-dns-sample-gcp.yaml` file
7976
[source,yaml]
8077
----
8178
apiVersion: externaldns.olm.openshift.io/v1beta1
@@ -93,18 +90,17 @@ spec:
9390
openshiftRouteOptions: <6>
9491
routerName: default <7>
9592
type: OpenShiftRoute <8>
96-
EOF
9793
----
98-
<1> Specifies the name of External DNS CR.
99-
<2> By default all hosted zones are selected as potential targets. You can include a hosted zone that you need.
100-
<3> The matching of the target zone's domain has to be exact (as opposed to regular expression match).
94+
<1> Specifies the External DNS name.
95+
<2> By default, all hosted zones are selected as potential targets. You can include your hosted zone.
96+
<3> The domain of the target must match the string defined by the `name` key.
10197
<4> Specify the exact domain of the zone you want to update. The hostname of the routes must be subdomains of the specified domain.
102-
<5> Defines Google Cloud DNS provider.
98+
<5> Defines the provider type.
10399
<6> You can define options for the source of DNS records.
104-
<7> If the source is `OpenShiftRoute` then you can pass the OpenShift Ingress Controller name. External DNS selects the canonical hostname of that router as the target while creating CNAME record.
105-
<8> Defines OpenShift `route` resource as the source for the DNS records which gets created in the previously specified DNS provider.
100+
<7> If the source type is `OpenShiftRoute`, you can pass the OpenShift Ingress Controller name. External DNS selects the canonical hostname of that router as the target while creating CNAME record.
101+
<8> Defines the `route` resource as the source for GCP DNS records.
106102

107-
. Check the records created for OCP routes using the following command:
103+
. Check the DNS records created for {product-title} routes by running the following command:
108104
+
109105
[source,terminal]
110106
----

modules/nw-external-dns-operator-configuration-parameters.adoc

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,22 @@ spec:
2424
credentials:
2525
name: aws-access-key <2>
2626
----
27-
<1> Defines available options such as AWS, GCP and Azure.
28-
<2> Defines a name of the `secret` which contains credentials for your cloud provider.
27+
<1> Defines available options such as AWS, GCP, Azure, and Infoblox.
28+
<2> Defines a secret name for your cloud provider.
2929

3030
|`zones`
31-
|Enables you to specify DNS zones by their domains. If you do not specify zones, `ExternalDNS` discovers all the zones present in your cloud provider account.
31+
|Enables you to specify DNS zones by their domains. If you do not specify zones, the `ExternalDNS` resource discovers all of the zones present in your cloud provider account.
3232

3333
[source,yaml]
3434
----
3535
zones:
3636
- "myzoneid" <1>
3737
----
3838

39-
<1> Specifies the IDs of DNS zones.
39+
<1> Specifies the name of DNS zones.
4040

4141
|`domains`
42-
|Enables you to specify AWS zones by their domains. If you do not specify domains, `ExternalDNS` discovers all the zones present in your cloud provider account.
42+
|Enables you to specify AWS zones by their domains. If you do not specify domains, the `ExternalDNS` resource discovers all of the zones present in your cloud provider account.
4343

4444
[source,yaml]
4545
----
@@ -51,11 +51,11 @@ domains:
5151
matchType: Pattern <4>
5252
pattern: ".*\\.otherzonedomain\\.com" <5>
5353
----
54-
<1> Instructs `ExternalDNS` to include the domain specified.
54+
<1> Ensures that the `ExternalDNS` resource includes the domain name.
5555
<2> Instructs `ExtrnalDNS` that the domain matching has to be exact as opposed to regular expression match.
56-
<3> Defines the exact domain name by which `ExternalDNS` filters.
57-
<4> Sets `regex-domain-filter` flag in `ExternalDNS`. You can limit possible domains by using a Regex filter.
58-
<5> Defines the regex pattern to be used by `ExternalDNS` to filter the domains of the target zones.
56+
<3> Defines the name of the domain.
57+
<4> Sets the `regex-domain-filter` flag in the `ExternalDNS` resource. You can limit possible domains by using a Regex filter.
58+
<5> Defines the regex pattern to be used by the `ExternalDNS` resource to filter the domains of the target zones.
5959

6060
|`source`
6161
|Enables you to specify the source for the DNS records, `Service` or `Route`.
@@ -76,16 +76,16 @@ source: <1>
7676
- "{{.Name}}.myzonedomain.com" <6>
7777
----
7878
<1> Defines the settings for the source of DNS records.
79-
<2> The `ExternalDNS` uses `Service` type as source for creating dns records.
80-
<3> Sets `service-type-filter` flag in `ExternalDNS`. The `serviceType` contains the following fields:
79+
<2> The `ExternalDNS` resource uses the `Service` type as the source for creating DNS records.
80+
<3> Sets the `service-type-filter` flag in the `ExternalDNS` resource. The `serviceType` contains the following fields:
8181
* `default`: `LoadBalancer`
8282
* `expected`: `ClusterIP`
8383
* `NodePort`
8484
* `LoadBalancer`
8585
* `ExternalName`
8686
<4> Ensures that the controller considers only those resources which matches with label filter.
8787
<5> The default value for `hostnameAnnotation` is `Ignore` which instructs `ExternalDNS` to generate DNS records using the templates specified in the field `fqdnTemplates`. When the value is `Allow` the DNS records get generated based on the value specified in the `external-dns.alpha.kubernetes.io/hostname` annotation.
88-
<6> External DNS Operator uses a string to generate DNS names from sources that don't define a hostname, or to add a hostname suffix when paired with the fake source.
88+
<6> The External DNS Operator uses a string to generate DNS names from sources that don't define a hostname, or to add a hostname suffix when paired with the fake source.
8989

9090
[source,yaml]
9191
----
@@ -98,7 +98,7 @@ source:
9898
external-dns.mydomain.org/publish: "yes"
9999
----
100100

101-
<1> ExternalDNS` uses type `route` as source for creating dns records.
102-
<2> If the source is `OpenShiftRoute`, then you can pass the Ingress Controller name. The `ExternalDNS` uses canonical name of Ingress Controller as the target for CNAME record.
101+
<1> Creates DNS records.
102+
<2> If the source type is `OpenShiftRoute`, then you can pass the Ingress Controller name. The `ExternalDNS` resource uses the canonical name of the Ingress Controller as the target for CNAME records.
103103

104104
|===

0 commit comments

Comments
 (0)