Skip to content

Commit 5c825cf

Browse files
authored
Merge branch 'main' into RHIDP-4566-main
2 parents 1a08c24 + ff89067 commit 5c825cf

24 files changed

+664
-115
lines changed

artifacts/attributes.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,15 @@
8888
:authorization-book-url: https://docs.redhat.com/documentation/en-us/red_hat_developer_hub/{product-version}/html-single/authorization/index
8989
:authorization-book-title: Authorization
9090

91+
:installing-on-osd-on-gcp-book-url: https://docs.redhat.com/en/documentation/red_hat_developer_hub/{product-version}/html-single/installing_red_hat_developer_hub_on_openshift_dedicated_on_google_cloud_platform/index
92+
:installing-on-osd-on-gcp-book-title: Installing {product} on {gcp-brand-name} on {gcp-brand-name}
93+
9194
:installing-on-ocp-book-url: https://docs.redhat.com/en/documentation/red_hat_developer_hub/{product-version}/html-single/installing_red_hat_developer_hub_on_openshift_container_platform/index
9295
:installing-on-ocp-book-title: Installing {product} on {ocp-short}
9396

97+
:installing-on-gke-book-url: https://docs.redhat.com/en/documentation/red_hat_developer_hub/{product-version}/html-single/installing_red_hat_developer_hub_on_google_kubernetes_engine/index
98+
:installing-on-gke-book-title: Installing {product} on {gke-brand-name}
99+
94100
:installing-on-eks-book-url: https://docs.redhat.com/en/documentation/red_hat_developer_hub/{product-version}/html-single/installing_red_hat_developer_hub_on_amazon_elastic_kubernetes_service/index
95101
:installing-on-eks-book-title: Installing {product} on {eks-brand-name}
96102

assemblies/assembly-about-rhdh.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,5 @@ Use {product} to simplify decision-making through a selection of internally appr
2020

2121

2222
include::modules/about/con-benefits-of-rhdh.adoc[leveloffset=+1]
23+
include::modules/about/ref-supported-platforms.adoc[leveloffset=+1]
24+
include::modules/about/ref-rhdh-sizing.adoc[leveloffset=+1]

assemblies/assembly-audit-log.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,4 @@ include::modules/observe/ref-audit-log-scaffolder-events.adoc[leveloffset=+2]
4545

4646
include::modules/observe/ref-audit-log-catalog-events.adoc[leveloffset=+2]
4747

48-
include::modules/observe/ref-audit-log-file-rotation-overview.adoc[]
48+
include::modules/observe/ref-audit-log-file-rotation-overview.adoc[]

assemblies/assembly-rhdh-integration-aks.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ This integration requires the deployment of {product-short} on {aks-short} using
1313
* The Helm chart
1414
* The {product} Operator
1515
16-
//include::modules/admin/proc-rhdh-monitoring-logging-aks.adoc[leveloffset=+1] // moving observe category related content to new titles: RHIDP-4814
16+
//include::modules/admin/proc-rhdh-monitoring-logging-aks.adoc[leveloffset=+1] // moving observe category related content to new titles: RHIDP-4814

modules/getting-started/ref-rhdh-sizing.adoc renamed to modules/about/ref-rhdh-sizing.adoc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
[id='ref-rhdh-sizing_{context}']
1+
:_mod-docs-content-type: REFERENCE
2+
[id="rhdh-sizing_{context}"]
23
= Sizing requirements for {product}
34

4-
Scalability of {product} requires significant resource allocation. The following table lists the sizing requirements for installing and running {product}, including {product-short} application, database components, and Operator.
5+
Scaling the {product} requires significant resource allocation. The following table lists the sizing requirements for installing and running {product}, including {product-short} application, database components, and Operator.
56

67
.Recommended sizing for running {product}
78
[cols="25%,25%,25%,25%", frame="all", options="header"]
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
:_newdoc-version: 2.18.3
2+
:_template-generated: 2024-11-08
3+
4+
:_mod-docs-content-type: REFERENCE
5+
6+
[id="supported-platforms_{context}"]
7+
= Supported platforms
8+
9+
{product} runs on {ocp-short} {ocp-version-min}-{ocp-version} on supported architectures and providers, such as:
10+
11+
* link:{installing-on-ocp-book-url}[{ocp-brand-name} {ocp-version-min}-{ocp-version}]
12+
* link:{installing-on-eks-book-url}[{eks-brand-name}]
13+
* link:{installing-on-aks-book-url}[{aks-brand-name}]
14+
* link:{installing-on-osd-on-gcp-book-url}[{gcp-brand-name}]
15+
* link:{installing-on-gke-book-url}[{gke-brand-name}]
Lines changed: 21 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,8 @@
11
[id='proc-customize-rhdh-tech-radar-page_{context}']
22
= Customizing the Tech Radar page in {product}
33

