Skip to content

Commit 103d1f5

Browse files
committed
RHIDP-1923 - GKE: Document how RHDH can be installed in GKE
1 parent 25178c0 commit 103d1f5

File tree

3 files changed

+77
-36
lines changed

3 files changed

+77
-36
lines changed

modules/installation/proc-deploy-rhdh-instance-gke.adoc

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,21 @@
88
.Prerequisites
99

1010
* A cluster administrator has installed the {product} Operator.
11+
* You have subscribed to `registry.redhat.io`. For more information, see https://access.redhat.com/RegistryAuthentication[{company-name} Container Registry Authentication].
12+
* You have installed `kubectl`. For more information, see https://kubernetes.io/docs/tasks/tools/#kubectl[Install kubetl].
13+
14+
* You have configured a domain name for your {product-short} instance.
15+
* You have reserved a static external Premium IPv4 Global IP address that is not attached to any VM.
16+
* You have configured the DNS records for your domain name to point to the IP address that have reseved. For more information see https://cloud.google.com/vpc/docs/reserve-static-external-ip-address#reserve_new_static[Reserve a new static external IP address]
17+
+
18+
[NOTE]
19+
You need to create an `A` record with the value equal to the IP address. This can take up to one hour to propagate.
20+
1121
//* You have an {eks-short} cluster with {aws-short} Application Load Balancer (ALB) add-on installed. For more information, see https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html[Application load balancing on {eks-brand-name}] and https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html[Installing the AWS Load Balancer Controller add-on].
1222
//* You have configured a domain name for your {product-short} instance. The domain name can be a hosted zone entry on Route 53 or managed outside of AWS. For more information, see https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring.html[Configuring Amazon Route 53 as your DNS service] documentation.
1323
//* You have an entry in the {aws-short} Certificate Manager (ACM) for your preferred domain name. Make sure to keep a record of your Certificate ARN.
14-
* You have subscribed to `registry.redhat.io`. For more information, see https://access.redhat.com/RegistryAuthentication[{company-name} Container Registry Authentication].
1524
//* You have set the context to the {eks-short} cluster in your current `kubeconfig`. For more information, see https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html[Creating or updating a kubeconfig file for an Amazon {eks-short} cluster].
16-
* You have installed `kubectl`. For more information, see https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html[Installing or updating kubectl].
25+
1726

1827
.Procedure
1928

@@ -90,7 +99,7 @@ kubectl patch serviceaccount default \
9099
apiVersion: rhdh.redhat.com/v1alpha1
91100
kind: Backstage
92101
metadata:
93-
# TODO: this the name of your {product-short} instance
102+
# This is the name of your {product-short} instance
94103
name: my-rhdh
95104
spec:
96105
application:
@@ -107,7 +116,7 @@ spec:
107116
----
108117
--
109118

110-
. Set up a Google-managed certificate by creating a `ManagedCertificate` object that you will later attach to the Ingress.
119+
. Set up a Google-managed certificate by creating a `ManagedCertificate` object which you will attach to the Ingress.
111120
+
112121
--
113122
[source,yaml,subs="attributes+"]
@@ -121,9 +130,9 @@ spec:
121130
- <rhdh_domain_name>
122131
----
123132
--
124-
For more information about setting up a Google-managed certificate, see https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs?hl=en#setting_up_a_google-managed_certificate
133+
For more information about setting up a Google-managed certificate, see https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs?hl=en#setting_up_a_google-managed_certificate[Setting up a Google-managed certificate].
125134

126-
. Create a `FrontendConfig` object to set a policy for redirecting to HTTPS. You will later attach this policy to the Ingress.
135+
. Create a `FrontendConfig` object to set a policy for redirecting to HTTPS. You will attach this policy to the Ingress.
127136
+
128137
--
129138
[source,yaml,subs="attributes+"]
@@ -138,7 +147,7 @@ spec:
138147
enabled: true
139148
----
140149
--
141-
For more information about setting a policy to redirect to HTTPS, see https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration?hl=en#https_redirect
150+
For more information about setting a policy to redirect to HTTPS, see https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration?hl=en#https_redirect[HTTP to HTTPS redirects].
142151

