Skip to content

Commit 9d87b4d

Browse files
authored
Merge branch 'main' into RHIDP-7614-Configuring-theme-specific-company-logos-for-global-header-and-sidebar
2 parents d4ab361 + c8c5cd3 commit 9d87b4d

File tree

10 files changed

+315
-14
lines changed

10 files changed

+315
-14
lines changed

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"cSpell.words": [
3-
"preconfigured"
3+
"preconfigured",
4+
"quicklinks"
45
]
56
}

assemblies/assembly-configuring-the-global-header.adoc

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,8 @@ include::modules/configuring-the-global-header/proc-customize-rhdh-global-header
1818

1919
include::modules/configuring-the-global-header/proc-mount-points.adoc[leveloffset=+1]
2020

21-
2221
include::modules/configuring-the-global-header/proc-configuring-theme-specific-company-logos.adoc[leveloffset=+1]
22+
23+
include::modules/configuring-the-global-header/con-quicklinks-and-starred-items-in-global-header.adoc[leveloffset=+1]
24+
25+
include::modules/configuring-the-global-header/proc-enabling-quicklinks-starred-items-after-upgrade.adoc[leveloffset=+1]
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
[id="quicklinks-and-starred-items-in-global-header_{context}"]
2+
= Quicklinks and Starred Items in the global header
3+
4+
The *Quicklinks* matrix and *Starred Items* drop-down list are enabled by default and appear in the global header without requiring additional configuration.
5+
6+
The *Quicklinks* matrix, organized by sections (for example, Documentation or Developer Tools), allows users to quickly access internal or external resources. The *Starred Items* drop-down list contains entities and pages that the user has starred.
7+
8+
The default configuration includes the following components:
9+
10+
*StarredDropdown*: Displays the *Starred Items* menu in the global header by default, as shown in the following configuration:
11+
12+
[source,yaml]
13+
----
14+
# Group: Global Header
15+
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-global-header
16+
- mountPoint: global.header/component
17+
importName: StarredDropdown
18+
config:
19+
priority: 85
20+
----
21+
22+
*ApplicationLauncherDropdown*: Provides the *Quicklinks* matrix (application launcher) by default, as shown in the following configuration:
23+
24+
[source,yaml]
25+
----
26+
# Group: Global Header
27+
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-global-header
28+
- mountPoint: global.header/component
29+
importName: ApplicationLauncherDropdown
30+
config:
31+
priority: 82
32+
----
33+
34+
*MenuItemLink entries*: Define sections, titles, icons, and links within the *Quicklinks* matrix. The default configuration includes links to the {product-short} documentation and an {product-very-short} Local, as shown in the following configurations:
35+
36+
[source,yaml]
37+
----
38+
- mountPoint: global.header/application-launcher
39+
importName: MenuItemLink
40+
config:
41+
section: Documentation
42+
priority: 150
43+
props:
44+
title: Developer Hub
45+
icon: developerHub
46+
link: https://docs.redhat.com/en/documentation/red_hat_developer_hub
47+
48+
- mountPoint: global.header/application-launcher
49+
importName: MenuItemLink
50+
config:
51+
section: Developer Tools
52+
priority: 100
53+
props:
54+
title: RHDH Local
55+
icon: developerHub
56+
link: https://github.com/redhat-developer/rhdh-local
57+
----
58+
59+
[NOTE]
60+
====
61+
When upgrading from previous versions, the installer does not overwrite your existing `dynamic-plugins.yaml` configuration. If you had not configured *Starred Items* or *Quicklinks* previously, they remain disabled after the upgrade and must be manually enabled.
62+
====
63+
64+
65+
66+
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
[id="enabling-quicklinks-starred-items-upgrade_{context}"]
2+
= Enabling Quicklinks and Starred Items after an upgrade
3+
4+
If you upgrade from {product} `1.6` or earlier, {product} does not automatically enable the *Quicklinks* and *Starred Items* features. You must manually configure these features to display them in the global header.
5+
6+
.Prerequisites
7+
8+
. You have access to your {product} configuration files.
9+
. You have administrative permissions to modify ConfigMaps (if using the Operator).
10+
11+
.Procedure
12+
13+
. Locate your `dynamic-plugin` configuration.
14+
15+
* Operator deployment: The configuration is stored in a ConfigMap referenced by your Backstage custom resource (CR).
16+
* Helm deployment: The configuration is in your `values.yaml` file or separate configuration files.
17+
18+
. Enable the global header plugin. Ensure that the `red-hat-developer-hub-backstage-plugin-global-header` entry exists under the `plugins: list` and that `disabled` is set to `false`.
19+
20+
. Verify that you enabled the global header plugin.
21+
Confirm that you listed the `red-hat-developer-hub-backstage-plugin-global-header` plugin under `plugins:` with `disabled: false` (or without a `disabled` property):
22+
+
23+
[source,yaml]
24+
----
25+
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-global-header
26+
disabled: false
27+
----
28+
29+
. Add the required components. Under the `mountPoints` section of the plugin, add the components as shown in the following example:
30+
+
31+
[source,yaml]
32+
----
33+
mountPoints:
34+
- mountPoint: application/header
35+
importName: GlobalHeader
36+
config:
37+
position: above-sidebar
38+
- mountPoint: global.header/component
39+
importName: StarredDropdown
40+
config:
41+
priority: 85
42+
- mountPoint: global.header/component
43+
importName: ApplicationLauncherDropdown
44+
config:
45+
priority: 82
46+
- mountPoint: global.header/component
47+
importName: MenuItemLink
48+
config:
49+
section: Documentation
50+
priority: 150
51+
props:
52+
title: Developer Hub
53+
icon: developerHub
54+
link: https://docs.redhat.com/en/documentation/red_hat_developer_hub
55+
- mountPoint: global.header/application-launcher
56+
importName: MenuItemLink
57+
config:
58+
section: Developer Tools
59+
priority: 100
60+
props:
61+
title: RHDH Local
62+
icon: developerHub
63+
link: https://github.com/redhat-developer/rhdh-local
64+
----
65+
66+
. Apply the configuration.
67+
68+
* Operator deployment: Update the ConfigMap and allow the Operator to reconcile the changes.
69+
* Helm deployment: Apply your updated configuration using `helm upgrade`.
70+
71+
. Verify the features are enabled.
72+
After the {product} instance restarts, confirm that the star icon and *Quicklinks* matrix appear in the global header.

