Skip to content

Commit c151134

Browse files
authored
Merge pull request #67910 from AedinC/OSDOCS-8725
OSDOCS#8725:QE and Style Revisions of MOBB Content for Deploying the External DNS Operator on ROSA
2 parents 5ef67d1 + 84625f3 commit c151134

File tree

1 file changed

+32
-27
lines changed

1 file changed

+32
-27
lines changed

cloud_experts_tutorials/cloud-experts-external-dns.adoc

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,27 @@ toc::[]
2020

2121
Configuring the xref:../applications/deployments/osd-config-custom-domains-applications.adoc[Custom Domain Operator] requires a wildcard CNAME DNS record in your Amazon Route 53 hosted zone. If you do not want to use a wildcard record, you can use the `External DNS` Operator to create individual entries for routes.
2222

23-
This tutorial guides you through deploying and configuring the External DNS Operator with a custom domain in {product-title} (ROSA).
23+
Use this tutorial to deploy and configure the `External DNS` Operator with a custom domain in {product-title} (ROSA).
2424

2525
[IMPORTANT]
2626
====
27-
The External DNS Operator does not support IRSA/STS and uses long-lived IAM credentials. This tutorial will be updated once STS is supported.
27+
The `External DNS` Operator does not support STS using IAM Roles for Service Accounts (IRSA) and uses long-lived Identity Access Management (IAM) credentials instead. This tutorial will be updated when the Operator supports STS.
2828
====
2929

3030
[id="cloud-experts-external-dns-prerequisites"]
3131
== Prerequisites
3232

3333
* A ROSA cluster
34-
* You have access to the OpenShift CLI (`oc`)
35-
* You have access to the AWS CLI (`aws`)
36-
* A unique domain, such as *.apps.<company_name>.io
34+
* A user account with `dedicated-admin` privileges
35+
* The OpenShift CLI (`oc`)
36+
* The Amazon Web Services (AWS) CLI (`aws`)
37+
* A unique domain, such as `*.apps.<company_name>.io`
3738
* An Amazon Route 53 public hosted zone for the above domain
3839

39-
=== Environment setup
40+
[id="cloud-experts-external-dns-environment-setup"]
41+
== Setting up your environment
4042