143152
. Create an Ingress resource using the following template, customizing the names as needed:
144153
+
@@ -182,10 +191,14 @@ spec:
182191
[IMPORTANT]
183192
Use the HTTPS protocol, not HTTP.
184193

194+
.Verification
195+
196+
Wait until the DNS name is responsive, indicating that your {product-short} instance is ready for use.
197+
185198
.Additional information
186-
For more information on setting up GKE using Ingress with TLS, see https://github.com/GoogleCloudPlatform/gke-networking-recipes/tree/main/ingress/single-cluster/ingress-https
199+
For more information on setting up {gke-short} using Ingress with TLS, see https://github.com/GoogleCloudPlatform/gke-networking-recipes/tree/main/ingress/single-cluster/ingress-https
187200

188-
For more information on setting up GKE with LoadBalancer instead of Ingress, see https://github.com/sumiranchugh/rhdh-gke-poc/tree/main
201+
For more information on setting up {gke-short} with LoadBalancer instead of Ingress, see https://github.com/sumiranchugh/rhdh-gke-poc/tree/main
189202

190203

191204

modules/installation/proc-rhdh-deploy-gke-helm.adoc

Lines changed: 32 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,27 @@
44
[id='proc-rhdh-deploy-gke-helm_{context}']
55
= Installing {product-short} on {gke-short} with the Helm chart
66

7-
When you install the {product-short} Helm chart in {gke-name} ({gke-short}), it orchestrates the deployment of a {product-short} instance, which provides a robust developer platform within the {gke-short} ecosystem.
7+
When you install the {product-short} Helm chart in {gke-brand-name} ({gke-short}), it orchestrates the deployment of a {product-short} instance, which provides a robust developer platform within the {gke-short} ecosystem.
88

99
.Prerequisites
10+
* You have subscribed to `registry.redhat.io`. For more information, see https://access.redhat.com/RegistryAuthentication[{company-name} Container Registry Authentication].
11+
* You have installed `kubectl`. For more information, see https://kubernetes.io/docs/tasks/tools/#kubectl[Install kubetl].
12+
* You have installed the Google Cloud CLI. For more information, see https://cloud.google.com/sdk/docs/install[Install the gcloud CLI].
13+
* You have logged in to your Google account and created a https://https://cloud.google.com/kubernetes-engine/docs/how-to/creating-an-autopilot-cluster[GKE Autopilot] or https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-zonal-cluster[GKE Standard] cluster.
14+
* You have installed Helm 3 or the latest version. For more information, see https://docs.aws.amazon.com/eks/latest/userguide/helm.html[Using Helm with Amazon {eks-short}].
15+
16+
* You have configured a domain name for your {product-short} instance.
17+
* You have reserved a static external Premium IPv4 Global IP address that is not attached to any VM.
18+
* You have configured the DNS records for your domain name to point to the IP address that have reseved. For more information see https://cloud.google.com/vpc/docs/reserve-static-external-ip-address#reserve_new_static[Reserve a new static external IP address]
19+
+
20+
[NOTE]
21+
You need to create an `A` record with the value equal to the IP address. This can take up to one hour to propagate.
22+
* You have installed Helm 3 or the latest. For more information, see https://helm.sh/docs/intro/install[Installing Helm].
1023

1124
//* You have an {eks-short} cluster with AWS Application Load Balancer (ALB) add-on installed. For more information, see https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html[Application load balancing on Amazon {product-short}] and https://docs.aws.amazon.com/eks/latest/userguide/aws-load-balancer-controller.html[Installing the AWS Load Balancer Controller add-on].
1225
//* You have configured a domain name for your {product-short} instance. The domain name can be a hosted zone entry on Route 53 or managed outside of AWS. For more information, see https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring.html[Configuring Amazon Route 53 as your DNS service] documentation.
1326
//* You have an entry in the AWS Certificate Manager (ACM) for your preferred domain name. Make sure to keep a record of your Certificate ARN.
14-
* You have subscribed to `registry.redhat.io`. For more information, see https://access.redhat.com/RegistryAuthentication[{company-name} Container Registry Authentication].
1527
//* You have set the context to the {eks-short} cluster in your current `kubeconfig`. For more information, see https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html[Creating or updating a kubeconfig file for an Amazon {eks-short} cluster].
16-
* You have installed `kubectl`. For more information, see https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html[Installing or updating kubectl].
1728
//* You have installed Helm 3 or the latest. For more information, see https://docs.aws.amazon.com/eks/latest/userguide/helm.html[Using Helm with Amazon {eks-short}].
1829