modules/installation/proc-install-operator.adoc

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,14 @@ Containers are available for the following CPU architectures:
1919
2020
.Procedure
2121

22-
. In the *Administrator* perspective of the {ocp-short} web console, click *Operators > OperatorHub*.
22+
. In the navigation menu of the {ocp-short} console, click *Operators > OperatorHub*.
2323
. In the *Filter by keyword* box, enter {product-short} and click the *{product} Operator* card.
2424
. On the *{product} Operator* page, read the information about the Operator and click *Install* to open the *Install Operator* page.
25+
. After the Operator is successfully installed, provision your custom configuration:
26+
+
27+
Before you create a {product-short} instance, you must create the required config map and Secret resources in your project. These include the `baseUrl` and service-to-service authentication secrets.
28+
+
29+
For detailed steps, see xref:{configuring-book-url}#provisioning-and-using-your-custom-configuration[Provisioning your custom {product} configuration].
2530
. From the *Update channel* drop-down menu, select the update channel that you want to use, for example, *fast* or *fast-{product-version}*.
2631
+
2732
[IMPORTANT]

modules/installation/proc-install-rhdh-ocp-operator.adoc

Lines changed: 56 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,72 @@
77
As a developer, you can deploy a {product} instance on {ocp-short} by using the *Developer Catalog* in the {ocp-brand-name} web console. This deployment method uses the {product} Operator.
88

99
.Prerequisites
10-
10+
* You have set the `baseUrl` in your `{my-app-config-file}` to match the external URL of your {product-short} instance. Without it, frontend and backend services cannot communicate, and features might not work as expected.
1111
* xref:proc-install-operator_{context}[An {ocp-short} administrator has installed the {product} Operator].
1212
* xref:{configuring-book-url}#provisioning-your-custom-configuration[You have provisioned your custom config maps and secrets in your `_<{my-product-namespace}>_` project].
1313
* xref:{configuring-book-url}#using-the-operator-to-run-rhdh-with-your-custom-configuration[You have authored your {product-custom-resource-type} custom resource].
1414

1515
.Procedure
1616