4-
In {product}, the Tech Radar page is provided by the `tech-radar` dynamic plugin, which is disabled by default. For information about enabling dynamic plugins in {product} see link:{LinkPluginsGuide}[Configuring plugins in {product}].
5-
6-
In {product}, you can configure Learning Paths by passing the data into the `app-config.yaml` file as a proxy. The base Tech Radar URL must include the `/developer-hub/tech-radar` proxy.
7-
8-
[NOTE]
9-
====
10-
Due to the use of overlapping `pathRewrites` for both the `tech-radar` and `homepage` quick access proxies, you must create the `tech-radar` configuration (`^api/proxy/developer-hub/tech-radar`) before you create the `homepage` configuration (`^/api/proxy/developer-hub`).
11-
12-
For more information about customizing the Home page in {product}, see xref:proc-customize-rhdh-homepage_rhdh-getting-started[Customizing the Home page in {product}].
13-
====
4+
In {product}, the Tech Radar page is provided by the `tech-radar` and `tech-radar-backend` dynamic plugins, which are disabled by default.
5+
For information about enabling dynamic plugins in {product} see link:{LinkPluginsGuide}[Configuring plugins in {product}].
146

157
You can provide data to the Tech Radar page from the following sources:
168

@@ -21,33 +13,22 @@ You can provide data to the Tech Radar page from the following sources:
2113

2214
.Prerequisites
2315

24-
You have installed {product} by using either the Operator or Helm chart.
25-
For more information, see xref:{installing-on-ocp-book-url}#assembly-install-rhdh-ocp[{installing-on-ocp-book-title}].
16+
* You have installed {product} by using either the Operator or Helm chart. For more information, see link:{installing-on-ocp-book-url}[{installing-on-ocp-book-title}].
17+
* You have specified the data sources for the Tech Radar plugin in the `integrations` section of the `app-config.yaml` file. For example, to configure GitHub as an integration, see link:{authentication-book-url}#authenticating-with-github[Authenticating with GitHub].
2618

2719
.Procedure
2820

2921
To access the data from the JSON files, complete the following step:
3022

31-
* Add the following code to the `app-config.yaml` file:
23+
. Enable the `./dynamic-plugins/dist/backstage-community-plugin-tech-radar` and `/dynamic-plugins/dist/backstage-community-plugin-tech-radar-backend-dynamic` plugins.
24+
. Add the following code to the `app-config.yaml` file:
3225
+
3326
[source,yaml]
3427
----
35-
proxy:
36-
endpoints:
37-
# Other Proxies
38-
# customize developer hub instance
39-
'/developer-hub':
40-
target: <DOMAIN_URL> # i.e https://raw.githubusercontent.com/
41-
pathRewrite:
42-
'^/api/proxy/developer-hub/tech-radar': <path to json file> # i.e /janus-idp/backstage-showcase/main/packages/app/public/tech-radar/data-default.json
43-
'^/api/proxy/developer-hub': <path to json file> # i.e /janus-idp/backstage-showcase/main/packages/app/public/homepage/data.json
44-
changeOrigin: true
45-
secure: true
46-
47-
# Change to "false" in case of using self hosted cluster with a self-signed certificate
48-
headers:
49-
<HEADER_KEY>: <HEADER_VALUE> # optional and can be passed as needed i.e Authorization can be passed for private GitHub repo and PRIVATE-TOKEN can be passed for private GitLab repo
28+
techRadar:
29+
url: ${TECH_RADAR_DATA_URL} <1>
5030
----
31+
<1> `TECH_RADAR_DATA_URL` is the URL from which the JSON data is loaded.
5132

5233
== Using a dedicated service to provide data to the Tech Radar page
5334

@@ -66,24 +47,20 @@ For more information, see xref:{installing-on-ocp-book-url}#assembly-install-rhd
6647

6748
To use a separate service to provide the Tech Radar data, complete the following steps:
6849

