Skip to content

Commit 20814c7

Browse files
authored
Merge branch 'main' into RHIDP-8635-1
2 parents 5908549 + 4a0a570 commit 20814c7

17 files changed

+468
-233
lines changed

artifacts/attributes.adoc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,7 @@
179179
:model-context-protocol-link: {product-docs-link}/html-single/interacting_with_model_context_protocol_tools_for_red_hat_developer_hub/index
180180
:model-context-protocol-title: Interacting with Model Context Protocol tools for {product}
181181

182-
:openshift-ai-connector-for-rhdh-link: {product-docs-link}/html-single/integrating_rhdh_with_openshift_ai_connector_for_rhdh/index
183-
:openshift-ai-connector-for-rhdh-title: Integrate {product} with {openshift-ai-connector-name} to leverage AI models
182+
:openshift-ai-connector-for-rhdh-link: {product-docs-link}/html-single/accelerate_ai_development_with_openshift_ai_connector_for_red_hat_developer_hub/index
184183

185184
:openshift-ai-connector-name: OpenShift AI Connector for {product}
186185
:openshift-ai-connector-name-short: OpenShift AI Connector for {product-very-short}
Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
:_mod-docs-content-type: ASSEMBLY
22

33
[id="bulk-importing-github-repositories"]
4-
= Bulk importing GitHub repositories
4+
= Bulk importing in {product}
55

66
include::{docdir}/artifacts/snip-technology-preview.adoc[]
77

8-
{product} can automate GitHub repositories onboarding and track their import status.
8+
{product} can automate the onboarding of GitHub repositories and GitLab projects, and track their import status.
9+
10+
include::modules/streamline-software-development-and-management/proc-enabling-and-authorizing-bulk-import-capabilities.adoc[leveloffset=+1]
11+
12+
include::modules/streamline-software-development-and-management/proc-importing-multiple-repositories-from-github.adoc[leveloffset=+1]
13+
14+
include::modules/importing-repositories/proc-importing-multiple-repositories-from-gitlab.adoc[leveloffset=+1]
15+
16+
include::modules/streamline-software-development-and-management/proc-monitoring-bulk-import-actions-using-audit-logs.adoc[leveloffset=+1]
917

1018
include::modules/importing-repositories/concept-bulk-import-scaffolder-template.adoc[leveloffset=+1]
1119

1220
include::modules/importing-repositories/procedure-integrating-bulk-import-with-orchestrator-workflows.adoc[leveloffset=+1]
1321

14-
include::modules/importing-repositories/concept-data-handoff-and-custom-workflow-design.adoc[leveloffset=+1]
22+
include::modules/importing-repositories/concept-data-handoff-and-custom-workflow-design.adoc[leveloffset=+1]
23+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
:_mod-docs-content-type: ASSEMBLY
2+
3+
[id="configuring-rhdh-events-module"]
4+
5+
= Configuring {product} Events Module
6+
7+
Use the Events Module together with scheduled updates to make sure your GitHub user or catalog entities are updated whenever changes occur in the external system.
8+
This is a Developer Preview feature.
9+
10+
[IMPORTANT]
11+
====
12+
Developer Preview features are not supported by Red Hat in any way and are not functionally complete or production-ready. Do not use Developer Preview features for production or business-critical workloads. Developer Preview features provide early access to functionality in advance of possible inclusion in a Red Hat product offering. Customers can use these features to test functionality and provide feedback during the development process. Developer Preview features might not have any documentation, are subject to change or removal at any time, and have received limited testing. Red Hat might provide ways to submit feedback on Developer Preview features without an associated SLA.
13+
14+
For more information about the support scope of Red Hat Developer Preview features, see link:https://access.redhat.com/support/offerings/devpreview/[Developer Preview Support Scope].
15+
====
16+
17+
include::modules/dynamic-plugins/proc-configuring-events-module-for-github.adoc[leveloffset=+1]

assemblies/dynamic-plugins/assembly-configuring-rhdh-plugins.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,8 @@ include::../assembly-using-servicenow.adoc[leveloffset=+1]
3434
// Kubernetes Custom Actions
3535
include::../assembly-using-kubernetes-custom-actions.adoc[leveloffset=+1]
3636

37+
// Events Module
38+
include::../assembly-configuring-rhdh-events-module.adoc[leveloffset=+1]
39+
3740
// Overriding Core Backend Service Configuration
3841
include::../modules/dynamic-plugins/proc-overriding-core-backend-services.adoc[leveloffset=+1]

assemblies/dynamic-plugins/assembly-installing-rhdh-plugins.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ You can use the dynamic plugins that come preinstalled with {product} or install
1111
// Operator installation
1212
include::../modules/dynamic-plugins/proc-config-dynamic-plugins-rhdh-operator.adoc[leveloffset=+2]
1313