17-
. In the {ocp-short} web console, select your `_<{my-product-namespace}>_` project.
18-
19-
. From the *Developer* perspective on the {ocp-short} web console, click *+Add*.
17+
. In the {ocp-short} web console, select your `_<{my_product_namespace}>_` project, then click *Add*.
2018
. From the *Developer Catalog* panel, click *Operator Backed*.
2119
. In the *Filter by keyword* box, enter _{product-short}_ and click the *{product}* card.
20+
. Provision your custom configuration using the following template:
21+
+
22+
[source,yaml,subs="attributes+"]
23+
----
24+
apiVersion: v1
25+
kind: ConfigMap
26+
metadata:
27+
name: app-config-rhdh
28+
data:
29+
"app-config-rhdh.yaml": |
30+
app:
31+
title: {product}
32+
baseUrl: {my-product-url}
33+
backend:
34+
auth:
35+
externalAccess:
36+
- type: legacy
37+
options:
38+
subject: legacy-default-config
39+
secret: "${BACKEND_SECRET}"
40+
baseUrl: {my-product-url}
41+
cors:
42+
origin: {my-product-url}
43+
----
44+
+
45+
Use a config map named `app-config-rhdh` to provide your `app-config.yaml` file, and a Secret for service-to-service authentication (such as `BACKEND_SECRET`).
46+
+
47+
To create and apply these configuration resources, follow the steps in xref:{configuring-book-url}#provisioning-and-using-your-custom-configuration[Provisioning your custom {product} configuration] for the full procedure.
48+
+
49+
[NOTE]
50+
====
51+
The `app-config-rhdh` config map must include your customized `app-config.yaml` file. This config map is mounted into the {product-short} container at runtime.
52+
====
53+
54+
. Create a secret named `{my-product-secrets}` and add a key named `BACKEND_SECRET` with a `Base64-encoded` string as value, as shown in the following example:
55+
+
56+
--
57+
[source,yaml,subs="+attributes,+quotes"]
58+
----
59+
apiVersion: v1
60+
kind: Secret
61+
metadata:
62+
name: {my-product-secrets}
63+
stringData:
64+
# TODO: Add the necessary auth secrets for service-to-service auth setup
65+
BACKEND_SECRET: "xxx" # Replace with your `Base64-encoded` secret
66+
----
67+
--
68+
+
69+
[NOTE]
70+
====
71+
Ensure that your secret includes `BACKEND_SECRET`, used for service-to-service authentication. For structure and provisioning steps, see xref:{configuring-book-url}#provisioning-and-using-your-custom-configuration[Provisioning your custom {product} configuration].
72+
====
2273
. Click *Create*.
2374
. xref:{configuring-book-url}#using-the-operator-to-run-rhdh-with-your-custom-configuration[Add your {product-custom-resource-type} custom resource content].
24-
. On the *Create Backstage* page, click *Create*
75+
. On the *Create Backstage* page, click *Create*.
2576

2677
.Verification
2778