69-
. Add the following code to the `app-config-rhdh.yaml` file:
50+
. Add the dedicated service as an allowed host by adding the following code to the `app-config.yaml` file:
7051
+
7152
[source,yaml]
7253
----
73-
proxy:
74-
endpoints:
75-
# Other Proxies
76-
'/developer-hub/tech-radar':
77-
target: ${TECHRADAR_DATA_URL}
78-
changeOrigin: true
79-
# Change to "false" in case of using self hosted cluster with a self-signed certificate
80-
secure: true
54+
backend:
55+
reading:
56+
allow:
57+
- host: 'hostname'
8158
----
82-
where the `TECHRADAR_DATA_URL` is defined as `pass:c[http://<SERVICE_NAME>/tech-radar]`, for example, `pass:c[http://rhdh-customization-provider/tech-radar]`.
83-
+
84-
[NOTE]
85-
====
86-
You can define the `TECHRADAR_DATA_URL` by adding it to `rhdh-secrets` or by directly replacing it with its value in your custom ConfigMap.
87-
====
59+
. Add the following to the `app-config.yaml` file:
8860
+
89-
. Delete the {product-short} pod to ensure that the new configurations are loaded correctly.
61+
[source,yaml]
62+
----
63+
techRadar:
64+
url: ${TECH_RADAR_DATA_URL} <1>
65+
----
66+
<1> `TECH_RADAR_DATA_URL` is the URL from which the JSON data is loaded.

modules/installation/con-rhdh-overview.adoc

Lines changed: 0 additions & 12 deletions
This file was deleted.

modules/installation/proc-configuring-an-rhdh-instance-with-tls-in-kubernetes.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[id="proc-configuring-an-rhdh-instance-with-tls-in-kubernetes_{context}"]
22
= Configuring an {product-very-short} instance with a TLS connection in Kubernetes
33

4-
You can configure an {product-very-short} instance with a Transport Layer Security (TLS) connection in a Kubernetes cluster, such as an Azure Red Hat OpenShift (ARO) cluster, any cluster from a supported cloud provider, or your own cluster with proper configuration. However, You must use a public Certificate Authority (CA)-signed certificate to configure your Kubernetes cluster.
4+
You can configure a {product-very-short} instance with a Transport Layer Security (TLS) connection in a Kubernetes cluster, such as an Azure Red Hat OpenShift (ARO) cluster, any cluster from a supported cloud provider, or your own cluster with proper configuration. Transport Layer Security (TLS) ensures a secure connection for the {product-very-short} instance with other entities, such as third-party applications, or external databases. However, you must use a public Certificate Authority (CA)-signed certificate to configure your Kubernetes cluster.
55