1930
.Procedure
@@ -38,15 +49,15 @@ kubectl -n <your-namespace> create secret docker-registry rhdh-pull-secret \ <1>
3849
--docker-password=<password> \ <3>
3950
--docker-email=<email> <4>
4051
----
41-
<1> Enter your GKE namespace in the command.
52+
<1> Enter your {gke-short} namespace in the command.
4253
<2> Enter your username in the command.
4354
<3> Enter your password in the command.
4455
<4> Enter your email address in the command.
4556

4657
The created pull secret is used to pull the {product-short} images from the {company-name} Ecosystem.
4758
--
4859

49-
. Set up a Google-managed certificate by creating a `ManagedCertificate` object that you will later attach to the Ingress.
60+
. Set up a Google-managed certificate by creating a `ManagedCertificate` object that you will attach to the Ingress.
5061
+
5162
--
5263
[source,yaml,subs="attributes+"]
@@ -60,9 +71,9 @@ spec:
6071
- <rhdh_domain_name>
6172
----
6273
--
63-
For more information about setting up a Google-managed certificate, see https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs?hl=en#setting_up_a_google-managed_certificate
74+
For more information about setting up a Google-managed certificate, see https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs?hl=en#setting_up_a_google-managed_certificate[Setting up a Google-managed certificate].
6475

65-
. Create a `FrontendConfig` object to set a policy for redirecting to HTTPS. You will later attach this policy to the Ingress.
76+
. Create a `FrontendConfig` object to set a policy for redirecting to HTTPS. You will attach this policy to the Ingress.
6677
+
6778
--
6879
[source,yaml,subs="attributes+"]
@@ -77,7 +88,7 @@ spec:
7788
enabled: true
7889
----
7990
--
80-
For more information about setting a policy to redirect to HTTPS, see https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration?hl=en#https_redirect
91+
For more information about setting a policy to redirect to HTTPS, see https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration?hl=en#https_redirect[HTTP to HTTPS redirects].
8192

8293
. Create a file named `values.yaml` using the following template:
8394
+
@@ -126,34 +137,41 @@ helm -n <your_namespace> install -f values.yaml <your_deploy_name> \
126137
+
127138
For the latest Helm Chart version, see https://github.com/openshift-helm-charts/charts/tree/main/charts/redhat/redhat/redhat-developer-hub
128139
+
129-
It takes some time to deploy it, check if the deployment completed use this command
140+
. Confirm that the deployment is complete.
130141
+
131142
[source,terminal,subs="attributes+"]
132143
----
133144
kubectl get deploy <you_deploy_name>-developer-hub -n <your_namespace>
134145
----
135146

136-
. Verify that the service and ingress were created
147+
. Verify that the service and ingress were created.
137148
+
138149
[source,terminal,subs="attributes+"]
139150
----
140151
kubectl get service -n <your_namespace>
141152
kubectl get ingress -n <your_namespace>
142153
----
143-
144-
. Wait for the `ManagedCertificate` to be provisioned. This can take a couple of hours.
154+
+
155+
[NOTE]
156+
Wait for the `ManagedCertificate` to be provisioned. This can take a couple of hours.
145157

146158
. Access RHDH with `https://<rhdh_domain_name>`
147159
+
148160
[IMPORTANT]
149161
Use the HTTPS protocol, not HTTP.
150162

151-
. To upgrade or delete your deployment use (mind the –version)
163+
. To upgrade your deployment, use the following command:
152164
+
153165
[source,terminal,subs="attributes+"]
154166
----
155-
helm -n <your_namespace> upgrade -f values.yaml <your_deploy_name> openshift-helm-charts/redhat-developer-hub --version 1.3.0
167+
helm -n <your_namespace> upgrade -f values.yaml <your_deploy_name> openshift-helm-charts/redhat-developer-hub --version <UPGRADE_CHART_VERSION>
156168
169+
----
170+
171+
. To delete your deployment, use the following command:
172+
+
173+
[source,terminal,subs="attributes+"]
174+
----
157175
helm -n <your_namespace> delete <your_deploy_name>
158176
----
159177

