You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Starting with {product-title} 4.14, the Custom Domain Operator is deprecated. To manage Ingress in {product-title} 4.14, use the Ingress Operator. The functionality is unchanged for {product-title} 4.13 and earlier versions.
24
-
====
25
-
26
-
Configuring the xref:../applications/deployments/rosa-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.
27
-
28
-
Use this tutorial to deploy and configure the `External DNS` Operator with a custom domain in {product-title} (ROSA).
21
+
The External DNS Operator deploys and manages `ExternalDNS` to provide the name resolution for services and routes from the external DNS provider, like Amazon Route 53, to {product-title} (ROSA) clusters. In this tutorial, we will deploy and configure the External DNS Operator with a secondary ingress controller to manage DNS records in Amazon Route 53.
29
22
30
23
[IMPORTANT]
31
24
====
@@ -35,100 +28,115 @@ The `External DNS` Operator does not support STS using IAM Roles for Service Acc
35
28
[id="cloud-experts-external-dns-prerequisites"]
36
29
== Prerequisites
37
30
38
-
* A ROSA cluster
39
-
* A user account with `dedicated-admin` privileges
31
+
* A ROSA Classic cluster
32
+
+
33
+
[NOTE]
34
+
====
35
+
ROSA with HCP is not supported at this time.
36
+
====
37
+
+
38
+
* A user account with `cluster-admin` privileges
40
39
* The OpenShift CLI (`oc`)
41
40
* The Amazon Web Services (AWS) CLI (`aws`)
42
-
* A unique domain, such as `*.apps.<company_name>.io`
41
+
* A unique domain, such as `apps.example.com`
43
42
* An Amazon Route 53 public hosted zone for the above domain
The "Cluster" output from the previous command may be the name of your cluster, the internal ID of your cluster, or the cluster's domain prefix. If you prefer to use another identifier, you can manually set this value by running the following command:
ROSA manages secondary Ingress Controllers using the `Custom Domain` Operator. Use the following procedure to deploy a secondary Ingress Controller using a custom domain.
81
+
Use the following procedure to deploy a secondary ingress controller using a custom domain.
72
82
73
83
.Prerequisites
74
84
75
-
* A unique domain, such as `*.apps.<company_name>.io`
76
-
* A custom SAN or wildcard certificate, such as `CN=*.apps.<company_name>.io`
85
+
* A unique domain, such as `apps.example.com`
86
+
* A wildcard or SAN TLS certificate configured with the custom domain selected above (`CN=*.apps.example.com`)
77
87
78
88
.Procedure
79
89
80
-
. Create a new project:
81
-
+
82
-
[source,terminal]
83
-
----
84
-
$ oc new-project external-dns-operator
85
-
----
86
-
87
90
. 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:
. Create a new `CustomDomain` custom resource (CR):
97
+
. Create a new `IngressController` resource:
95
98
+
96
-
.Example `external-dns-custom-domain.yaml`
97
-
[source,yaml]
99
+
[source,terminal]
98
100
----
99
-
apiVersion: managed.openshift.io/v1alpha1
100
-
kind: CustomDomain
101
+
$ cat << EOF | oc apply -f -
102
+
apiVersion: operator.openshift.io/v1
103
+
kind: IngressController
101
104
metadata:
102
-
name: external-dns
105
+
name: external-dns-ingress
106
+
namespace: openshift-ingress-operator
103
107
spec:
104
-
domain: apps.<company_name>.io <1>
105
-
scope: External
106
-
loadBalancerType: NLB
107
-
certificate:
108
+
domain: ${DOMAIN}
109
+
defaultCertificate:
108
110
name: external-dns-tls
109
-
namespace: external-dns-operator
111
+
endpointPublishingStrategy:
112
+
loadBalancer:
113
+
dnsManagementPolicy: Unmanaged
114
+
providerParameters:
115
+
aws:
116
+
type: NLB
117
+
type: AWS
118
+
scope: External
119
+
type: LoadBalancerService
120
+
EOF
110
121
----
111
-
<1> The custom domain.
112
-
113
-
. Apply the CR:
114
122
+
115
-
[source,terminal]
116
-
----
117
-
$ oc apply -f external-dns-custom-domain.yaml
118
-
----
119
-
120
-
. Verify that your custom domain Ingress Controller has been deployed and has a `Ready` status:
123
+
[WARNING]
124
+
====
125
+
This `IngressController` example will create an internet accessible Network Load Balancer (NLB) in your AWS account. To provision an internal NLB instead, set the `.spec.endpointPublishingStrategy.loadBalancer.scope` parameter to `Internal` before creating the `IngressController` resource.
126
+
====
127
+
+
128
+
. Verify that your custom domain IngressController has successfully created an external load balancer:
121
129
+
122
130
[source,terminal]
123
131
----
124
-
$ oc get customdomains
132
+
$ oc -n openshift-ingress get service/router-external-dns-ingress
0 commit comments