66
.Prerequisites
77

Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
[id="proc-deploy-rhdh-instance-gke.adoc_{context}"]
2+
= Deploying the {product-short} instance on {gke-short} with the Operator
3+
You can deploy your {product-short} instance in {gke-short} using the Operator.
4+
5+
.Prerequisites
6+
* A cluster administrator has installed the {product} Operator.
7+
* You have subscribed to `registry.redhat.io`. For more information, see https://access.redhat.com/RegistryAuthentication[{company-name} Container Registry Authentication].
8+
* You have installed `kubectl`. For more information, see https://kubernetes.io/docs/tasks/tools/#kubectl[Install kubetl].
9+
10+
* You have configured a domain name for your {product-short} instance.
11+
* You have reserved a static external Premium IPv4 Global IP address that is not attached to any virtual machine (VM). 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]
12+
* You have configured the DNS records for your domain name to point to the IP address that has been reserved.
13+
+
14+
[NOTE]
15+
====
16+
You need to create an `A` record with the value equal to the IP address. This process can take up to one hour to propagate.
17+
====
18+
19+
.Procedure
20+
. Create a ConfigMap named `app-config-rhdh` containing the {product-short} configuration using the following template:
21+
+
22+
--
23+
.`app-config-rhdh.yaml` fragment
24+
[source,yaml,subs="attributes+"]
25+
----
26+
apiVersion: v1
27+
kind: ConfigMap
28+
metadata:
29+
name: app-config-rhdh
30+
data:
31+
"app-config-rhdh.yaml": |
32+
app:
33+
title: Red Hat Developer Hub
34+
baseUrl: https://<rhdh_domain_name>
35+
backend:
36+
auth:
37+
externalAccess:
38+
- type: legacy
39+
options:
40+
subject: legacy-default-config
41+
secret: "${BACKEND_SECRET}"
42+
baseUrl: https://<rhdh_domain_name>
43+
cors:
44+
origin: https://<rhdh_domain_name>
45+
----
46+
--
47+
48+
. Create a Secret named `secrets-rhdh` and add a key named `BACKEND_SECRET` with a `Base64-encoded` string as value:
49+
+
50+
--
51+
.`secrets-rhdh` fragment
52+
[source,yaml]
53+
----
54+
apiVersion: v1
55+
kind: Secret
56+
metadata:
57+
name: secrets-rhdh
58+
stringData:
59+
# TODO: See https://backstage.io/docs/auth/service-to-service-auth/#setup
60+
BACKEND_SECRET: "xxx"
61+
----
62+
63+
[IMPORTANT]
64+
====
65+
Ensure that you use a unique value of `BACKEND_SECRET` for each {product-short} instance.
66+
====
67+
68+
You can use the following command to generate a key:
69+
70+
[source,terminal]
71+
----
72+
node-p'require("crypto").randomBytes(24).toString("base64")'
73+
----
74+
--
75+
76+
. To enable pulling the PostgreSQL image from the {company-name} Ecosystem Catalog, add the image pull secret in the default service account within the namespace where the {product-short} instance is being deployed:
77+
+
78+
--
79+
[source,terminal]
80+
----
81+
kubectl patch serviceaccount default \
82+
-p '{"imagePullSecrets": [{"name": "rhdh-pull-secret"}]}' \
83+
-n <your_namespace>
84+
----
85+
--
86+
87+
. Create a Custom Resource file using the following template:
88+
+
89+
--
90+
.Custom Resource fragment
91+
[source,yaml,subs="attributes+"]
92+
----
93+
apiVersion: rhdh.redhat.com/v1alpha1
94+
kind: Backstage
95+
metadata:
96+
# This is the name of your {product-short} instance
97+
name: my-rhdh
98+
spec:
99+
application:
100+
imagePullSecrets:
101+
- "rhdh-pull-secret"
102+
route:
103+
enabled: false
104+
appConfig:
105+
configMaps:
106+
- name: "app-config-rhdh"
107+
extraEnvs:
108+
secrets:
109+
- name: "secrets-rhdh"
110+
----
111+
--
112+
113+
. Set up a Google-managed certificate by creating a `ManagedCertificate` object which you must attach to the Ingress.
114+
+
115+
--
116+
.Example of a `ManagedCertificate` object
117+
[source,yaml,subs="attributes+"]
118+
----
119+
apiVersion: networking.gke.io/v1
120+
kind: ManagedCertificate
121+
metadata:
122+
name: <rhdh_certificate_name>
123+
spec:
124+
domains:
125+
- <rhdh_domain_name>
126+
----
127+
--
128+
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].
129+
130+
. Create a `FrontendConfig` object to set a policy for redirecting to HTTPS. You must attach this policy to the Ingress.
131+
+
132+
--
133+
.Example of a `FrontendConfig` object
134+
[source,yaml,subs="attributes+"]
135+
----
136+
apiVersion: networking.gke.io/v1beta1
137+
kind: FrontendConfig
138+
metadata:
139+
name: <ingress_security_config>
140+
spec:
141+
sslPolicy: gke-ingress-ssl-policy-https
142+
redirectToHttps:
143+
enabled: true
144+
----
145+
--
146+
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].
147+
148+
. Create an ingress resource using the following template, customizing the names as needed:
149+
+
150+
--
151+
.Example of an ingress resource configuration
152+
[source,yaml,subs="attributes+"]
153+
----
154+
apiVersion: networking.k8s.io/v1
155+
kind: Ingress
156+
metadata:
157+
# TODO: this the name of your Developer Hub Ingress
158+
name: my-rhdh
159+
annotations:
160+
# If the class annotation is not specified it defaults to "gce".
161+
kubernetes.io/ingress.class: "gce"
162+
kubernetes.io/ingress.global-static-ip-name: <ADDRESS_NAME>
163+
networking.gke.io/managed-certificates: <rhdh_certificate_name>
164+
networking.gke.io/v1beta1.FrontendConfig: <ingress_security_config>
165+
spec:
166+
ingressClassName: gce
167+
rules:
168+
# TODO: Set your application domain name.
169+
- host: <rhdh_domain_name>
170+
http:
171+
paths:
172+
- path: /
173+
pathType: Prefix
174+
backend:
175+
service:
176+
# TODO: my-rhdh is the name of your Backstage Custom Resource.
177+
# Adjust if you changed it!
178+
name: backstage-my-rhdh
179+
port:
180+
name: http-backend
181+
----
182+
--
183+
184+
185+
186+
.Verification
187+
188+
* Wait for the `ManagedCertificate` to be provisioned. This process can take a couple of hours.
189+
190+
* Access {product-very-short} with `https://<rhdh_domain_name>`
191+
192+
// Wait until the DNS name is responsive, indicating that your {product-short} instance is ready for use.
193+
194+
.Additional information
195+
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[Secure GKE Ingress].

0 commit comments

Comments
 (0)