modules/installation/proc-rhdh-deploy-gke-operator.adoc

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,32 @@ For information about the OLM, see link:https://olm.operatorframework.io/docs/[O
1919

2020
// TODO: Compare with GKE OLM install prerequisites
2121

22-
//* You have set the context to the {eks-short} cluster in your current `kubeconfig`. For more information, see https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html[Creating or updating a kubeconfig file for an Amazon {eks-short} cluster].
23-
24-
* You have installed the Google `gcloud` CLI and you have logged in to your Google account. For more information, see https://cloud.google.com/sdk/docs/install[Installing or updating kubectl].
25-
* You have installed `kubectl`. For more information, see https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html[Install the gcloud CLI].
2622
* You have subscribed to `registry.redhat.io`. For more information, see https://access.redhat.com/RegistryAuthentication[{company-name} Container Registry Authentication].
23+
2724
* You have installed the Operator Lifecycle Manager (OLM). For more information about installation and troubleshooting, see https://operatorhub.io/how-to-install-an-operator#How-do-I-get-Operator-Lifecycle-Manager?[How do I get Operator Lifecycle Manager?]
25+
26+
* You have installed `kubectl`. For more information, see https://kubernetes.io/docs/tasks/tools/#kubectl[Install kubetl].
27+
28+
* You have installed the Google Cloud CLI. For more information, see https://cloud.google.com/sdk/docs/install[Install the gcloud CLI].
29+
30+
* You have logged in to your Google account and created a https://https://cloud.google.com/kubernetes-engine/docs/how-to/creating-an-autopilot-cluster[GKE Autopilot] or https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-zonal-cluster[GKE Standard] cluster.
31+
32+
////
33+
[TBC] Are these prerequisites required for the operator install procedure or just the deployment procedure?
34+
2835
* You have configured a domain name for your {product-short} instance.
2936
30-
* You have created a https://https://cloud.google.com/kubernetes-engine/docs/how-to/creating-an-autopilot-cluster[GKE Autopilot] or https://cloud.google.com/kubernetes-engine/docs/how-to/creating-a-zonal-cluster[GKE Standard] cluster.
37+
* You have reserved a static external Premium IPv4 Global IP address that is not attached to any VM.
38+
39+
* You have configured the DNS records for your domain name to point to the IP address that have reseved. For more information see https://cloud.google.com/vpc/docs/reserve-static-external-ip-address#reserve_new_static[Reserve a new static external IP address]
40+
+
41+
[NOTE]
42+
You need to create an `A` record with the value equal to the IP address. This can take up to one hour to propagate.
43+
////
3144

32-
(TBC)
33-
Reserve a static external IP address. Chose a Premium IPv4 Global IP address for this example. Do not attach it to any VM.
34-
https://cloud.google.com/vpc/docs/reserve-static-external-ip-address#reserve_new_static
35-
Later, the name is referred to as <ADDRESS_NAME>
36-
Configure DNS records for your domain name to point to the IP address you just reserved – create an A record with the value equal to the IP address (this can take up to an hour to propagate).
37-
(END TBC)
45+
////
46+
* You have set the context to the {eks-short} cluster in your current `kubeconfig`. For more information, see https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html[Creating or updating a kubeconfig file for an Amazon {eks-short} cluster].
47+
////
3848

3949

4050
.Procedure
@@ -78,7 +88,7 @@ kubectl -n rhdh-operator create secret docker-registry rhdh-pull-secret \
7888

7989
The created pull secret is used to pull the {product-short} images from the {company-name} Ecosystem.
8090
--
81-
. TBC
91+
. Patch your {product-very-short} deployment with the previously created `rhdh-pull-secret` as follows:
8292
+
8393
--
8494
[source,terminal]
@@ -168,7 +178,7 @@ kubectl -n rhdh-operator patch deployment \
168178
====
169179
--
170180

171-
. Update the default configuration of the operator to ensure that {product-short} resources can start correctly in {eks-short} using the following steps:
181+
. Update the default configuration of the operator to ensure that {product-short} resources can start correctly in {gke-short} using the following steps:
172182
.. Edit the `backstage-default-config` ConfigMap in the `rhdh-operator` namespace using the following command:
173183
+
174184
--

0 commit comments

Comments
 (0)