modules/installation/proc-install-rhdh-osd-gcp-helm.adoc

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,28 @@ You can install {product-short} on {osd-short} on {gcp-short} using the {product
1717
. In the *Filter by keyword* box, enter {product-short} and click the *{product}* card.
1818
. From the {product} page, click *Create*.
1919
. From your cluster, copy the {ocp-short} router host (for example: `apps.<clusterName>.com`).
20-
. Select the radio button to configure the {product-short} instance with either the form view or YAML view. The *Form view* is selected by default.
20+
. Select the radio button to configure the {product-short} instance with either the form view or YAML view.
21+
+
22+
[IMPORTANT]
23+
====
24+
Before deploying {product-short} using the Helm chart, you must define custom configuration settings such as the public `baseUrl` for your instance. Without setting `baseUrl`, the application cannot function correctly. You can define this configuration either through the *Form view* or the *YAML view* in the Helm install wizard.
25+
26+
To configure the `baseUrl`, set the following values in your Helm configuration:
27+
[source,yaml]
28+
----
29+
global:
30+
app:
31+
baseUrl: https://<your-developer-hub-url>
32+
backend:
33+
baseUrl: https://<your-developer-hub-url>
34+
cors:
35+
origin: https://<your-developer-hub-url>
36+
----
37+
You can also define additional secrets, plugins, and advanced configuration in your `values.yaml` file. For full instructions, see:
38+
xref:{configuring-book-url}#provisioning-and-using-your-custom-configuration[Provisioning your custom {product} configuration].
39+
====
40+
+
41+
The *Form view* is selected by default.
2142
+
2243
--
2344
.. Using *Form view*

modules/installation/proc-install-rhdh-osd-gcp-operator.adoc

Lines changed: 76 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,83 @@ You can install {product-short} on {osd-short} on {gcp-short} using the {product
1313

1414
.Procedure
1515

16-
. In the *Administrator* perspective of the {ocp-short} web console, click *Operators > OperatorHub*.
17-
. In the *Filter by keyword* box, enter {product-short} and click the *{product} Operator* card.
16+
. In the {ocp-short} web console menu, go to *Operators > OperatorHub*.
17+
. In the *Filter by keyword* field, enter {product-short} and click the *{product} Operator* card.
1818
. On the *{product} Operator* page, click *Install*.
19-
. In the {ocp-short} console, navigate to *Installed Operators* and select *{product} Operator*.
20-
. From the {product-short} Operator page, click *Create New Instance* and specify the name and namespace where you want to deploy {product-short}.
21-
. Configure the required settings such as Git integration, secret management, and user permissions.
19+
. After the installation completes, navigate to *Installed Operators* and select *Red Hat {product-short} Operator*.
20+
. Provision your custom configuration:
21+
+
22+
--
23+
[source,yaml,subs="attributes+"]
24+
----
25+
apiVersion: v1
26+
kind: ConfigMap
27+
metadata:
28+
name: app-config-rhdh
29+
data:
30+
"app-config-rhdh.yaml": |
31+
app:
32+
title: {product}
33+
baseUrl: {my-product-url}
34+
backend:
35+
auth:
36+
externalAccess:
37+
- type: legacy
38+
options:
39+
subject: legacy-default-config
40+
secret: "${BACKEND_SECRET}"
41+
baseUrl: {my-product-url}
42+
cors:
43+
origin: {my-product-url}
44+
----
45+
--
46+
+
47+
You must create a config map named `app-config-rhdh` and a Kubernetes Secret containing the `BACKEND_SECRET`. These resources are used by the {product-short} instance for authentication and application settings.
48+
+
49+
For further steps, see xref:{configuring-book-url}#provisioning-and-using-your-custom-configuration[Provisioning your custom {product} configuration].
50+
. Create a config map named `app-config-rhdh` that includes your `{my-app-config-file}` as shown:
51+
+
52+
--
53+
[source,yaml,subs="attributes+"]
54+
----
55+
apiVersion: v1
56+
kind: ConfigMap
57+
metadata:
58+
name: app-config-rhdh
59+
data:
60+
"app-config-rhdh.yaml": |
61+
app:
62+
title: {product}
63+
baseUrl: {my-product-url}
64+
backend:
65+
auth:
66+
externalAccess:
67+
- type: legacy
68+
options:
69+
subject: legacy-default-config
70+
secret: "${BACKEND_SECRET}"
71+
baseUrl: {my-product-url}
72+
cors:
73+
origin: {my-product-url}
74+
----
75+
--
76+
. Create a secret named `{my-product-secrets}` and add a key named `BACKEND_SECRET` with a `Base64-encoded` string as value:
77+
+
78+
--
79+
[source,yaml,subs="+attributes,+quotes"]
80+
----
81+
apiVersion: v1
82+
kind: Secret
83+
metadata:
84+
name: {my-product-secrets}
85+
stringData:
86+
# TODO: Add the necessary auth secrets for service-to-service auth setup
87+
BACKEND_SECRET: "xxx" # Replace with your `Base64-encoded` secret
88+
----
89+
--
90+
. Return to the *{product-short} Operator* page and click *Create New Instance*.
91+
. Specify the name and target namespace for the {product-short} deployment.
92+
. Configure required options such as Git integration, secrets, and user permissions.
2293
. Review the configuration, select deployment options, and click *Create*.
2394

2495
.Verification

titles/install-rhdh-ocp/master.adoc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@ The {product} Helm chart::
2727
* Requires manual installation and management
2828
--
2929

30+
[IMPORTANT]
31+
====
32+
You must set the `baseUrl` in `{my-app-config-file}` to match the external URL of your {product-short} instance (for example, `https://rhdh.example.com`).
33+
This value is required for the {product} to function correctly. If it is not set, frontend and backend services cannot communicate properly, and features may not work as expected.
34+
====
35+
3036
Use the installation method that best meets your needs and preferences.
3137

3238
.Additional resources

titles/install-rhdh-osd-gcp/master.adoc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ You can install {product-short} on {osd-short} on {gcp-brand-name} ({gcp-short})
1212
* The {product} Operator
1313
* The {product} Helm chart
1414
15+
[IMPORTANT]
16+
====
17+
You must set the `baseUrl` in `{my-app-config-file}` to match the external URL of your {product-short} instance. This value is required for the {product} to function correctly. If it is not set, frontend and backend services cannot communicate properly, and features may not work as expected.
18+
====
19+
1520
// Operator procedure
1621
include::modules/installation/proc-install-rhdh-osd-gcp-operator.adoc[leveloffset=+1]
1722

0 commit comments

Comments
 (0)