41-
* Prepare the environment variables:
43+
. Configure the following environment variables, replacing `CLUSTER_NAME` with the name of your cluster:
4244
+
4345
[source,terminal]
4446
----
@@ -49,14 +51,19 @@ $ export REGION=$(oc get infrastructure cluster -o=jsonpath="{.status.platformSt
4951
$ export AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
5052
$ export SCRATCH="/tmp/${CLUSTER_NAME}/external-dns"
5153
$ mkdir -p ${SCRATCH}
52-
$ echo "Cluster: ${CLUSTER_NAME}, Region: ${REGION}, AWS Account ID: ${AWS_ACCOUNT_ID}"
5354
----
5455
<1> The custom domain.
56+
. Ensure all fields output correctly before moving to the next section:
57+
+
58+
[source,terminal]
59+
----
60+
$ echo "Cluster: ${CLUSTER_NAME}, Region: ${REGION}, AWS Account ID: ${AWS_ACCOUNT_ID}"
61+
----
5562

5663
[id="cloud-experts-external-dns-custom-domain-setup"]
57-
== Custom domain setup
64+
== Setting up your custom domain
5865

59-
ROSA manages secondary Ingress Controllers using the Custom Domain Operator. The following procedure outlines how to deploy a secondary Ingress Controller using a custom domain.
66+
ROSA manages secondary Ingress Controllers using the `Custom Domain` Operator. Use the following procedure to deploy a secondary Ingress Controller using a custom domain.
6067

6168
.Prerequisites
6269

@@ -65,16 +72,15 @@ ROSA manages secondary Ingress Controllers using the Custom Domain Operator. The
6572

6673
.Procedure
6774

68-
. Create a new project
75+
. Create a new project:
6976
+
7077
[source,terminal]
7178
----
7279
$ oc new-project external-dns-operator
7380
----
7481

75-
. Create a new TLS secret from a private key and a public certificate, where `fullchain.pem` is your full wildcard certificate chain (including any intermediaries) and `privkey.pem` is your wildcard certificate's private key.
82+
. Create a new TLS secret from a private key and a public certificate, where `fullchain.pem` is your full wildcard certificate chain (including any intermediaries) and `privkey.pem` is your wildcard certificate's private key:
7683
+
77-
.Example
7884
[source,terminal]
7985
----
8086
$ oc -n external-dns-operator create secret tls external-dns-tls --cert=fullchain.pem --key=privkey.pem
@@ -101,13 +107,12 @@ spec:
101107

102108
. Apply the CR:
103109
+
104-
.Example
105110
[source,terminal]
106111
----
107112
$ oc apply -f external-dns-custom-domain.yaml
108113
----
109114

110-
. Verify that your custom domain Ingress Controller has been deployed and is `Ready`:
115+
. Verify that your custom domain Ingress Controller has been deployed and has a `Ready` status:
111116
+
112117
[source,terminal]
113118
----
@@ -122,7 +127,7 @@ external-dns xxrywp.<company_name>.cluster-01.opln.s1.openshiftapps.com *
122127
----
123128

124129
[id="cloud-experts-external-dns-prepare-aws-account"]
125-
== Prepare AWS account
130+
== Preparing your AWS account
126131

127132
. Retrieve the Amazon Route 53 public hosted zone ID:
128133
+
@@ -132,7 +137,7 @@ $ export ZONE_ID=$(aws route53 list-hosted-zones-by-name --output json \
132137
--dns-name "${DOMAIN}." --query 'HostedZones[0]'.Id --out text | sed 's/\/hostedzone\///')
133138
----
134139
+
135-
. Create an AWS IAM Policy document that allows the External DNS Operator to update _only_ the custom domain public hosted zone:
140+
. Create an AWS IAM Policy document that allows the `External DNS` Operator to update _only_ the custom domain public hosted zone:
136141
+
137142
[source,terminal]
138143
----
@@ -208,9 +213,9 @@ EOF
208213
----
209214

210215
[id="cloud-experts-external-dns-install-external-dns-operator"]
211-
== Install the External DNS Operator
216+
== Installing the External DNS Operator
212217

213-
. Install the External DNS Operator from OperatorHub:
218+
. Install the `External DNS` Operator from OperatorHub:
214219
+
215220
[source,terminal]
216221
----
@@ -238,7 +243,7 @@ spec:
238243
EOF
239244
----
240245
+
241-
. Wait until the External DNS Operator is running:
246+
. Wait until the `External DNS` Operator is running:
242247
+
243248
[source,terminal]
244249
----
@@ -252,7 +257,7 @@ $ oc rollout status deploy external-dns-operator --timeout=300s
252257
$ oc -n external-dns-operator create secret generic external-dns \
253258
--from-file "${SCRATCH}/credentials"
254259
----
255-
. Deploy the ExternalDNS controller:
260+
. Deploy the `ExternalDNS` controller:
256261
+
257262
[source,terminal]
258263
----
@@ -287,9 +292,11 @@ $ oc rollout status deploy external-dns-${DOMAIN} --timeout=300s
287292
----
288293

289294
[id="cloud-experts-external-dns-deploy-a-sample-application"]
290-
== Deploy a sample application
295+
== Deploying a sample application
291296

292-
. Create a new project for our sample application:
297+
Now that the `ExternalDNS` controller is running, you can deploy a sample application to confirm that the custom domain is configured and trusted when you expose a new route.
298+
299+
. Create a new project for your sample application:
293300
+
294301
[source,terminal]
295302
----
@@ -305,8 +312,6 @@ $ oc new-app -n hello-world --image=docker.io/openshift/hello-openshift
305312
+
306313
. Create a route for the application specifying your custom domain name:
307314
+
308-
.Example
309-
+
310315
[source,terminal]
311316
----
312317
$ oc -n hello-world create route edge --service=hello-openshift hello-openshift-tls \
@@ -324,14 +329,14 @@ It can take a few minutes for the record to appear in Amazon Route 53.
324329
$ aws route53 list-resource-record-sets --hosted-zone-id ${ZONE_ID} \
325330
--query "ResourceRecordSets[?Type == 'CNAME']" | grep hello-openshift
326331
----
327-
. You can also view the TXT records that indicate they were created by ExternalDNS:
332+
. Optional: You can also view the TXT records that indicate they were created by ExternalDNS:
328333
+
329334
[source,terminal]
330335
----
331336
$ aws route53 list-resource-record-sets --hosted-zone-id ${ZONE_ID} \
332337
--query "ResourceRecordSets[?Type == 'TXT']" | grep ${DOMAIN}
333338
----
334-
. Navigate to your custom console domain in the browser where you see the OpenShift login.
339+
. Navigate to your custom console domain in the browser where you see the OpenShift login:
335340
+
336341
[source,terminal]
337342
----

0 commit comments

Comments
 (0)