14+
// Plugins dependency
15+
include::../modules/configuring/con-dynamic-plugins-dependencies.adoc[leveloffset=+2]
16+
1417
// Helm installation
1518
include::../modules/dynamic-plugins/con-install-dynamic-plugin-helm.adoc[leveloffset=+2]
1619
//include::../modules/dynamic-plugins/proc-obtaining-integrity-checksum.adoc[leveloffset=+3] //from tkral:This is documented in a better way in "= Installing third-party plugins in {product}" we can remove this module. It is not even placed correctly here as this is not specific to helm chart in anyway
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
:_mod-docs-content-type: CONCEPT
2+
3+
[id="dynamic-plugins-dependencies_{context}"]
4+
= Dynamic plugins dependency management
5+
Dynamic plugins configured for the {backstage} custom resource (CR) may require certain Kubernetes resources to be configured to make the plugin work. These resources are referred to as `plugin dependencies`. In {product} ({product-very-short}), you can automatically create these resources when the {backstage} CR is applied to the cluster.
6+
7+
== Cluster level plugin dependencies configuration
8+
You can configure plugin dependencies by including the required Kubernetes resources in the `/config/profile/{PROFILE}/plugin-deps` directory. You must add the required resources as Kubernetes manifests in YAML format in the `plugin-deps` directory.
9+
10+
Example showing how to add `example-dep1.yaml` and `example-dep2.yaml` as plugin dependencies:
11+
[source,terminal,subs="+quotes"]
12+
----
13+
config/
14+
profile/
15+
rhdh/
16+
kustomization.yaml
17+
plugin-deps/
18+
example-dep1.yaml
19+
example-dep2.yaml
20+
----
21+
22+
[NOTE]
23+
====
24+
* If a resource manifest does not specify a namespace, it will be created in the namespace of the {backstage} CR.
25+
* Resources may contain *{{backstage-name}}* and *{{backstage-ns}}* placeholders, which will be replaced with the name and namespace of the {backstage} CR, respectively.
26+
====
27+
28+
The `kustomization.yaml` file must contain the following lines:
29+
[source,yaml,subs="+quotes"]
30+
----
31+
configMapGenerator:
32+
- files:
33+
- plugin-deps/example-dep1.yaml
34+
- plugin-deps/example-dep2.yaml
35+
name: plugin-deps
36+
----
37+
38+
== Plugin dependencies infrastructure
39+
To install infrastructural resources that are required by plugin dependencies, for example, other operators or custom resources (CR), you can include these in the `/config/profile/{PROFILE}/plugin-infra` directory.
40+
41+
To create these infrastructural resources (along with the operator deployment), use the `make plugin-infra` command.
42+
43+
[NOTE]
44+
====
45+
On a production cluster, use this command with caution as it might reconfigure cluster-scoped resources.
46+
====
47+
48+
== Plugin configuration
49+
You must reference the plugin dependenciesin the `dependencies` field of the plugin configuration when the {backstage} CR is applied.
50+
51+
The Operator creates the resources described in the files located in the `plugin-deps` directory.
52+
53+
You can reference plugin dependencies in the `dynamic-plugins` ConfigMap which can either be part of the default profile configuration for all {backstage} custom resources or part of the ConfigMap referenced in the {backstage} CR. In {product}, you can include plugin dependencies in the dynamic plugin configuration.
54+
55+
Each `dependencies.ref` value can either match the full file name or serve as a prefix for the file name. The operator will create the resources described in the files contained in the `plugin-deps` that start with the specified `ref` value or exactly match it
56+
57+
Example showing how to add `example-dep` plugin dependency:
58+
[source,yaml,subs="+quotes"]
59+
----
60+
apiVersion: v1
61+
kind: ConfigMap
62+
metadata:
63+
name: default-dynamic-plugins
64+
data:
65+
dynamic-plugins.yaml: |
66+
includes:
67+
- dynamic-plugins.default.yaml
68+
plugins:
69+
- disabled: false
70+
package: "path-or-url-to-example-plugin"
71+
dependencies:
72+
- ref: example-dep
73+
----

modules/dynamic-plugins/proc-config-dynamic-plugins-rhdh-operator.adoc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55

66
You can store the configuration for dynamic plugins in a `ConfigMap` object that your `{product-custom-resource-type}` custom resource (CR) can reference.
77

8+
Dynamic plugins might require certain Kubernetes resources to be configured. These resources are referred to as `plugin dependencies`. For more information, see xref:dynamic-plugins-dependencies_{context}[Dynamic plugins dependency management].
9+
10+
In {product} ({product-very-short}), you can automatically create these resources when the {product-custom-resource-type} CR is applied to the cluster.
11+
812
[NOTE]
913
====
1014
If the `pluginConfig` field references environment variables, you must define the variables in your `_<my_product_secrets>_` secret.
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
:_mod-docs-content-type: PROCEDURE
2+
3+
[id="proc-configuring-events-module-for-github"]
4+
5+
= Configuring Events Module for GitHub
6+
7+
Learn how to configure Events Module for use with the {product-very-short} GitHub Discovery feature and GitHub organization data.
8+
This is a Developer Preview feature.
9+
10+
[IMPORTANT]
11+
====
12+
Developer Preview features are not supported by Red Hat in any way and are not functionally complete or production-ready. Do not use Developer Preview features for production or business-critical workloads. Developer Preview features provide early access to functionality in advance of possible inclusion in a Red Hat product offering. Customers can use these features to test functionality and provide feedback during the development process. Developer Preview features might not have any documentation, are subject to change or removal at any time, and have received limited testing. Red Hat might provide ways to submit feedback on Developer Preview features without an associated SLA.
13+
14+
For more information about the support scope of Red Hat Developer Preview features, see link:https://access.redhat.com/support/offerings/devpreview/[Developer Preview Support Scope].
15+
====
16+
17+
.Prerequisites
18+
* You have added your GitHub integration credentials in the `{my-app-config-file}` file.
19+
* You have defined the `schedule.frequency` in the `{my-app-config-file}` file as longer time period, such as 24 hours.
20+
* For GitHub Discovery only: You have enabled {product-docs-link}/html-single/integrating_red_hat_developer_hub_with_github/index#enabling-github-repository-discovery[GitHub Discovery].
21+
* For GitHub Organizational Data only: You have enabled {product-docs-link}/html-single/authentication_in_red_hat_developer_hub/index#enabling-user-authentication-with-github[Github Authentication with user ingestion].
22+
23+
.Procedure
24+
. Add the GitHub Events Module to your `dynamic-plugins.yaml` configuration file as follows:
25+
+
26+
[source,yaml]
27+
----
28+
data:
29+
dynamic-plugins.yaml: |
30+
includes:
31+
- dynamic-plugins.default.yaml
32+
plugins:
33+
- package: oci://ghcr.io/redhat-developer/rhdh-plugin-export-overlays/backstage-plugin-events-backend-module-github:bs_1.42.5__0.4.3!backstage-plugin-events-backend-module-github
34+
disabled: false
35+
----
36+
. To create HTTP endpoints to receive events for the `github`, add the following to your `{my-app-config-file}` file:
37+
+
38+
[source,yaml]
39+
----
40+
events:
41+
http:
42+
topics:
43+
- github
44+
modules:
45+
github:
46+
webhookSecret: ${GITHUB_WEBHOOK_SECRET}
47+
----
48+
+
49+
[IMPORTANT]
50+
====
51+
Secure your workflow by adding a webhook secret token to link:https://docs.github.com/en/webhooks/using-webhooks/validating-webhook-deliveries[validate webhook deliveries].
52+
====
53+
. Create a link:https://docs.github.com/en/webhooks/using-webhooks/creating-webhooks[GitHub webhook] with the following specifications:
54+
** *For Github Discovery Events*: push, repository
55+
** *For Github Organizational Data Events*: organization, team and membership
56+
** *Content Type*: application/json
57+
** *Payload URL*: https://<your_instance_name>/api/events/http/github
58+
+
59+
[NOTE]
60+
====
61+
*Payload URL* is the URL exposed after configuring the HTTP endpoint.
62+
====
63+
64+
.Verification
65+
* Check the log for an entry that confirms that http endpoint was set up successfully to receive events from the GitHub webhook.
66+
+
67+
Example of a log of successfully set up http endpoint::
68+
+
69+
[source,code]
70+
----
71+
{"level":"\u001b[32minfo\u001b[39m","message":"Registered /api/events/http/github to receive events","plugin":"events","service":"backstage","timestamp":"2025-11-03 02:19:12"}
72+
----
73+
* For GitHub Discovery only:
74+
** Trigger a GitHub push event by adding,
75+
modifying or deleting the `catalog-info.yaml` file in the repository where you set up your webhook.
76+
A record of this event should appear in the pod logs of your {product-very-short} instance.
77+
+
78+
Example of a log with changes to `catalog-info.yaml` file::
79+
+
80+
[source,code]
81+
----
82+
{"level":"\u001b[32minfo\u001b[39m","message":"Processed Github push event: added 0 - removed 0 - modified 1","plugin":"catalog","service":"backstage","span_id":"47534b96c4afc654","target":"github-provider:providerId","timestamp":"2025-06-15 21:33:14","trace_flags":"01","trace_id":"ecc782deb86aed2027da0ae6b1999e5c"}
83+
----
84+
85+
* For GitHub Organizational Data only:
86+
** Newly added users and teams appear in the {product-very-short} catalog.
87+
88+

0 commit comments

Comments
 (0)