From 0328f7fe060fd0218e4f620b8691d826b9d6bd90 Mon Sep 17 00:00:00 2001 From: Gerry-Forde Date: Wed, 4 Dec 2024 12:00:08 +0000 Subject: [PATCH 01/13] RHIDP-4802 - Dynamic plugin: Document how users can add middleware functions to proxy backend --- .../assembly-configuring-rhdh-plugins.adoc | 5 +- .../con-overriding-core-backend-services.adoc | 101 ++++++++++++++++++ 2 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 modules/dynamic-plugins/con-overriding-core-backend-services.adoc diff --git a/assemblies/dynamic-plugins/assembly-configuring-rhdh-plugins.adoc b/assemblies/dynamic-plugins/assembly-configuring-rhdh-plugins.adoc index c151708b37..0d1c8e8606 100644 --- a/assemblies/dynamic-plugins/assembly-configuring-rhdh-plugins.adoc +++ b/assemblies/dynamic-plugins/assembly-configuring-rhdh-plugins.adoc @@ -25,4 +25,7 @@ include::../modules/dynamic-plugins/proc-topology-configure.adoc[leveloffset=+2] include::../modules/dynamic-plugins/con-dynamic-plugins-cache.adoc[ leveloffset=+1] // Redis cache -include::../modules/dynamic-plugins/proc-installing-and-configuring-redis-cache.adoc[leveloffset=+1] \ No newline at end of file +include::../modules/dynamic-plugins/proc-installing-and-configuring-redis-cache.adoc[leveloffset=+1] + +// Overriding Core Backend Service Configuration +include::../modules/dynamic-plugins/con-overriding-core-backend-services.adoc[leveloffset=+1] \ No newline at end of file diff --git a/modules/dynamic-plugins/con-overriding-core-backend-services.adoc b/modules/dynamic-plugins/con-overriding-core-backend-services.adoc new file mode 100644 index 0000000000..f7e6c56f86 --- /dev/null +++ b/modules/dynamic-plugins/con-overriding-core-backend-services.adoc @@ -0,0 +1,101 @@ +[id="overriding-core-backend-services_{context}"] += Overriding Core Backend Service Configuration + +The {product} ({product-very-short}) backend platform consists of a number of core services that are well encapsulated. The {product-very-short} backend installs these default core services statically during initialization. + +You can configure these core services by customizing the backend source code and rebuilding your {product-short} application. Alternatively, you can customize a core service by installing it as a `BackendFeature` by using dynamic plugin functionality. + +To use dynamic plugin functionality to customize a core service in your RHDH application, you must configure the backend to avoid statically installing a given default core service + +For example, adding a middleware function to handle all incoming requests can be done by installing a custom `configure` function for the root `HTTP` router backend service which allows access to the underlying Express application. + +.Example of a `BackendFeature` middleware function to handle incoming `HTTP` requests + +[source,javascript] +---- +// Create the BackendFeature +export const customRootHttpServerFactory: BackendFeature = + rootHttpRouterServiceFactory({ + configure: ({ app, routes, middleware, logger }) => { + logger.info( + 'Using custom root HttpRouterServiceFactory configure function', + ); + app.use(middleware.helmet()); + app.use(middleware.cors()); + app.use(middleware.compression()); + app.use(middleware.logging()); + // Add a the custom middleware function before all + // of the route handlers + app.use(addTestHeaderMiddleware({ logger })); + app.use(routes); + app.use(middleware.notFound()); + app.use(middleware.error()); + }, + }); + +// Export the BackendFeature as the default entrypoint +export default customRootHttpServerFactory; +---- + +In the above example, as the `BackendFeature` overrides the default implementation of the HTTP router service, you must set the `ENABLE_CORE_ROOTHTTPROUTER_OVERRIDE` environment variable to `true` so that the {product-short} does not install the default implementation automatically. + +== Overriding environment variables +To allow a dynamic plugin to load a core service override, you must start the {product-short} backend with the corresponding core service ID environment variable set to `true`. + +.Environment variables and core service IDs +[cols="50%,50%", frame="all", options="header"] +|=== +|Variable +|Description + +|`ENABLE_CORE_AUTH_OVERRIDE` +|Override the `core.auth` service + +| `ENABLE_CORE_CACHE_OVERRIDE` +| Override the `core.cache` service + +| `ENABLE_CORE_ROOTCONFIG_OVERRIDE` +| Override the `core.rootConfig` service + +| `ENABLE_CORE_DATABASE_OVERRIDE` +| Override the `core.database` service + +| `ENABLE_CORE_DISCOVERY_OVERRIDE` +| Override the `core.discovery` service + +| `ENABLE_CORE_HTTPAUTH_OVERRIDE` +| Override the `core.httpAuth` service + +| `ENABLE_CORE_HTTPROUTER_OVERRIDE` +| Override the `core.httpRouter` service + +| `ENABLE_CORE_LIFECYCLE_OVERRIDE` +| Override the `core.lifecycle` service + +| `ENABLE_CORE_LOGGER_OVERRIDE` +| Override the `core.logger` service + +| `ENABLE_CORE_PERMISSIONS_OVERRIDE` +| Override the `core.permissions` service + +| `ENABLE_CORE_ROOTHEALTH_OVERRIDE` +| Override the `core.rootHealth` service + +| `ENABLE_CORE_ROOTHTTPROUTER_OVERRIDE` +| Override the `core.rootHttpRouter` service + +| `ENABLE_CORE_ROOTLIFECYCLE_OVERRIDE` +| Override the `core.rootLifecycle` service + +| `ENABLE_CORE_SCHEDULER_OVERRIDE` +| Override the `core.scheduler` service + +| `ENABLE_CORE_USERINFO_OVERRIDE` +| Override the `core.userInfo` service + +| `ENABLE_CORE_URLREADER_OVERRIDE` +| Override the `core.urlReader` service + +| `ENABLE_EVENTS_SERVICE_OVERRIDE` +| Override the `events.service` service +|=== \ No newline at end of file From b11c1326a4fa44dffc4c29ec262870a3bd3522e5 Mon Sep 17 00:00:00 2001 From: Heena Manwani <59050394+hmanwani-rh@users.noreply.github.com> Date: Wed, 4 Dec 2024 20:42:59 +0530 Subject: [PATCH 02/13] RHIDP-4566: document how to manage PVCs in RHDH operator (#702) * RHIDP-4566: document how to manage PVCs in RHDH operator * Incorporated review suggestions * Incorporate QE suggestion --- .../admin/proc-mount-directories-pvcs.adoc | 64 +++++++++++++++++++ .../admin/proc-rhdh-deployment-config.adoc | 9 ++- titles/admin-rhdh/title-admin.adoc | 3 +- 3 files changed, 72 insertions(+), 4 deletions(-) create mode 100644 modules/admin/proc-mount-directories-pvcs.adoc diff --git a/modules/admin/proc-mount-directories-pvcs.adoc b/modules/admin/proc-mount-directories-pvcs.adoc new file mode 100644 index 0000000000..61cc8a6e59 --- /dev/null +++ b/modules/admin/proc-mount-directories-pvcs.adoc @@ -0,0 +1,64 @@ +[id="proc-mount-directories-pvcs_{context}"] += Mounting directories from pre-created PVCs + +Starting from `v1alpha3`, you can mount directories from pre-created PersistentVolumeClaims (PVCs) using the `spec.application.extraFiles.pvcs` field. + +.Prerequisites +* You have understanding of the mounting logic: +** If `spec.application.extraFiles.pvcs[].mountPath` is defined, the PVC is mounted to the specified path. +** If `spec.application.extraFiles.pvcs[].mountPath` is not defined, the PVC is mounted under the path specified in `spec.application.extraFiles.mountPath/`. +** If `mountPath` is not defined, the PVC defaults to `/opt/app-root/src`, or you can use the {product-very-short} container's working directory if it is specified. + +.Procedure +. Define the PVCs using the following YAML example: ++ +-- +.Example YAML file to define PVCs +[source,yaml] +---- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: myclaim1 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: myclaim2 +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi +---- +-- + +. Use the following configuration to specify how the PVCs are mounted in the container: ++ +-- +.Example configuration for mounting PVCs in a container +[source,yaml] +---- +spec: + application: + extraFiles: + mountPath: /my/path + pvcs: + - name: myclaim1 + - name: myclaim2 + mountPath: /vol/my/claim +---- +-- + +.Verification +Based on the configuration, the following directories are mounted in the container: + +* `/my/path/myclaim1` +* `/vol/my/claim` \ No newline at end of file diff --git a/modules/admin/proc-rhdh-deployment-config.adoc b/modules/admin/proc-rhdh-deployment-config.adoc index 47b44e98b0..29a866bea7 100644 --- a/modules/admin/proc-rhdh-deployment-config.adoc +++ b/modules/admin/proc-rhdh-deployment-config.adoc @@ -46,8 +46,10 @@ spec: ---- `volumes`:: -Add an additional volume named `my-volume` and mount it under `/my/path` in the {product-short} application container. + +-- +Add an additional volume named `my-volume` and mount it under `/my/path` in the {product-short} application container. + .Example additional volume [source, yaml] ---- @@ -73,9 +75,9 @@ spec: storageClassName: "special" name: my-volume ---- -+ + Replace the default `dynamic-plugins-root` volume with a persistent volume claim (PVC) named `dynamic-plugins-root`. Note the `$patch: replace` directive, otherwise a new volume will be added. -+ + .Example `dynamic-plugins-root` volume replacement [source, yaml] ---- @@ -95,6 +97,7 @@ spec: persistentVolumeClaim: claimName: dynamic-plugins-root ---- +-- `cpu` request:: diff --git a/titles/admin-rhdh/title-admin.adoc b/titles/admin-rhdh/title-admin.adoc index 8aaea1cac5..f35bdaa36c 100644 --- a/titles/admin-rhdh/title-admin.adoc +++ b/titles/admin-rhdh/title-admin.adoc @@ -40,4 +40,5 @@ include::assemblies/assembly-admin-templates.adoc[leveloffset=+1] include::assemblies/assembly-techdocs-plugin.adoc[leveloffset=+1] // RHDH Operator deployment -include::modules//admin/proc-rhdh-deployment-config.adoc[leveloffset=+1] +include::modules/admin/proc-rhdh-deployment-config.adoc[leveloffset=+1] +include::modules/admin/proc-mount-directories-pvcs.adoc[leveloffset=+2] From 938f6730658f2cb978df9e0784448ed7776a371e Mon Sep 17 00:00:00 2001 From: Nick Boldt Date: Wed, 4 Dec 2024 12:11:00 -0400 Subject: [PATCH 03/13] chore: dynamic plugins are all now expressed as wrappers (RHIDP-5103) (#753) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: dynamic plugins are all now expressed as wrappers so we don't need to parse janus-plugins repo anymore Signed-off-by: Nick Boldt * comment out the TP stuff and mark it with RHIDP-5103 so we can re-enable it if needed in future Signed-off-by: Nick Boldt * regen content from showcase main branch Signed-off-by: Nick Boldt * re-add missing community plugins Signed-off-by: Nick Boldt * re-add missing community plugins (regen content) Signed-off-by: Nick Boldt --------- Signed-off-by: Nick Boldt Co-authored-by: Fabrice Flore-Thébault --- .../con-preinstalled-dynamic-plugins.adoc | 9 +- .../ref-community-plugins.adoc | 88 ++++++++++++------- .../ref-rh-supported-plugins.adoc | 38 ++++---- .../ref-rh-tech-preview-plugins.adoc | 25 +----- .../rhdh-supported-plugins.csv | 81 +++++++++-------- .../dynamic-plugins/rhdh-supported-plugins.sh | 36 ++++---- 6 files changed, 139 insertions(+), 138 deletions(-) diff --git a/modules/dynamic-plugins/con-preinstalled-dynamic-plugins.adoc b/modules/dynamic-plugins/con-preinstalled-dynamic-plugins.adoc index 21891eb98b..c0d4edd63b 100644 --- a/modules/dynamic-plugins/con-preinstalled-dynamic-plugins.adoc +++ b/modules/dynamic-plugins/con-preinstalled-dynamic-plugins.adoc @@ -7,14 +7,11 @@ The following preinstalled dynamic plugins are enabled by default: -* `@janus-idp/backstage-plugin-analytics-provider-segment` -* `@janus-idp/backstage-scaffolder-backend-module-quay` -* `@janus-idp/backstage-scaffolder-backend-module-regex` +* `@backstage-community/plugin-analytics-provider-segment` +* `@backstage-community/plugin-scaffolder-backend-module-quay` +* `@backstage-community/plugin-scaffolder-backend-module-regex` * `@backstage/plugin-techdocs-backend` * `@backstage/plugin-techdocs` -* `@janus-idp/backstage-plugin-analytics-provider-segment` -* `@janus-idp/backstage-scaffolder-backend-module-quay` -* `@janus-idp/backstage-scaffolder-backend-module-regex` The dynamic plugins that require custom configuration are disabled by default. diff --git a/modules/dynamic-plugins/ref-community-plugins.adoc b/modules/dynamic-plugins/ref-community-plugins.adoc index dc302ccc03..4179ccd443 100644 --- a/modules/dynamic-plugins/ref-community-plugins.adoc +++ b/modules/dynamic-plugins/ref-community-plugins.adoc @@ -10,12 +10,12 @@ Details on how {company-name} provides support for bundled community dynamic plugins are available on the https://access.redhat.com/policy/developerhub-support-policy[Red Hat Developer Support Policy] page. ==== -{product-very-short} includes the following 50 community plugins: +{product-very-short} includes the following 55 community plugins: [%header,cols=4*] |=== |*Name* |*Plugin* |*Version* |*Path and required variables* -|3scale |`https://npmjs.com/package/@backstage-community/plugin-3scale-backend/v/3.0.1[@backstage-community/plugin-3scale-backend]` |3.0.1 +|3scale |`https://npmjs.com/package/@backstage-community/plugin-3scale-backend/v/3.0.3[@backstage-community/plugin-3scale-backend]` |3.0.3 |`./dynamic-plugins/dist/backstage-community-plugin-3scale-backend-dynamic` `THREESCALE_BASE_URL` @@ -31,7 +31,7 @@ Details on how {company-name} provides support for bundled community dynamic plu `AAP_AUTH_TOKEN` -|ACR |`https://npmjs.com/package/@backstage-community/plugin-acr/v/1.8.3[@backstage-community/plugin-acr]` |1.8.3 +|ACR |`https://npmjs.com/package/@backstage-community/plugin-acr/v/1.8.5[@backstage-community/plugin-acr]` |1.8.5 |`./dynamic-plugins/dist/backstage-community-plugin-acr` @@ -51,19 +51,19 @@ Details on how {company-name} provides support for bundled community dynamic plu `ARGOCD_AUTH_TOKEN2` -|Argo CD (Red Hat) |`https://npmjs.com/package/@backstage-community/plugin-redhat-argocd/v/1.8.9[@backstage-community/plugin-redhat-argocd]` |1.8.9 +|Argo CD (Red Hat) |`https://npmjs.com/package/@backstage-community/plugin-redhat-argocd/v/1.10.4[@backstage-community/plugin-redhat-argocd]` |1.10.4 |`./dynamic-plugins/dist/backstage-community-plugin-redhat-argocd` -|Azure |`https://npmjs.com/package/@backstage/plugin-scaffolder-backend-module-azure/v/0.2.1[@backstage/plugin-scaffolder-backend-module-azure]` |0.2.1 +|Azure |`https://npmjs.com/package/@backstage/plugin-scaffolder-backend-module-azure/v/0.2.2[@backstage/plugin-scaffolder-backend-module-azure]` |0.2.2 |`./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-azure-dynamic` -|Azure Devops |`https://npmjs.com/package/@backstage-community/plugin-azure-devops/v/0.6.1[@backstage-community/plugin-azure-devops]` |0.6.1 +|Azure Devops |`https://npmjs.com/package/@backstage-community/plugin-azure-devops/v/0.6.2[@backstage-community/plugin-azure-devops]` |0.6.2 |`./dynamic-plugins/dist/backstage-community-plugin-azure-devops` -|Azure Devops |`https://npmjs.com/package/@backstage-community/plugin-azure-devops-backend/v/0.7.3[@backstage-community/plugin-azure-devops-backend]` |0.7.3 +|Azure Devops |`https://npmjs.com/package/@backstage-community/plugin-azure-devops-backend/v/0.8.0[@backstage-community/plugin-azure-devops-backend]` |0.8.0 |`./dynamic-plugins/dist/backstage-community-plugin-azure-devops-backend-dynamic` `AZURE_TOKEN` @@ -81,7 +81,7 @@ Details on how {company-name} provides support for bundled community dynamic plu `BITBUCKET_WORKSPACE` -|Bitbucket Cloud |`https://npmjs.com/package/@backstage/plugin-scaffolder-backend-module-bitbucket-cloud/v/0.2.1[@backstage/plugin-scaffolder-backend-module-bitbucket-cloud]` |0.2.1 +|Bitbucket Cloud |`https://npmjs.com/package/@backstage/plugin-scaffolder-backend-module-bitbucket-cloud/v/0.2.2[@backstage/plugin-scaffolder-backend-module-bitbucket-cloud]` |0.2.2 |`./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-bitbucket-cloud-dynamic` @@ -91,16 +91,16 @@ Details on how {company-name} provides support for bundled community dynamic plu `BITBUCKET_HOST` -|Bitbucket Server |`https://npmjs.com/package/@backstage/plugin-scaffolder-backend-module-bitbucket-server/v/0.2.1[@backstage/plugin-scaffolder-backend-module-bitbucket-server]` |0.2.1 +|Bitbucket Server |`https://npmjs.com/package/@backstage/plugin-scaffolder-backend-module-bitbucket-server/v/0.2.2[@backstage/plugin-scaffolder-backend-module-bitbucket-server]` |0.2.2 |`./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-bitbucket-server-dynamic` -|Bulk Import |`https://npmjs.com/package/@janus-idp/backstage-plugin-bulk-import/v/1.7.0[@janus-idp/backstage-plugin-bulk-import]` |1.7.0 -|`./dynamic-plugins/dist/janus-idp-backstage-plugin-bulk-import` +|Bulk Import |`https://npmjs.com/package/@red/hat-developer-hub-backstage-plugin-bulk-import/v/1.10.3[@red/hat-developer-hub-backstage-plugin-bulk-import]` |1.10.3 +|`./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import` -|Bulk Import |`https://npmjs.com/package/@janus-idp/backstage-plugin-bulk-import-backend/v/5.0.0[@janus-idp/backstage-plugin-bulk-import-backend]` |5.0.0 -|`./dynamic-plugins/dist/janus-idp-backstage-plugin-bulk-import-backend-dynamic` +|Bulk Import |`https://npmjs.com/package/@red/hat-developer-hub-backstage-plugin-bulk-import-backend/v/5.2.0[@red/hat-developer-hub-backstage-plugin-bulk-import-backend]` |5.2.0 +|`./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import-backend-dynamic` |Datadog |`https://npmjs.com/package/@roadiehq/backstage-plugin-datadog/v/2.4.0[@roadiehq/backstage-plugin-datadog]` |2.4.0 @@ -111,15 +111,15 @@ Details on how {company-name} provides support for bundled community dynamic plu |`./dynamic-plugins/dist/backstage-community-plugin-dynatrace` -|Gerrit |`https://npmjs.com/package/@backstage/plugin-scaffolder-backend-module-gerrit/v/0.2.1[@backstage/plugin-scaffolder-backend-module-gerrit]` |0.2.1 +|Gerrit |`https://npmjs.com/package/@backstage/plugin-scaffolder-backend-module-gerrit/v/0.2.2[@backstage/plugin-scaffolder-backend-module-gerrit]` |0.2.2 |`./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-gerrit-dynamic` -|GitHub |`https://npmjs.com/package/@backstage/plugin-scaffolder-backend-module-github/v/0.5.1[@backstage/plugin-scaffolder-backend-module-github]` |0.5.1 +|GitHub |`https://npmjs.com/package/@backstage/plugin-scaffolder-backend-module-github/v/0.5.2[@backstage/plugin-scaffolder-backend-module-github]` |0.5.2 |`./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-github-dynamic` -|GitHub Actions |`https://npmjs.com/package/@backstage-community/plugin-github-actions/v/0.6.23[@backstage-community/plugin-github-actions]` |0.6.23 +|GitHub Actions |`https://npmjs.com/package/@backstage-community/plugin-github-actions/v/0.6.24[@backstage-community/plugin-github-actions]` |0.6.24 |`./dynamic-plugins/dist/backstage-community-plugin-github-actions` @@ -127,7 +127,7 @@ Details on how {company-name} provides support for bundled community dynamic plu |`./dynamic-plugins/dist/roadiehq-backstage-plugin-github-insights` -|GitHub Issues |`https://npmjs.com/package/@backstage-community/plugin-github-issues/v/0.4.7[@backstage-community/plugin-github-issues]` |0.4.7 +|GitHub Issues |`https://npmjs.com/package/@backstage-community/plugin-github-issues/v/0.4.8[@backstage-community/plugin-github-issues]` |0.4.8 |`./dynamic-plugins/dist/backstage-community-plugin-github-issues` @@ -151,7 +151,7 @@ Details on how {company-name} provides support for bundled community dynamic plu `GITLAB_TOKEN` -|GitLab |`https://npmjs.com/package/@backstage/plugin-scaffolder-backend-module-gitlab/v/0.6.0[@backstage/plugin-scaffolder-backend-module-gitlab]` |0.6.0 +|GitLab |`https://npmjs.com/package/@backstage/plugin-scaffolder-backend-module-gitlab/v/0.6.1[@backstage/plugin-scaffolder-backend-module-gitlab]` |0.6.1 |`./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-gitlab-dynamic` @@ -159,11 +159,11 @@ Details on how {company-name} provides support for bundled community dynamic plu |`./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-gitlab-org-dynamic` -|Http Request |`https://npmjs.com/package/@roadiehq/scaffolder-backend-module-http-request/v/4.3.5[@roadiehq/scaffolder-backend-module-http-request]` |4.3.5 +|Http Request |`https://npmjs.com/package/@roadiehq/scaffolder-backend-module-http-request/v/5.0.0[@roadiehq/scaffolder-backend-module-http-request]` |5.0.0 |`./dynamic-plugins/dist/roadiehq-scaffolder-backend-module-http-request-dynamic` -|Jenkins |`https://npmjs.com/package/@backstage-community/plugin-jenkins/v/0.11.1[@backstage-community/plugin-jenkins]` |0.11.1 +|Jenkins |`https://npmjs.com/package/@backstage-community/plugin-jenkins/v/0.12.0[@backstage-community/plugin-jenkins]` |0.12.0 |`./dynamic-plugins/dist/backstage-community-plugin-jenkins` @@ -177,7 +177,7 @@ Details on how {company-name} provides support for bundled community dynamic plu `JENKINS_TOKEN` -|JFrog Artifactory |`https://npmjs.com/package/@backstage-community/plugin-jfrog-artifactory/v/1.10.0[@backstage-community/plugin-jfrog-artifactory]` |1.10.0 +|JFrog Artifactory |`https://npmjs.com/package/@backstage-community/plugin-jfrog-artifactory/v/1.10.2[@backstage-community/plugin-jfrog-artifactory]` |1.10.2 |`./dynamic-plugins/dist/backstage-community-plugin-jfrog-artifactory` @@ -201,10 +201,30 @@ Details on how {company-name} provides support for bundled community dynamic plu |`./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-msgraph-dynamic` -|Nexus Repository Manager |`https://npmjs.com/package/@backstage-community/plugin-nexus-repository-manager/v/1.10.2[@backstage-community/plugin-nexus-repository-manager]` |1.10.2 +|Nexus Repository Manager |`https://npmjs.com/package/@backstage-community/plugin-nexus-repository-manager/v/1.10.6[@backstage-community/plugin-nexus-repository-manager]` |1.10.6 |`./dynamic-plugins/dist/backstage-community-plugin-nexus-repository-manager` +|Notifications |`https://npmjs.com/package/@backstage/plugin-notifications/v/0.3.2[@backstage/plugin-notifications]` |0.3.2 +|`./dynamic-plugins/dist/backstage-plugin-notifications` + + +|Notifications |`https://npmjs.com/package/@backstage/plugin-notifications-backend/v/0.4.2[@backstage/plugin-notifications-backend]` |0.4.2 +|`./dynamic-plugins/dist/backstage-plugin-notifications-backend-dynamic` + + +|Notifications Module Email |`https://npmjs.com/package/@backstage/plugin-notifications-backend-module-email/v/0.3.2[@backstage/plugin-notifications-backend-module-email]` |0.3.2 +|`./dynamic-plugins/dist/backstage-plugin-notifications-backend-module-email-dynamic` + +`EMAIL_HOSTNAME` + +`EMAIL_USERNAME` + +`EMAIL_PASSWORD` + +`EMAIL_SENDER` + + |PagerDuty |`https://npmjs.com/package/@pagerduty/backstage-plugin/v/0.15.2[@pagerduty/backstage-plugin]` |0.15.2 |`./dynamic-plugins/dist/pagerduty-backstage-plugin` @@ -221,11 +241,11 @@ Details on how {company-name} provides support for bundled community dynamic plu `PAGERDUTY_SUBDOMAIN` -|Pingidentity |`https://npmjs.com/package/@backstage-community/plugin-catalog-backend-module-pingidentity/v/0.1.4[@backstage-community/plugin-catalog-backend-module-pingidentity]` |0.1.4 +|Pingidentity |`https://npmjs.com/package/@backstage-community/plugin-catalog-backend-module-pingidentity/v/0.1.5[@backstage-community/plugin-catalog-backend-module-pingidentity]` |0.1.5 |`./dynamic-plugins/dist/backstage-community-plugin-catalog-backend-module-pingidentity-dynamic` -|Scaffolder Relation Processor |`https://npmjs.com/package/@backstage-community/plugin-catalog-backend-module-scaffolder-relation-processor/v/2.0.1[@backstage-community/plugin-catalog-backend-module-scaffolder-relation-processor]` |2.0.1 +|Scaffolder Relation Processor |`https://npmjs.com/package/@backstage-community/plugin-catalog-backend-module-scaffolder-relation-processor/v/2.0.2[@backstage-community/plugin-catalog-backend-module-scaffolder-relation-processor]` |2.0.2 |`./dynamic-plugins/dist/backstage-community-plugin-catalog-backend-module-scaffolder-relation-processor-dynamic` @@ -233,7 +253,7 @@ Details on how {company-name} provides support for bundled community dynamic plu |`./dynamic-plugins/dist/roadiehq-backstage-plugin-security-insights` -|ServiceNow |`https://npmjs.com/package/@backstage-community/plugin-scaffolder-backend-module-servicenow/v/2.2.1[@backstage-community/plugin-scaffolder-backend-module-servicenow]` |2.2.1 +|ServiceNow |`https://npmjs.com/package/@backstage-community/plugin-scaffolder-backend-module-servicenow/v/2.2.3[@backstage-community/plugin-scaffolder-backend-module-servicenow]` |2.2.3 |`./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-servicenow-dynamic` `SERVICENOW_BASE_URL` @@ -243,11 +263,15 @@ Details on how {company-name} provides support for bundled community dynamic plu `SERVICENOW_PASSWORD` -|SonarQube |`https://npmjs.com/package/@backstage-community/plugin-sonarqube/v/0.8.5[@backstage-community/plugin-sonarqube]` |0.8.5 +|Signals |`https://npmjs.com/package/@backstage/plugin-signals/v/0.0.11[@backstage/plugin-signals]` |0.0.11 +|`./dynamic-plugins/dist/backstage-plugin-signals` + + +|SonarQube |`https://npmjs.com/package/@backstage-community/plugin-sonarqube/v/0.8.7[@backstage-community/plugin-sonarqube]` |0.8.7 |`./dynamic-plugins/dist/backstage-community-plugin-sonarqube` -|SonarQube |`https://npmjs.com/package/@backstage-community/plugin-sonarqube-backend/v/0.2.25[@backstage-community/plugin-sonarqube-backend]` |0.2.25 +|SonarQube |`https://npmjs.com/package/@backstage-community/plugin-sonarqube-backend/v/0.3.0[@backstage-community/plugin-sonarqube-backend]` |0.3.0 |`./dynamic-plugins/dist/backstage-community-plugin-sonarqube-backend-dynamic` `SONARQUBE_URL` @@ -255,8 +279,8 @@ Details on how {company-name} provides support for bundled community dynamic plu `SONARQUBE_TOKEN` -|SonarQube |`https://npmjs.com/package/@backstage-community/scaffolder-backend-module-sonarqube/v/2.2.2[@backstage-community/scaffolder-backend-module-sonarqube]` |2.2.2 -|`./dynamic-plugins/dist/backstage-community-scaffolder-backend-module-sonarqube-dynamic` +|SonarQube |`https://npmjs.com/package/@backstage-community/plugin-scaffolder-backend-module-sonarqube/v/2.2.2[@backstage-community/plugin-scaffolder-backend-module-sonarqube]` |2.2.2 +|`./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-sonarqube-dynamic` |Tech Radar |`https://npmjs.com/package/@backstage-community/plugin-tech-radar/v/1.0.0[@backstage-community/plugin-tech-radar]` |1.0.0 @@ -269,7 +293,11 @@ Details on how {company-name} provides support for bundled community dynamic plu `TECH_RADAR_DATA_URL` -|Utils |`https://npmjs.com/package/@roadiehq/scaffolder-backend-module-utils/v/2.0.2[@roadiehq/scaffolder-backend-module-utils]` |2.0.2 +|Topology |`https://npmjs.com/package/@backstage-community/plugin-topology/v/1.29.7[@backstage-community/plugin-topology]` |1.29.7 +|`./dynamic-plugins/dist/backstage-community-plugin-topology` + + +|Utils |`https://npmjs.com/package/@roadiehq/scaffolder-backend-module-utils/v/3.0.0[@roadiehq/scaffolder-backend-module-utils]` |3.0.0 |`./dynamic-plugins/dist/roadiehq-scaffolder-backend-module-utils-dynamic` diff --git a/modules/dynamic-plugins/ref-rh-supported-plugins.adoc b/modules/dynamic-plugins/ref-rh-supported-plugins.adoc index 22d7270c79..91f431a794 100644 --- a/modules/dynamic-plugins/ref-rh-supported-plugins.adoc +++ b/modules/dynamic-plugins/ref-rh-supported-plugins.adoc @@ -8,8 +8,8 @@ [%header,cols=4*] |=== |*Name* |*Plugin* |*Version* |*Path and required variables* -|Analytics Provider Segment |`https://npmjs.com/package/@janus-idp/backstage-plugin-analytics-provider-segment/v/1.10.0[@janus-idp/backstage-plugin-analytics-provider-segment]` |1.10.0 -|`./dynamic-plugins/dist/janus-idp-backstage-plugin-analytics-provider-segment` +|Analytics Provider Segment |`https://npmjs.com/package/@backstage-community/plugin-analytics-provider-segment/v/1.10.2[@backstage-community/plugin-analytics-provider-segment]` |1.10.2 +|`./dynamic-plugins/dist/backstage-community-plugin-analytics-provider-segment` `SEGMENT_WRITE_KEY` @@ -50,7 +50,7 @@ `GITHUB_ORG` -|Keycloak |`https://npmjs.com/package/@backstage-community/plugin-catalog-backend-module-keycloak/v/3.2.1[@backstage-community/plugin-catalog-backend-module-keycloak]` |3.2.1 +|Keycloak |`https://npmjs.com/package/@backstage-community/plugin-catalog-backend-module-keycloak/v/3.2.2[@backstage-community/plugin-catalog-backend-module-keycloak]` |3.2.2 |`./dynamic-plugins/dist/backstage-community-plugin-catalog-backend-module-keycloak-dynamic` `KEYCLOAK_BASE_URL` @@ -74,11 +74,11 @@ `K8S_CLUSTER_TOKEN` -|OCM |`https://npmjs.com/package/@backstage-community/plugin-ocm/v/5.2.0[@backstage-community/plugin-ocm]` |5.2.0 +|OCM |`https://npmjs.com/package/@backstage-community/plugin-ocm/v/5.2.4[@backstage-community/plugin-ocm]` |5.2.4 |`./dynamic-plugins/dist/backstage-community-plugin-ocm` -|OCM |`https://npmjs.com/package/@backstage-community/plugin-ocm-backend/v/5.2.2[@backstage-community/plugin-ocm-backend]` |5.2.2 +|OCM |`https://npmjs.com/package/@backstage-community/plugin-ocm-backend/v/5.2.3[@backstage-community/plugin-ocm-backend]` |5.2.3 |`./dynamic-plugins/dist/backstage-community-plugin-ocm-backend-dynamic` `OCM_HUB_NAME` @@ -88,20 +88,24 @@ `OCM_SA_TOKEN` -|Quay |`https://npmjs.com/package/@janus-idp/backstage-plugin-quay/v/1.14.0[@janus-idp/backstage-plugin-quay]` |1.14.0 -|`./dynamic-plugins/dist/janus-idp-backstage-plugin-quay` +|Quay |`https://npmjs.com/package/@backstage-community/plugin-quay/v/1.14.4[@backstage-community/plugin-quay]` |1.14.4 +|`./dynamic-plugins/dist/backstage-community-plugin-quay` -|Quay |`https://npmjs.com/package/@janus-idp/backstage-scaffolder-backend-module-quay/v/2.2.0[@janus-idp/backstage-scaffolder-backend-module-quay]` |2.2.0 -|`./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-quay-dynamic` +|Quay |`https://npmjs.com/package/@backstage-community/plugin-scaffolder-backend-module-quay/v/2.2.2[@backstage-community/plugin-scaffolder-backend-module-quay]` |2.2.2 +|`./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-quay-dynamic` -|RBAC |`https://npmjs.com/package/@janus-idp/backstage-plugin-rbac/v/1.32.0[@janus-idp/backstage-plugin-rbac]` |1.32.0 -|`./dynamic-plugins/dist/janus-idp-backstage-plugin-rbac` +|RBAC |`https://npmjs.com/package/@backstage-community/plugin-rbac/v/1.33.2[@backstage-community/plugin-rbac]` |1.33.2 +|`./dynamic-plugins/dist/backstage-community-plugin-rbac` -|Regex |`https://npmjs.com/package/@janus-idp/backstage-scaffolder-backend-module-regex/v/2.2.0[@janus-idp/backstage-scaffolder-backend-module-regex]` |2.2.0 -|`./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-regex-dynamic` +|Regex |`https://npmjs.com/package/@backstage-community/plugin-scaffolder-backend-module-regex/v/2.2.3[@backstage-community/plugin-scaffolder-backend-module-regex]` |2.2.3 +|`./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-regex-dynamic` + + +|Signals |`https://npmjs.com/package/@backstage/plugin-signals-backend/v/0.2.2[@backstage/plugin-signals-backend]` |0.2.2 +|`./dynamic-plugins/dist/backstage-plugin-signals-backend-dynamic` |TechDocs |`https://npmjs.com/package/@backstage/plugin-techdocs/v/1.11.0[@backstage/plugin-techdocs]` |1.11.0 @@ -112,12 +116,8 @@ |`./dynamic-plugins/dist/backstage-plugin-techdocs-backend-dynamic` -|Tekton |`https://npmjs.com/package/@janus-idp/backstage-plugin-tekton/v/3.15.0[@janus-idp/backstage-plugin-tekton]` |3.15.0 -|`./dynamic-plugins/dist/janus-idp-backstage-plugin-tekton` - - -|Topology |`https://npmjs.com/package/@janus-idp/backstage-plugin-topology/v/1.30.0[@janus-idp/backstage-plugin-topology]` |1.30.0 -|`./dynamic-plugins/dist/janus-idp-backstage-plugin-topology` +|Tekton |`https://npmjs.com/package/@backstage-community/plugin-tekton/v/3.16.2[@backstage-community/plugin-tekton]` |3.16.2 +|`./dynamic-plugins/dist/backstage-community-plugin-tekton` |=== diff --git a/modules/dynamic-plugins/ref-rh-tech-preview-plugins.adoc b/modules/dynamic-plugins/ref-rh-tech-preview-plugins.adoc index 77492d51d0..25156d2602 100644 --- a/modules/dynamic-plugins/ref-rh-tech-preview-plugins.adoc +++ b/modules/dynamic-plugins/ref-rh-tech-preview-plugins.adoc @@ -1,27 +1,4 @@ // This page is generated! Do not edit the .adoc file, but instead run rhdh-supported-plugins.sh to regen this page from the latest plugin metadata. // cd /path/to/rhdh-documentation; ./modules/dynamic-plugins/rhdh-supported-plugins.sh; ./build/scripts/build.sh; google-chrome titles-generated/main/plugin-rhdh/index.html -= {company-name} Technology Preview plugins - -{company-name} provides Technology Preview support for the following 3 plugins: - -[%header,cols=4*] -|=== -|*Name* |*Plugin* |*Version* |*Path and required variables* -|Ansible Automation Platform (AAP) |`https://npmjs.com/package/@janus-idp/backstage-plugin-aap-backend/v/2.2.1[@janus-idp/backstage-plugin-aap-backend]` |2.2.1 -|`./dynamic-plugins/dist/janus-idp-backstage-plugin-aap-backend-dynamic` - -`AAP_BASE_URL` - -`AAP_AUTH_TOKEN` - - -|Bulk Import |`https://npmjs.com/package/@janus-idp/backstage-plugin-bulk-import/v/1.7.1[@janus-idp/backstage-plugin-bulk-import]` |1.7.1 -|`./dynamic-plugins/dist/janus-idp-backstage-plugin-bulk-import` - - -|Bulk Import |`https://npmjs.com/package/@janus-idp/backstage-plugin-bulk-import-backend/v/5.0.1[@janus-idp/backstage-plugin-bulk-import-backend]` |5.0.1 -|`./dynamic-plugins/dist/janus-idp-backstage-plugin-bulk-import-backend-dynamic` - - -|=== +// This page is currently empty. To regenerate, uncomment sections of rhdh-supported-plugins.sh that are disabled as part of RHIDP-5103 \ No newline at end of file diff --git a/modules/dynamic-plugins/rhdh-supported-plugins.csv b/modules/dynamic-plugins/rhdh-supported-plugins.csv index de4936901b..e1bee63a80 100644 --- a/modules/dynamic-plugins/rhdh-supported-plugins.csv +++ b/modules/dynamic-plugins/rhdh-supported-plugins.csv @@ -1,69 +1,72 @@ "Name","Plugin","Role","Version","Support Level","Path","Required Variables","Default" -"Analytics Provider Segment ","@janus-idp/backstage-plugin-analytics-provider-segment","Frontend","1.10.0","Production","./dynamic-plugins/dist/janus-idp-backstage-plugin-analytics-provider-segment","`SEGMENT_WRITE_KEY`;`SEGMENT_TEST_MODE`;","Enabled" +"Analytics Provider Segment ","@backstage-community/plugin-analytics-provider-segment","Frontend","1.10.2","Production","./dynamic-plugins/dist/backstage-community-plugin-analytics-provider-segment","`SEGMENT_WRITE_KEY`;`SEGMENT_TEST_MODE`;","Enabled" "Argo CD ","@roadiehq/backstage-plugin-argo-cd","Frontend","2.8.4","Production","./dynamic-plugins/dist/roadiehq-backstage-plugin-argo-cd",";","Disabled" "Argo CD ","@roadiehq/backstage-plugin-argo-cd-backend","Backend","3.2.3","Production","./dynamic-plugins/dist/roadiehq-backstage-plugin-argo-cd-backend-dynamic","`ARGOCD_USERNAME`;`ARGOCD_PASSWORD`;`ARGOCD_INSTANCE1_URL`;`ARGOCD_AUTH_TOKEN`;`ARGOCD_INSTANCE2_URL`;`ARGOCD_AUTH_TOKEN2`;","Disabled" "GitHub ","@backstage/plugin-catalog-backend-module-github","Backend","0.7.6","Production","./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic","`GITHUB_ORG`;","Disabled" "GitHub Org ","@backstage/plugin-catalog-backend-module-github-org","Backend","0.3.3","Production","./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-org-dynamic","`GITHUB_URL`;`GITHUB_ORG`;","Disabled" -"Keycloak ","@backstage-community/plugin-catalog-backend-module-keycloak","Backend","3.2.1","Production","./dynamic-plugins/dist/backstage-community-plugin-catalog-backend-module-keycloak-dynamic","`KEYCLOAK_BASE_URL`;`KEYCLOAK_LOGIN_REALM`;`KEYCLOAK_REALM`;`KEYCLOAK_CLIENT_ID`;`KEYCLOAK_CLIENT_SECRET`;","Disabled" +"Keycloak ","@backstage-community/plugin-catalog-backend-module-keycloak","Backend","3.2.2","Production","./dynamic-plugins/dist/backstage-community-plugin-catalog-backend-module-keycloak-dynamic","`KEYCLOAK_BASE_URL`;`KEYCLOAK_LOGIN_REALM`;`KEYCLOAK_REALM`;`KEYCLOAK_CLIENT_ID`;`KEYCLOAK_CLIENT_SECRET`;","Disabled" "Kubernetes ","@backstage/plugin-kubernetes-backend","Backend","0.18.7","Production","./dynamic-plugins/dist/backstage-plugin-kubernetes-backend-dynamic","`K8S_CLUSTER_NAME`;`K8S_CLUSTER_URL`;`K8S_CLUSTER_TOKEN`;","Disabled" -"OCM ","@backstage-community/plugin-ocm","Frontend","5.2.0","Production","./dynamic-plugins/dist/backstage-community-plugin-ocm",";","Disabled" -"OCM ","@backstage-community/plugin-ocm-backend","Backend","5.2.2","Production","./dynamic-plugins/dist/backstage-community-plugin-ocm-backend-dynamic","`OCM_HUB_NAME`;`OCM_HUB_URL`;`OCM_SA_TOKEN`;","Disabled" -"Quay ","@janus-idp/backstage-plugin-quay","Frontend","1.14.0","Production","./dynamic-plugins/dist/janus-idp-backstage-plugin-quay",";","Disabled" -"Quay ","@janus-idp/backstage-scaffolder-backend-module-quay","Backend","2.2.0","Production","./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-quay-dynamic",";","Enabled" -"RBAC ","@janus-idp/backstage-plugin-rbac","Frontend","1.32.0","Production","./dynamic-plugins/dist/janus-idp-backstage-plugin-rbac",";","Disabled" -"Regex ","@janus-idp/backstage-scaffolder-backend-module-regex","Backend","2.2.0","Production","./dynamic-plugins/dist/janus-idp-backstage-scaffolder-backend-module-regex-dynamic",";","Enabled" -"Tekton ","@janus-idp/backstage-plugin-tekton","Frontend","3.15.0","Production","./dynamic-plugins/dist/janus-idp-backstage-plugin-tekton",";","Disabled" -"Topology ","@janus-idp/backstage-plugin-topology","Frontend","1.30.0","Production","./dynamic-plugins/dist/janus-idp-backstage-plugin-topology",";","Disabled" +"OCM ","@backstage-community/plugin-ocm","Frontend","5.2.4","Production","./dynamic-plugins/dist/backstage-community-plugin-ocm",";","Disabled" +"OCM ","@backstage-community/plugin-ocm-backend","Backend","5.2.3","Production","./dynamic-plugins/dist/backstage-community-plugin-ocm-backend-dynamic","`OCM_HUB_NAME`;`OCM_HUB_URL`;`OCM_SA_TOKEN`;","Disabled" +"Quay ","@backstage-community/plugin-quay","Frontend","1.14.4","Production","./dynamic-plugins/dist/backstage-community-plugin-quay",";","Disabled" +"Quay ","@backstage-community/plugin-scaffolder-backend-module-quay","Backend","2.2.2","Production","./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-quay-dynamic",";","Enabled" +"RBAC ","@backstage-community/plugin-rbac","Frontend","1.33.2","Production","./dynamic-plugins/dist/backstage-community-plugin-rbac",";","Disabled" +"Regex ","@backstage-community/plugin-scaffolder-backend-module-regex","Backend","2.2.3","Production","./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-regex-dynamic",";","Enabled" +"Signals ","@backstage/plugin-signals-backend","Backend","0.2.2","Production","./dynamic-plugins/dist/backstage-plugin-signals-backend-dynamic",";","Disabled" +"Tekton ","@backstage-community/plugin-tekton","Frontend","3.16.2","Production","./dynamic-plugins/dist/backstage-community-plugin-tekton",";","Disabled" + +"3scale ","@backstage-community/plugin-3scale-backend","Backend","3.0.3","Community Support","./dynamic-plugins/dist/backstage-community-plugin-3scale-backend-dynamic","`THREESCALE_BASE_URL`;`THREESCALE_ACCESS_TOKEN`;","Disabled" "Ansible Automation Platform (AAP) ","@janus-idp/backstage-plugin-aap-backend","Backend","2.2.0","Community Support","./dynamic-plugins/dist/janus-idp-backstage-plugin-aap-backend-dynamic","`AAP_BASE_URL`;`AAP_AUTH_TOKEN`;","Disabled" -"Bulk Import ","@janus-idp/backstage-plugin-bulk-import","Frontend","1.7.0","Community Support","./dynamic-plugins/dist/janus-idp-backstage-plugin-bulk-import",";","Disabled" -"Bulk Import ","@janus-idp/backstage-plugin-bulk-import-backend","Backend","5.0.0","Community Support","./dynamic-plugins/dist/janus-idp-backstage-plugin-bulk-import-backend-dynamic",";","Disabled" -"3scale ","@backstage-community/plugin-3scale-backend","Backend","3.0.1","Community Support","./dynamic-plugins/dist/backstage-community-plugin-3scale-backend-dynamic","`THREESCALE_BASE_URL`;`THREESCALE_ACCESS_TOKEN`;","Disabled" -"Ansible Automation Platform (AAP) ","@janus-idp/backstage-plugin-aap-backend","Backend","2.2.0","Community Support","./dynamic-plugins/dist/janus-idp-backstage-plugin-aap-backend-dynamic","`AAP_BASE_URL`;`AAP_AUTH_TOKEN`;","Disabled" -"ACR ","@backstage-community/plugin-acr","Frontend","1.8.3","Community Support","./dynamic-plugins/dist/backstage-community-plugin-acr",";","Disabled" +"ACR ","@backstage-community/plugin-acr","Frontend","1.8.5","Community Support","./dynamic-plugins/dist/backstage-community-plugin-acr",";","Disabled" "Argo CD ","@roadiehq/scaffolder-backend-argocd","Backend","1.2.0","Community Support","./dynamic-plugins/dist/roadiehq-scaffolder-backend-argocd-dynamic","`ARGOCD_USERNAME`;`ARGOCD_PASSWORD`;`ARGOCD_INSTANCE1_URL`;`ARGOCD_AUTH_TOKEN`;`ARGOCD_INSTANCE2_URL`;`ARGOCD_AUTH_TOKEN2`;","Disabled" -"Argo CD (Red Hat) ","@backstage-community/plugin-redhat-argocd","Frontend","1.8.9","Community Support","./dynamic-plugins/dist/backstage-community-plugin-redhat-argocd",";","Disabled" -"Azure ","@backstage/plugin-scaffolder-backend-module-azure","Backend","0.2.1","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-azure-dynamic",";","Disabled" -"Azure Devops ","@backstage-community/plugin-azure-devops","Frontend","0.6.1","Community Support","./dynamic-plugins/dist/backstage-community-plugin-azure-devops",";","Disabled" -"Azure Devops ","@backstage-community/plugin-azure-devops-backend","Backend","0.7.3","Community Support","./dynamic-plugins/dist/backstage-community-plugin-azure-devops-backend-dynamic","`AZURE_TOKEN`;`AZURE_ORG`;","Disabled" +"Argo CD (Red Hat) ","@backstage-community/plugin-redhat-argocd","Frontend","1.10.4","Community Support","./dynamic-plugins/dist/backstage-community-plugin-redhat-argocd",";","Disabled" +"Azure ","@backstage/plugin-scaffolder-backend-module-azure","Backend","0.2.2","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-azure-dynamic",";","Disabled" +"Azure Devops ","@backstage-community/plugin-azure-devops","Frontend","0.6.2","Community Support","./dynamic-plugins/dist/backstage-community-plugin-azure-devops",";","Disabled" +"Azure Devops ","@backstage-community/plugin-azure-devops-backend","Backend","0.8.0","Community Support","./dynamic-plugins/dist/backstage-community-plugin-azure-devops-backend-dynamic","`AZURE_TOKEN`;`AZURE_ORG`;","Disabled" "Azure Repositories ","@parfuemerie-douglas/scaffolder-backend-module-azure-repositories","Backend","0.3.0","Community Support","./dynamic-plugins/dist/parfuemerie-douglas-scaffolder-backend-module-azure-repositories-dynamic",";","Disabled" "Bitbucket Cloud ","@backstage/plugin-catalog-backend-module-bitbucket-cloud","Backend","0.4.1","Community Support","./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-bitbucket-cloud-dynamic","`BITBUCKET_WORKSPACE`;","Disabled" -"Bitbucket Cloud ","@backstage/plugin-scaffolder-backend-module-bitbucket-cloud","Backend","0.2.1","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-bitbucket-cloud-dynamic",";","Disabled" +"Bitbucket Cloud ","@backstage/plugin-scaffolder-backend-module-bitbucket-cloud","Backend","0.2.2","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-bitbucket-cloud-dynamic",";","Disabled" "Bitbucket Server ","@backstage/plugin-catalog-backend-module-bitbucket-server","Backend","0.2.3","Community Support","./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-bitbucket-server-dynamic","`BITBUCKET_HOST`;","Disabled" -"Bitbucket Server ","@backstage/plugin-scaffolder-backend-module-bitbucket-server","Backend","0.2.1","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-bitbucket-server-dynamic",";","Disabled" -"Bulk Import ","@janus-idp/backstage-plugin-bulk-import","Frontend","1.7.0","Community Support","./dynamic-plugins/dist/janus-idp-backstage-plugin-bulk-import",";","Disabled" -"Bulk Import ","@janus-idp/backstage-plugin-bulk-import-backend","Backend","5.0.0","Community Support","./dynamic-plugins/dist/janus-idp-backstage-plugin-bulk-import-backend-dynamic",";","Disabled" +"Bitbucket Server ","@backstage/plugin-scaffolder-backend-module-bitbucket-server","Backend","0.2.2","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-bitbucket-server-dynamic",";","Disabled" +"Bulk Import ","@red/hat-developer-hub-backstage-plugin-bulk-import","Frontend","1.10.3","Community Support","./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import",";","Disabled" +"Bulk Import ","@red/hat-developer-hub-backstage-plugin-bulk-import-backend","Backend","5.2.0","Community Support","./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import-backend-dynamic",";","Disabled" "Datadog ","@roadiehq/backstage-plugin-datadog","Frontend","2.4.0","Community Support","./dynamic-plugins/dist/roadiehq-backstage-plugin-datadog",";","Disabled" "Dynatrace ","@backstage-community/plugin-dynatrace","Frontend","10.0.8","Community Support","./dynamic-plugins/dist/backstage-community-plugin-dynatrace",";","Disabled" -"Gerrit ","@backstage/plugin-scaffolder-backend-module-gerrit","Backend","0.2.1","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-gerrit-dynamic",";","Disabled" -"GitHub ","@backstage/plugin-scaffolder-backend-module-github","Backend","0.5.1","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-github-dynamic",";","Disabled" -"GitHub Actions ","@backstage-community/plugin-github-actions","Frontend","0.6.23","Community Support","./dynamic-plugins/dist/backstage-community-plugin-github-actions",";","Disabled" +"Gerrit ","@backstage/plugin-scaffolder-backend-module-gerrit","Backend","0.2.2","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-gerrit-dynamic",";","Disabled" +"GitHub ","@backstage/plugin-scaffolder-backend-module-github","Backend","0.5.2","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-github-dynamic",";","Disabled" +"GitHub Actions ","@backstage-community/plugin-github-actions","Frontend","0.6.24","Community Support","./dynamic-plugins/dist/backstage-community-plugin-github-actions",";","Disabled" "GitHub Insights ","@roadiehq/backstage-plugin-github-insights","Frontend","2.5.1","Community Support","./dynamic-plugins/dist/roadiehq-backstage-plugin-github-insights",";","Disabled" -"GitHub Issues ","@backstage-community/plugin-github-issues","Frontend","0.4.7","Community Support","./dynamic-plugins/dist/backstage-community-plugin-github-issues",";","Disabled" +"GitHub Issues ","@backstage-community/plugin-github-issues","Frontend","0.4.8","Community Support","./dynamic-plugins/dist/backstage-community-plugin-github-issues",";","Disabled" "GitHub Pull Requests ","@roadiehq/backstage-plugin-github-pull-requests","Frontend","2.6.0","Community Support","./dynamic-plugins/dist/roadiehq-backstage-plugin-github-pull-requests",";","Disabled" "GitLab ","@immobiliarelabs/backstage-plugin-gitlab","Frontend","6.6.1","Community Support","./dynamic-plugins/dist/immobiliarelabs-backstage-plugin-gitlab",";","Disabled" "GitLab ","@backstage/plugin-catalog-backend-module-gitlab","Backend","0.4.4","Community Support","./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-gitlab-dynamic",";","Disabled" "GitLab ","@immobiliarelabs/backstage-plugin-gitlab-backend","Backend","6.7.0","Community Support","./dynamic-plugins/dist/immobiliarelabs-backstage-plugin-gitlab-backend-dynamic","`GITLAB_HOST`;`GITLAB_TOKEN`;","Disabled" -"GitLab ","@backstage/plugin-scaffolder-backend-module-gitlab","Backend","0.6.0","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-gitlab-dynamic",";","Disabled" +"GitLab ","@backstage/plugin-scaffolder-backend-module-gitlab","Backend","0.6.1","Community Support","./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-gitlab-dynamic",";","Disabled" "GitLab Org ","@backstage/plugin-catalog-backend-module-gitlab-org","Backend","0.2.2","Community Support","./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-gitlab-org-dynamic",";","Disabled" -"Http Request ","@roadiehq/scaffolder-backend-module-http-request","Backend","4.3.5","Community Support","./dynamic-plugins/dist/roadiehq-scaffolder-backend-module-http-request-dynamic",";","Disabled" -"Jenkins ","@backstage-community/plugin-jenkins","Frontend","0.11.1","Community Support","./dynamic-plugins/dist/backstage-community-plugin-jenkins",";","Disabled" +"Http Request ","@roadiehq/scaffolder-backend-module-http-request","Backend","5.0.0","Community Support","./dynamic-plugins/dist/roadiehq-scaffolder-backend-module-http-request-dynamic",";","Disabled" +"Jenkins ","@backstage-community/plugin-jenkins","Frontend","0.12.0","Community Support","./dynamic-plugins/dist/backstage-community-plugin-jenkins",";","Disabled" "Jenkins ","@backstage-community/plugin-jenkins-backend","Backend","0.6.2","Community Support","./dynamic-plugins/dist/backstage-community-plugin-jenkins-backend-dynamic","`JENKINS_URL`;`JENKINS_USERNAME`;`JENKINS_TOKEN`;","Disabled" -"JFrog Artifactory ","@backstage-community/plugin-jfrog-artifactory","Frontend","1.10.0","Community Support","./dynamic-plugins/dist/backstage-community-plugin-jfrog-artifactory",";","Disabled" +"JFrog Artifactory ","@backstage-community/plugin-jfrog-artifactory","Frontend","1.10.2","Community Support","./dynamic-plugins/dist/backstage-community-plugin-jfrog-artifactory",";","Disabled" "Jira ","@roadiehq/backstage-plugin-jira","Frontend","2.8.0","Community Support","./dynamic-plugins/dist/roadiehq-backstage-plugin-jira",";","Disabled" "Kubernetes ","@backstage/plugin-kubernetes","Frontend","0.11.16","Community Support","./dynamic-plugins/dist/backstage-plugin-kubernetes",";","Disabled" "Ldap ","@backstage/plugin-catalog-backend-module-ldap","Backend","0.9.1","Community Support","./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-ldap-dynamic",";","Disabled" "Lighthouse ","@backstage-community/plugin-lighthouse","Frontend","0.4.24","Community Support","./dynamic-plugins/dist/backstage-community-plugin-lighthouse",";","Disabled" "MS Graph ","@backstage/plugin-catalog-backend-module-msgraph","Backend","0.6.3","Community Support","./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-msgraph-dynamic",";","Disabled" -"Nexus Repository Manager ","@backstage-community/plugin-nexus-repository-manager","Frontend","1.10.2","Community Support","./dynamic-plugins/dist/backstage-community-plugin-nexus-repository-manager",";","Disabled" +"Nexus Repository Manager ","@backstage-community/plugin-nexus-repository-manager","Frontend","1.10.6","Community Support","./dynamic-plugins/dist/backstage-community-plugin-nexus-repository-manager",";","Disabled" +"Notifications ","@backstage/plugin-notifications","Frontend","0.3.2","Community Support","./dynamic-plugins/dist/backstage-plugin-notifications",";","Disabled" +"Notifications ","@backstage/plugin-notifications-backend","Backend","0.4.2","Community Support","./dynamic-plugins/dist/backstage-plugin-notifications-backend-dynamic",";","Disabled" +"Notifications Module Email ","@backstage/plugin-notifications-backend-module-email","Backend","0.3.2","Community Support","./dynamic-plugins/dist/backstage-plugin-notifications-backend-module-email-dynamic","`EMAIL_HOSTNAME`;`EMAIL_USERNAME`;`EMAIL_PASSWORD`;`EMAIL_SENDER`;","Disabled" "PagerDuty ","@pagerduty/backstage-plugin","Frontend","0.15.2","Community Support","./dynamic-plugins/dist/pagerduty-backstage-plugin",";","Disabled" "PagerDuty ","@pagerduty/backstage-plugin-backend","Backend","0.9.2","Community Support","./dynamic-plugins/dist/pagerduty-backstage-plugin-backend-dynamic","`PAGERDUTY_API_BASE`;`PAGERDUTY_CLIENT_ID`;`PAGERDUTY_CLIENT_SECRET`;`PAGERDUTY_SUBDOMAIN`;","Disabled" -"Pingidentity ","@backstage-community/plugin-catalog-backend-module-pingidentity","Backend","0.1.4","Community Support","./dynamic-plugins/dist/backstage-community-plugin-catalog-backend-module-pingidentity-dynamic",";","Disabled" -"Scaffolder Relation Processor ","@backstage-community/plugin-catalog-backend-module-scaffolder-relation-processor","Backend","2.0.1","Community Support","./dynamic-plugins/dist/backstage-community-plugin-catalog-backend-module-scaffolder-relation-processor-dynamic",";","Disabled" +"Pingidentity ","@backstage-community/plugin-catalog-backend-module-pingidentity","Backend","0.1.5","Community Support","./dynamic-plugins/dist/backstage-community-plugin-catalog-backend-module-pingidentity-dynamic",";","Disabled" +"Scaffolder Relation Processor ","@backstage-community/plugin-catalog-backend-module-scaffolder-relation-processor","Backend","2.0.2","Community Support","./dynamic-plugins/dist/backstage-community-plugin-catalog-backend-module-scaffolder-relation-processor-dynamic",";","Disabled" "Security Insights ","@roadiehq/backstage-plugin-security-insights","Frontend","2.4.0","Community Support","./dynamic-plugins/dist/roadiehq-backstage-plugin-security-insights",";","Disabled" -"ServiceNow ","@backstage-community/plugin-scaffolder-backend-module-servicenow","Backend","2.2.1","Community Support","./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-servicenow-dynamic","`SERVICENOW_BASE_URL`;`SERVICENOW_USERNAME`;`SERVICENOW_PASSWORD`;","Disabled" -"SonarQube ","@backstage-community/plugin-sonarqube","Frontend","0.8.5","Community Support","./dynamic-plugins/dist/backstage-community-plugin-sonarqube",";","Disabled" -"SonarQube ","@backstage-community/plugin-sonarqube-backend","Backend","0.2.25","Community Support","./dynamic-plugins/dist/backstage-community-plugin-sonarqube-backend-dynamic","`SONARQUBE_URL`;`SONARQUBE_TOKEN`;","Disabled" -"SonarQube ","@backstage-community/scaffolder-backend-module-sonarqube","Backend","2.2.2","Community Support","./dynamic-plugins/dist/backstage-community-scaffolder-backend-module-sonarqube-dynamic",";","Disabled" +"ServiceNow ","@backstage-community/plugin-scaffolder-backend-module-servicenow","Backend","2.2.3","Community Support","./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-servicenow-dynamic","`SERVICENOW_BASE_URL`;`SERVICENOW_USERNAME`;`SERVICENOW_PASSWORD`;","Disabled" +"Signals ","@backstage/plugin-signals","Frontend","0.0.11","Community Support","./dynamic-plugins/dist/backstage-plugin-signals",";","Disabled" +"SonarQube ","@backstage-community/plugin-sonarqube","Frontend","0.8.7","Community Support","./dynamic-plugins/dist/backstage-community-plugin-sonarqube",";","Disabled" +"SonarQube ","@backstage-community/plugin-sonarqube-backend","Backend","0.3.0","Community Support","./dynamic-plugins/dist/backstage-community-plugin-sonarqube-backend-dynamic","`SONARQUBE_URL`;`SONARQUBE_TOKEN`;","Disabled" +"SonarQube ","@backstage-community/plugin-scaffolder-backend-module-sonarqube","Backend","2.2.2","Community Support","./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-sonarqube-dynamic",";","Disabled" "Tech Radar ","@backstage-community/plugin-tech-radar","Frontend","1.0.0","Community Support","./dynamic-plugins/dist/backstage-community-plugin-tech-radar",";","Disabled" "Tech Radar ","@backstage-community/plugin-tech-radar-backend","Backend","1.0.0","Community Support","./dynamic-plugins/dist/backstage-community-plugin-tech-radar-backend-dynamic","`TECH_RADAR_DATA_URL`;","Disabled" -"Utils ","@roadiehq/scaffolder-backend-module-utils","Backend","2.0.2","Community Support","./dynamic-plugins/dist/roadiehq-scaffolder-backend-module-utils-dynamic",";","Disabled" +"Topology ","@backstage-community/plugin-topology","Frontend","1.29.7","Community Support","./dynamic-plugins/dist/backstage-community-plugin-topology",";","Disabled" +"Utils ","@roadiehq/scaffolder-backend-module-utils","Backend","3.0.0","Community Support","./dynamic-plugins/dist/roadiehq-scaffolder-backend-module-utils-dynamic",";","Disabled" diff --git a/modules/dynamic-plugins/rhdh-supported-plugins.sh b/modules/dynamic-plugins/rhdh-supported-plugins.sh index cd71f7a255..7654770515 100755 --- a/modules/dynamic-plugins/rhdh-supported-plugins.sh +++ b/modules/dynamic-plugins/rhdh-supported-plugins.sh @@ -1,18 +1,15 @@ #!/bin/bash # script to generate rhdh-supported-plugins.adoc from content in -# https://github.com/janus-idp/backstage-plugins/tree/main/plugins/ */package.json # https://github.com/janus-idp/backstage-showcase/tree/main/dynamic-plugins/wrappers/ */json SCRIPT_DIR=$(cd "$(dirname "$0")" || exit; pwd) -pluginsRepo="https://github.com/janus-idp/backstage-plugins" # TODO move to BCP and rhdh-plugins showcaseRepo="https://github.com/janus-idp/backstage-showcase" # TODO move to rhd/rhdh usage() { cat </dev/null || exit - git clone "$pluginsRepo" --depth 1 -b "$BRANCH" backstage-plugins - popd >/dev/null || exit -fi - -# TODO switch this to redhat-developer/rhdh +# TODO include backstage/community-plugins and redhat-developer/rhdh-plugins ? +# TODO switch to redhat-developer/red-hat-developer-hub if [[ ! -d /tmp/backstage-showcase ]]; then pushd /tmp >/dev/null || exit git clone "$showcaseRepo" --depth 1 -b "$BRANCH" backstage-showcase @@ -105,8 +96,8 @@ declare -A adoc2 declare -A adoc3 declare -A csv -# process 2 folders of json files -jsons=$(find /tmp/backstage-showcase/dynamic-plugins/wrappers/ /tmp/backstage-plugins/plugins/ -maxdepth 2 -name package.json | sort -V) +# process 1 folders of json files +jsons=$(find /tmp/backstage-showcase/dynamic-plugins/wrappers/ -maxdepth 2 -name package.json | sort -V) c=0 tot=0 for j in $jsons; do @@ -305,9 +296,12 @@ for key in "${sorted[@]}"; do done num_plugins+=(${#adoc1[@]}) +# RHIDP-5103 - currently no tech-preview plugins, only community. So disable this for now rm -f "${0/.sh/.adoc2}" sorted=(); while IFS= read -rd '' key; do sorted+=( "$key" ); done < <(printf '%s\0' "${!adoc2[@]}" | sort -z) -for key in "${sorted[@]}"; do echo -e "${adoc2[$key]}" >> "${0/.sh/.ref-rh-tech-preview-plugins}"; echo -e "${csv[$key]}" >> "${0/.sh/.csv}"; done +for key in "${sorted[@]}"; do + # echo -e "${adoc2[$key]}" >> "${0/.sh/.ref-rh-tech-preview-plugins}"; + echo -e "${csv[$key]}" >> "${0/.sh/.csv}"; done num_plugins+=(${#adoc2[@]}) rm -f "${0/.sh/.adoc3}" @@ -316,16 +310,18 @@ for key in "${sorted[@]}"; do echo -e "${adoc3[$key]}" >> "${0/.sh/.ref-communit num_plugins+=(${#adoc3[@]}) # merge the content from the three .adocX files into the .template.adoc file, replacing the TABLE_CONTENT markers -count=0 -for d in ref-rh-supported-plugins ref-rh-tech-preview-plugins ref-community-plugins; do - this_num_plugins=${num_plugins[$count]} - (( count = count + 1 )) +count=1 +index=0 +for d in ref-rh-supported-plugins ref-community-plugins; do # RHIDP-5103 - remove ref-rh-tech-preview-plugins for now as everything has moved to community + (( index = count - 1 )) + this_num_plugins=${num_plugins[$index]} echo "[$count] Processing $d ..." adocfile="${0/.sh/.${d}}" sed -e "/%%TABLE_CONTENT_${count}%%/{r $adocfile" -e 'd}' \ -e "s/\%\%COUNT_${count}\%\%/$this_num_plugins/" \ "${0/rhdh-supported-plugins.sh/${d}.template.adoc}" > "${0/rhdh-supported-plugins.sh/${d}.adoc}" rm -f "$adocfile" + (( count = count + 2 )) done # inject ENABLED_PLUGINS into con-preinstalled-dynamic-plugins.template.adoc @@ -346,7 +342,7 @@ if [[ -f "${ENABLED_PLUGINS}.errors" ]]; then cat "${ENABLED_PLUGINS}.errors"; f # cleanup rm -f "$ENABLED_PLUGINS" "${ENABLED_PLUGINS}.errors" -# rm -fr /tmp/backstage-plugins /tmp/backstage-showcase +# rm -fr /tmp/backstage-showcase warnings=$(grep -c "WARN" "/tmp/warnings.txt") if [[ $warnings -gt 0 ]]; then From 6ed82fa3fad960bcf30ff3a9aa85e3915c1161d7 Mon Sep 17 00:00:00 2001 From: Jessica He Date: Thu, 5 Dec 2024 08:50:06 -0500 Subject: [PATCH 04/13] RHIDP-4409: update metric monitoring instructions for OCP and AKS (#757) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update metric monitoring instructions for OCP and AKS Signed-off-by: Jessica He * modularized the content --------- Signed-off-by: Jessica He Co-authored-by: Fabrice Flore-Thébault Co-authored-by: Heena Manwani --- .../assembly-monitoring-and-logging-aks.adoc | 15 +++++ .../proc-admin-enabling-metrics-ocp-helm.adoc | 1 + ...c-admin-enabling-metrics-ocp-operator.adoc | 2 +- ...figure-annotations-for-aks-monitoring.adoc | 66 +++++++++++++++++++ .../proc-enabling-azure-monitor-metrics.adoc | 15 +++++ .../proc-rhdh-monitoring-logging-aks.adoc | 54 --------------- modules/observe/proc-view-logs-aks.adoc | 37 +++++++++++ titles/monitoring-and-logging/master.adoc | 2 +- 8 files changed, 136 insertions(+), 56 deletions(-) create mode 100644 assemblies/assembly-monitoring-and-logging-aks.adoc create mode 100644 modules/observe/proc-configure-annotations-for-aks-monitoring.adoc create mode 100644 modules/observe/proc-enabling-azure-monitor-metrics.adoc delete mode 100644 modules/observe/proc-rhdh-monitoring-logging-aks.adoc create mode 100644 modules/observe/proc-view-logs-aks.adoc diff --git a/assemblies/assembly-monitoring-and-logging-aks.adoc b/assemblies/assembly-monitoring-and-logging-aks.adoc new file mode 100644 index 0000000000..50e378e8d7 --- /dev/null +++ b/assemblies/assembly-monitoring-and-logging-aks.adoc @@ -0,0 +1,15 @@ +[id="assembly-monitoring-and-logging-aks"] += Monitoring and logging with Azure Kubernetes Services (AKS) in {product} +:context: assembly-monitoring-and-logging-aks + +Monitoring and logging are integral aspects of managing and maintaining Azure Kubernetes Services (AKS) in {product}. With features like Managed Prometheus Monitoring and Azure Monitor integration, administrators can efficiently monitor resource utilization, diagnose issues, and ensure the reliability of their containerized workloads. + +// Azure monitor metrics +include::modules/observe/proc-enabling-azure-monitor-metrics.adoc[leveloffset=+1] + +// configure annotations +include::modules/observe/proc-configure-annotations-for-aks-monitoring.adoc[leveloffset=+1] + +// view logs +include::modules/observe/proc-view-logs-aks.adoc[leveloffset=+1] + diff --git a/modules/observe/proc-admin-enabling-metrics-ocp-helm.adoc b/modules/observe/proc-admin-enabling-metrics-ocp-helm.adoc index 91d572b74c..eccc3f6f1f 100644 --- a/modules/observe/proc-admin-enabling-metrics-ocp-helm.adoc +++ b/modules/observe/proc-admin-enabling-metrics-ocp-helm.adoc @@ -30,6 +30,7 @@ upstream: serviceMonitor: enabled: true path: /metrics + port: http-metrics # ... ---- + diff --git a/modules/observe/proc-admin-enabling-metrics-ocp-operator.adoc b/modules/observe/proc-admin-enabling-metrics-ocp-operator.adoc index a4283f2036..66c4960062 100644 --- a/modules/observe/proc-admin-enabling-metrics-ocp-operator.adoc +++ b/modules/observe/proc-admin-enabling-metrics-ocp-operator.adoc @@ -38,7 +38,7 @@ spec: matchLabels: rhdh.redhat.com/app: backstage- endpoints: - - port: backend + - port: http-metrics path: '/metrics' ---- <1> Replace `` with the name of your {product} CR. diff --git a/modules/observe/proc-configure-annotations-for-aks-monitoring.adoc b/modules/observe/proc-configure-annotations-for-aks-monitoring.adoc new file mode 100644 index 0000000000..3e5b58fb7a --- /dev/null +++ b/modules/observe/proc-configure-annotations-for-aks-monitoring.adoc @@ -0,0 +1,66 @@ +[id='proc-configure-annotations-for-aks-monitoring_{context}'] += Configuring annotations for monitoring + +You can configure the annotations for monitoring {product} specific metrics in both Helm deployment and Operator-backed deployment. + +Helm deployment:: ++ +-- +To annotate the backstage pod for monitoring, update your `values.yaml` file as follows: + +[source,yaml] +---- +upstream: + backstage: + # --- TRUNCATED --- + podAnnotations: + prometheus.io/scrape: 'true' + prometheus.io/path: '/metrics' + prometheus.io/port: '9464' + prometheus.io/scheme: 'http' +---- +-- + +Operator-backed deployment:: ++ +-- +.Procedure + +. As an administrator of the operator, edit the default configuration to add Prometheus annotations as follows: ++ +[source,bash] +---- +# Update OPERATOR_NS accordingly +OPERATOR_NS=rhdh-operator +kubectl edit configmap backstage-default-config -n "${OPERATOR_NS}" +---- + +. Find the `deployment.yaml` key in the ConfigMap and add the annotations to the `spec.template.metadata.annotations` field as follows: ++ +[source,yaml] +---- +deployment.yaml: |- + apiVersion: apps/v1 + kind: Deployment + # --- truncated --- + spec: + template: + # --- truncated --- + metadata: + labels: + rhdh.redhat.com/app: # placeholder for 'backstage-' + # --- truncated --- + annotations: + prometheus.io/scrape: 'true' + prometheus.io/path: '/metrics' + prometheus.io/port: '9464' + prometheus.io/scheme: 'http' + # --- truncated --- +---- + +. Save your changes. +-- + +.Verification + +To verify if the scraping works, navigate to the corresponding Azure Monitor Workspace and view the metrics under *Monitoring -> Metrics*. \ No newline at end of file diff --git a/modules/observe/proc-enabling-azure-monitor-metrics.adoc b/modules/observe/proc-enabling-azure-monitor-metrics.adoc new file mode 100644 index 0000000000..19185396f3 --- /dev/null +++ b/modules/observe/proc-enabling-azure-monitor-metrics.adoc @@ -0,0 +1,15 @@ +[id='proc-enabling-azure-monitor-metrics_{context}'] += Enabling Azure Monitor metrics + +To enable managed Prometheus monitoring, use the `-enable-azure-monitor-metrics` option within either the `az aks create` or `az aks update` command, depending on whether you're creating a new cluster or updating an existing one, such as: + +[source,bash] +---- +az aks create/update --resource-group --name --enable-azure-monitor-metrics +---- + +The previous command installs the metrics add-on, which gathers https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/prometheus-metrics-overview[Prometheus metrics]. Using the previous command, you can enable monitoring of Azure resources through both native Azure Monitor metrics. You can also view the results in the portal under *Monitoring -> Insights*. For more information, see https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/monitor-azure-resource[Monitor Azure resources with Azure Monitor]. + +Furthermore, metrics from both the Managed Prometheus service and Azure Monitor can be accessed through Azure Managed Grafana service. For more information, see https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/azure-monitor-workspace-manage?tabs=azure-portal#link-a-grafana-workspace[Link a Grafana workspace] section. + +By default, Prometheus uses the minimum ingesting profile, which optimizes ingestion volume and sets default configurations for scrape frequency, targets, and metrics collected. The default settings can be customized through custom configuration. Azure offers various methods, including using different ConfigMaps, to provide scrape configuration and other metric add-on settings. For more information about default configuration, see https://learn.microsoft.com/en-us/azure/azure-monitor/containers/prometheus-metrics-scrape-default[Default Prometheus metrics configuration in Azure Monitor] and https://learn.microsoft.com/en-us/azure/azure-monitor/containers/prometheus-metrics-scrape-configuration?tabs=CRDConfig%2CCRDScrapeConfig[Customize scraping of Prometheus metrics in Azure Monitor managed service for Prometheus] documentation. \ No newline at end of file diff --git a/modules/observe/proc-rhdh-monitoring-logging-aks.adoc b/modules/observe/proc-rhdh-monitoring-logging-aks.adoc deleted file mode 100644 index 83d5bed36f..0000000000 --- a/modules/observe/proc-rhdh-monitoring-logging-aks.adoc +++ /dev/null @@ -1,54 +0,0 @@ -[id='proc-rhdh-monitoring-logging-aks_{context}'] -= Monitoring and logging with Azure Kubernetes Services (AKS) in {product} - -Monitoring and logging are integral aspects of managing and maintaining Azure Kubernetes Services (AKS) in {product}. With features like Managed Prometheus Monitoring and Azure Monitor integration, administrators can efficiently monitor resource utilization, diagnose issues, and ensure the reliability of their containerized workloads. - -To enable Managed Prometheus Monitoring, use the `-enable-azure-monitor-metrics` option within either the `az aks create` or `az aks update` command, depending on whether you're creating a new cluster or updating an existing one, such as: - -[source,bash] ----- -az aks create/update --resource-group --name --enable-azure-monitor-metrics ----- - -The previous command installs the metrics add-on, which gathers https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/prometheus-metrics-overview[Prometheus metrics]. Using the previous command, you can enable monitoring of Azure resources through both native Azure Monitor metrics and Prometheus metrics. You can also view the results in the portal under *Monitoring -> Insights*. For more information, see https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/monitor-azure-resource[Monitor Azure resources with Azure Monitor]. - -Furthermore, metrics from both the Managed Prometheus service and Azure Monitor can be accessed through Azure Managed Grafana service. For more information, see https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/azure-monitor-workspace-manage?tabs=azure-portal#link-a-grafana-workspace[Link a Grafana workspace] section. - -By default, Prometheus uses the minimum ingesting profile, which optimizes ingestion volume and sets default configurations for scrape frequency, targets, and metrics collected. The default settings can be customized through custom configuration. Azure offers various methods, including using different ConfigMaps, to provide scrape configuration and other metric add-on settings. For more information about default configuration, see https://learn.microsoft.com/en-us/azure/azure-monitor/containers/prometheus-metrics-scrape-default[Default Prometheus metrics configuration in Azure Monitor] and https://learn.microsoft.com/en-us/azure/azure-monitor/containers/prometheus-metrics-scrape-configuration?tabs=CRDConfig%2CCRDScrapeConfig[Customize scraping of Prometheus metrics in Azure Monitor managed service for Prometheus] documentation. - -== Viewing logs with Azure Kubernetes Services (AKS) - -You can access live data logs generated by Kubernetes objects and collect log data in Container Insights within AKS. - -.Prerequisites - -* You have deployed {product-short} on {aks-short}. - -For more information, see xref:{installing-on-aks-book-url}#assembly-install-rhdh-aks[{installing-on-aks-book-title}]. - -.Procedure - -View live logs from your {product-short} instance:: -+ --- -. Navigate to the Azure Portal. -. Search for the resource group `` and locate your AKS cluster ``. -. Select *Kubernetes resources -> Workloads* from the menu. -. Select the `-developer-hub` (in case of Helm Chart installation) or `-backstage` (in case of Operator-backed installation) deployment. -. Click *Live Logs* in the left menu. -. Select the pod. -+ -NOTE: There must be only single pod. - -Live log data is collected and displayed. --- - -View real-time log data from the Container Engine:: -+ --- -. Navigate to the Azure Portal. -. Search for the resource group `` and locate your AKS cluster ``. -. Select *Monitoring* -> *Insights* from the menu. -. Go to the *Containers* tab. -. Find the backend-backstage container and click it to view real-time log data as it's generated by the Container Engine. --- diff --git a/modules/observe/proc-view-logs-aks.adoc b/modules/observe/proc-view-logs-aks.adoc new file mode 100644 index 0000000000..e3b2c0186f --- /dev/null +++ b/modules/observe/proc-view-logs-aks.adoc @@ -0,0 +1,37 @@ +[id='proc-view-logs-aks_{context}'] += Viewing logs with Azure Kubernetes Services (AKS) + +You can access live data logs generated by Kubernetes objects and collect log data in Container Insights within AKS. + +.Prerequisites + +* You have deployed {product-short} on {aks-short}. + +For more information, see xref:{installing-on-aks-book-url}#assembly-install-rhdh-aks[{installing-on-aks-book-title}]. + +.Procedure + +View live logs from your {product-short} instance:: ++ +-- +. Navigate to the Azure Portal. +. Search for the resource group `` and locate your AKS cluster ``. +. Select *Kubernetes resources -> Workloads* from the menu. +. Select the `-developer-hub` (in case of Helm Chart installation) or `-backstage` (in case of Operator-backed installation) deployment. +. Click *Live Logs* in the left menu. +. Select the pod. ++ +NOTE: There must be only single pod. + +Live log data is collected and displayed. +-- + +View real-time log data from the Container Engine:: ++ +-- +. Navigate to the Azure Portal. +. Search for the resource group `` and locate your AKS cluster ``. +. Select *Monitoring* -> *Insights* from the menu. +. Go to the *Containers* tab. +. Find the backend-backstage container and click it to view real-time log data as it's generated by the Container Engine. +-- diff --git a/titles/monitoring-and-logging/master.adoc b/titles/monitoring-and-logging/master.adoc index ec5883b36e..9954c0ebf4 100644 --- a/titles/monitoring-and-logging/master.adoc +++ b/titles/monitoring-and-logging/master.adoc @@ -14,5 +14,5 @@ include::assemblies/assembly-rhdh-observability.adoc[leveloffset=+1] include::modules/observe/proc-rhdh-monitoring-logging-aws.adoc[leveloffset=+1] //AKS -include::modules/observe/proc-rhdh-monitoring-logging-aks.adoc[leveloffset=+1] +include::assemblies/assembly-monitoring-and-logging-aks.adoc[leveloffset=+1] From 79ca3c4c0c2c0f7529cab90a34768ecb2d877ef3 Mon Sep 17 00:00:00 2001 From: Priyanka Abel Date: Thu, 5 Dec 2024 19:21:49 +0530 Subject: [PATCH 05/13] added missing article (#741) --- .../proc-customize-rhdh-sidebar-menuitems.adoc | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/modules/customization/proc-customize-rhdh-sidebar-menuitems.adoc b/modules/customization/proc-customize-rhdh-sidebar-menuitems.adoc index 61895a6456..374264522b 100644 --- a/modules/customization/proc-customize-rhdh-sidebar-menuitems.adoc +++ b/modules/customization/proc-customize-rhdh-sidebar-menuitems.adoc @@ -93,7 +93,7 @@ dynamicPlugins: ---- -- -. To ensure that a menu item is identified as a main menu item, you must add `default.` prefix to its key. For example: +. To ensure that a menu item is identified as a main menu item, you must add the `default.` prefix to its key. For example: + -- .Example configuration of main menu items in sidebar navigation @@ -102,13 +102,14 @@ dynamicPlugins: dynamicPlugins: frontend: default.main-menu-items: # key for configuring static main menu items - default.: # key of the menu item configuration. `default.` prefix is required for a main menu item key <1> - parent: my_menu_group # optional, specifies the parent menu item for this item - priority: 10 # optional, specifies the order of this menu item within its menu level - default.: # must be configured if it is specified as the parent of any menu items. `default.` prefix is required for a main menu item key - icon: my_menu_group_icon # required for parent menu items, defines the icon for the menu group - title: my_menu_group_title # required for parent menu items, defines the icon for the menu group - priority: 100 # optional, specifies the order of the parent menu item in the sidebar + menuItems: + default.: # key of the menu item configuration. `default.` prefix is required for a main menu item key <1> + parent: my_menu_group # optional, specifies the parent menu item for this item + priority: 10 # optional, specifies the order of this menu item within its menu level + default.: # must be configured if it is specified as the parent of any menu items. `default.` prefix is required for a main group parent item key <1> + icon: my_menu_group_icon # required for parent menu items, defines the icon for the menu group + title: my_menu_group_title # required for parent menu items, defines the icon for the menu group + priority: 100 # optional, specifies the order of the parent menu item in the sidebar ---- From e2f8c1a15b7d9750f5bfdc70483a29e7c60e5227 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabrice=20Flore-Th=C3=A9bault?= Date: Fri, 6 Dec 2024 12:24:57 +0100 Subject: [PATCH 06/13] chore: fix known issues search string (#774) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fabrice Flore-Thébault --- .../release-notes/single-source-release-notes.jira2asciidoc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/release-notes/single-source-release-notes.jira2asciidoc.yml b/modules/release-notes/single-source-release-notes.jira2asciidoc.yml index b99a7c824c..27035c9d5c 100644 --- a/modules/release-notes/single-source-release-notes.jira2asciidoc.yml +++ b/modules/release-notes/single-source-release-notes.jira2asciidoc.yml @@ -88,7 +88,7 @@ sections: AND "Release Note Status" = "Done" AND level is EMPTY AND "Release Note Type" in ("Known Issue") - AND affectedVersion <= "{version_patch}" + AND affectedVersion in ("{version_patch}") AND (fixVersion > "{version_patch}" OR fixVersion is EMPTY) ORDER BY key DESC template: with-jira-link From ce33b8ebf41ae38dff4ab90f88775bbd05a59634 Mon Sep 17 00:00:00 2001 From: Heena Manwani <59050394+hmanwani-rh@users.noreply.github.com> Date: Mon, 9 Dec 2024 14:14:34 +0530 Subject: [PATCH 07/13] RHIDP-4805: RHBK v24 support for RHDH 1.4 (#767) * RHBK v24 support for RHDH 1.4 * Added note * review suggestions incorporated --- artifacts/attributes.adoc | 2 ++ .../assembly-authenticating-with-rhbk.adoc | 18 +++++++++++ .../assembly-authenticating-with-rhsso.adoc | 13 -------- .../assembly-enabling-authentication.adoc | 2 +- ...rs-from-rhbk-to-the-software-catalog.adoc} | 14 ++++---- ...oc-enabling-authentication-with-rhbk.adoc} | 32 +++++++++---------- ...rs-from-rhbk-to-the-software-catalog.adoc} | 16 +++++----- 7 files changed, 52 insertions(+), 45 deletions(-) create mode 100644 assemblies/assembly-authenticating-with-rhbk.adoc delete mode 100644 assemblies/assembly-authenticating-with-rhsso.adoc rename modules/authentication/{proc-creating-a-custom-transformer-to-provision-users-from-rhsso-to-the-software-catalog.adoc => proc-creating-a-custom-transformer-to-provision-users-from-rhbk-to-the-software-catalog.adoc} (81%) rename modules/authentication/{proc-enabling-authentication-with-rhsso.adoc => proc-enabling-authentication-with-rhbk.adoc} (70%) rename modules/authentication/{proc-provisioning-users-from-rhsso-to-the-software-catalog.adoc => proc-provisioning-users-from-rhbk-to-the-software-catalog.adoc} (79%) diff --git a/artifacts/attributes.adoc b/artifacts/attributes.adoc index d711562489..f0a5abef18 100644 --- a/artifacts/attributes.adoc +++ b/artifacts/attributes.adoc @@ -35,6 +35,8 @@ :openshift-cli: pass:quotes[OpenShift CLI (`oc`)] :rhsso-brand-name: Red Hat Single-Sign On :rhsso: RHSSO +:rhbk-brand-name: Red Hat Build of Keycloak +:rhbk: RHBK // Partner Platforms :aws-brand-name: Amazon Web Services diff --git a/assemblies/assembly-authenticating-with-rhbk.adoc b/assemblies/assembly-authenticating-with-rhbk.adoc new file mode 100644 index 0000000000..fd2439dbda --- /dev/null +++ b/assemblies/assembly-authenticating-with-rhbk.adoc @@ -0,0 +1,18 @@ +[id="assembly-authenticating-with-rhbk"] += Authenticating with {rhbk-brand-name} ({rhbk}) + +[NOTE] +==== +{rhsso} 7.6 is deprecated as an authentication provider. You can continue using {rhsso} until the end of its maintenance support. For more information, see link:https://access.redhat.com/support/policy/updates/jboss_notes#p_sso[{rhsso} lifecycle dates]. As an alternative, consider migrating to {rhbk-brand-name} ({rhbk}). +==== + +To authenticate users with {rhbk-brand-name} ({rhbk}): + +. xref:enabling-authentication-with-rhbk[Enable the OpenID Connect (OIDC) authentication provider in RHDH]. +. xref:provisioning-users-from-rhbk-to-the-software-catalog[Provision users from {rhbk-brand-name} ({rhbk}) to the software catalog]. + +include::modules/authentication/proc-enabling-authentication-with-rhbk.adoc[leveloffset=+1] + +include::modules/authentication/proc-provisioning-users-from-rhbk-to-the-software-catalog.adoc[leveloffset=+1] + +include::modules/authentication/proc-creating-a-custom-transformer-to-provision-users-from-rhbk-to-the-software-catalog.adoc[leveloffset=+1] diff --git a/assemblies/assembly-authenticating-with-rhsso.adoc b/assemblies/assembly-authenticating-with-rhsso.adoc deleted file mode 100644 index d3d5b1c95c..0000000000 --- a/assemblies/assembly-authenticating-with-rhsso.adoc +++ /dev/null @@ -1,13 +0,0 @@ -[id="assembly-authenticating-with-rhsso"] -= Authenticating with Red Hat Single Sign-On (RHSSO) - -To authenticate users with Red Hat Single Sign-On (RHSSO): - -. xref:enabling-authentication-with-rhsso[Enable the OpenID Connect (OIDC) authentication provider in RHDH]. -. xref:provisioning-users-from-rhsso-to-the-software-catalog[Provision users from Red Hat Single-Sign On (RHSSO) to the software catalog]. - -include::modules/authentication/proc-enabling-authentication-with-rhsso.adoc[leveloffset=+1] - -include::modules/authentication/proc-provisioning-users-from-rhsso-to-the-software-catalog.adoc[leveloffset=+1] - -include::modules/authentication/proc-creating-a-custom-transformer-to-provision-users-from-rhsso-to-the-software-catalog.adoc[leveloffset=+1] diff --git a/assemblies/assembly-enabling-authentication.adoc b/assemblies/assembly-enabling-authentication.adoc index 7d5308b51d..d9100a0bde 100644 --- a/assemblies/assembly-enabling-authentication.adoc +++ b/assemblies/assembly-enabling-authentication.adoc @@ -53,7 +53,7 @@ Therefore, deleting users and groups by using {product-short} Web UI or REST API include::assembly-authenticating-with-the-guest-user.adoc[leveloffset=+1] -include::assembly-authenticating-with-rhsso.adoc[leveloffset=+1] +include::assembly-authenticating-with-rhbk.adoc[leveloffset=+1] include::assembly-authenticating-with-github.adoc[leveloffset=+1] diff --git a/modules/authentication/proc-creating-a-custom-transformer-to-provision-users-from-rhsso-to-the-software-catalog.adoc b/modules/authentication/proc-creating-a-custom-transformer-to-provision-users-from-rhbk-to-the-software-catalog.adoc similarity index 81% rename from modules/authentication/proc-creating-a-custom-transformer-to-provision-users-from-rhsso-to-the-software-catalog.adoc rename to modules/authentication/proc-creating-a-custom-transformer-to-provision-users-from-rhbk-to-the-software-catalog.adoc index 802be18d07..272b7d8a91 100644 --- a/modules/authentication/proc-creating-a-custom-transformer-to-provision-users-from-rhsso-to-the-software-catalog.adoc +++ b/modules/authentication/proc-creating-a-custom-transformer-to-provision-users-from-rhbk-to-the-software-catalog.adoc @@ -1,10 +1,10 @@ -[id="creating-a-custom-transformer-to-provision-users-from-rhsso-to-the-software-catalog"] -= Creating a custom transformer to provision users from {rhsso-brand-name} ({rhsso}) to the software catalog +[id="creating-a-custom-transformer-to-provision-users-from-rhbk-to-the-software-catalog"] += Creating a custom transformer to provision users from {rhbk-brand-name} ({rhbk}) to the software catalog -To customize how {rhsso} users and groups are mapped to {product} entities, you can create a backend module that uses the `keycloakTransformerExtensionPoint` to provide custom user and group transformers for the Keycloak backend. +To customize how {rhbk} users and groups are mapped to {product} entities, you can create a backend module that uses the `keycloakTransformerExtensionPoint` to provide custom user and group transformers for the Keycloak backend. .Prerequisites -* You have xref:provisioning-users-from-rhsso-to-the-software-catalog[enabled provisioning users from {rhsso-brand-name} ({rhsso}) to the software catalog]. +* You have xref:provisioning-users-from-rhbk-to-the-software-catalog[enabled provisioning users from {rhbk-brand-name} ({rhbk}) to the software catalog]. .Procedure . Create a new backend module with the `yarn new` command. @@ -85,8 +85,8 @@ Check the console logs to verify that the synchronization is completed. * After the first import is complete, navigate to the *Catalog* page and select **User** to view the list of users. -* When you select a user, you see the information imported from {rhsso}. +* When you select a user, you see the information imported from {rhbk}. -* You can select a group, view the list, and access or review the information imported from {rhsso}. +* You can select a group, view the list, and access or review the information imported from {rhbk}. -* You can log in with an {rhsso} account. +* You can log in with an {rhbk} account. diff --git a/modules/authentication/proc-enabling-authentication-with-rhsso.adoc b/modules/authentication/proc-enabling-authentication-with-rhbk.adoc similarity index 70% rename from modules/authentication/proc-enabling-authentication-with-rhsso.adoc rename to modules/authentication/proc-enabling-authentication-with-rhbk.adoc index 4f8d17d46d..6c104fe1ae 100644 --- a/modules/authentication/proc-enabling-authentication-with-rhsso.adoc +++ b/modules/authentication/proc-enabling-authentication-with-rhbk.adoc @@ -1,21 +1,21 @@ -[id="enabling-authentication-with-rhsso"] -= Enabling authentication with {rhsso-brand-name} ({rhsso}) +[id="enabling-authentication-with-rhbk"] += Enabling authentication with {rhbk-brand-name} ({rhbk}) -To authenticate users with Red Hat Single Sign-On ({rhsso}), enable the OpenID Connect (OIDC) authentication provider in {product}. +To authenticate users with {rhbk-brand-name} ({rhbk}), enable the OpenID Connect (OIDC) authentication provider in {product}. .Prerequisites * You link:https://docs.redhat.com/en/documentation/red_hat_developer_hub/{product-version}/html/administration_guide_for_red_hat_developer_hub/assembly-add-custom-app-file-openshift_admin-rhdh[added a custom {product-short} application configuration], and have sufficient permissions to modify it. -* You have sufficient permissions in {rhsso} to create and manage a realm. +* You have sufficient permissions in {rhbk} to create and manage a realm. .Procedure -. To allow {product-short} to authenticate with {rhsso}, complete the steps in {rhsso}, to link:https://docs.redhat.com/en/documentation/red_hat_single_sign-on/7.6/html-single/getting_started_guide/index#realms-apps_[create a realm and a user] and link:https://docs.redhat.com/en/documentation/red_hat_single_sign-on/7.6/html-single/getting_started_guide/index#registering-app_[register the {product-short} application]: +. To allow {product-short} to authenticate with {rhbk}, complete the steps in {rhbk}, to link:https://docs.redhat.com/en/documentation/red_hat_build_of_keycloak/24.0/html/getting_started_guide/getting-started-zip-#getting-started-zip-create-a-realm[create a realm and a user] and link:https://docs.redhat.com/en/documentation/red_hat_build_of_keycloak/24.0/html/getting_started_guide/getting-started-zip-#getting-started-zip-secure-the-first-application[secure the first application]: -.. Use an existing realm, or link:https://docs.redhat.com/en/documentation/red_hat_single_sign-on/7.6/html-single/getting_started_guide/index#create-realm_[create a realm], with a distinctive **Name** such as ____. +.. Use an existing realm, or link:https://docs.redhat.com/en/documentation/red_hat_build_of_keycloak/24.0/html/getting_started_guide/getting-started-zip-#getting-started-zip-create-a-realm[create a realm], with a distinctive **Name** such as ____. Save the value for the next step: -* **{rhsso} realm base URL**, such as: ____/auth/realms/____. +* **{rhbk} realm base URL**, such as: ____/realms/____. -.. To register your {product-short} in {rhsso}, in the created realm, link:https://docs.redhat.com/en/documentation/red_hat_single_sign-on/7.6/html-single/getting_started_guide/index#registering-app_[create a Client ID], with: +.. To register your {product-short} in {rhbk}, in the created realm, link:https://docs.redhat.com/en/documentation/red_hat_build_of_keycloak/24.0/html-single/getting_started_guide/index#getting-started-zip-secure-the-first-application[secure the first application], with: ... **Client ID**: A distinctive client ID, such as __<{product-very-short}>__. ... **Valid redirect URIs**: Set to the OIDC handler URL: `https://____/api/auth/oidc/handler/frame`. ... Navigate to the **Credentials** tab and copy the **Client secret**. @@ -23,23 +23,23 @@ Save the value for the next step: * **Client ID** * **Client Secret** -.. Configure your {rhsso} realm for performance and security: +.. Configure your {rhbk} realm for performance and security: ... Navigate to the **Configure** > **Realm Settings**. ... Set the **Access Token Lifespan** to a value greater than five minutes (preferably 10 or 15 minutes) to prevent performance issues from frequent refresh token requests for every API call. ... Enable the **Revoke Refresh Token** option to improve security by enabling the refresh token rotation strategy. -.. To prepare for the verification steps, in the same realm, get the credential information for an existing user or link:https://docs.redhat.com/en/documentation/red_hat_single_sign-on/7.6/html-single/getting_started_guide/index#create-user_[create a user]. Save the user credential information for the verification steps. +.. To prepare for the verification steps, in the same realm, get the credential information for an existing user or link:https://docs.redhat.com/en/documentation/red_hat_build_of_keycloak/24.0/html-single/getting_started_guide/index#getting-started-zip-create-a-user[create a user]. Save the user credential information for the verification steps. -. To add your {rhsso} credentials to your {product-short} secrets, edit your {product-short} secrets, such as `secrets-rhdh`, and add the following key/value pairs: +. To add your {rhbk} credentials to your {product-short} secrets, edit your {product-short} secrets, such as `secrets-rhdh`, and add the following key/value pairs: + `AUTH_OIDC_CLIENT_ID`:: Enter the saved **Client ID**. `AUTH_OIDC_CLIENT_SECRET`:: Enter the saved **Client Secret**. -`AUTH_OIDC_METADATA_URL`:: Enter the saved **{rhsso} realm base URL**. +`AUTH_OIDC_METADATA_URL`:: Enter the saved **{rhbk} realm base URL**. -. To set up the {rhsso} authentication provider in your {product-short} custom configuration, edit your custom {product-short} ConfigMap such as `app-config-rhdh`, and add the following lines to the `app-config-rhdh.yaml` content: +. To set up the {rhbk} authentication provider in your {product-short} custom configuration, edit your custom {product-short} ConfigMap such as `app-config-rhdh`, and add the following lines to the `app-config-rhdh.yaml` content: + -- -.`app-config-rhdh.yaml` fragment with mandatory fields to enable authentication with {rhsso} +.`app-config-rhdh.yaml` fragment with mandatory fields to enable authentication with {rhbk} [source,yaml] ---- auth: @@ -90,7 +90,7 @@ dangerouslyAllowSignInWithoutUserInCatalog: true `callbackUrl`:: -- -{rhsso} callback URL. +{rhbk} callback URL. .`app-config-rhdh.yaml` fragment with optional `callbackURL` field [source,yaml] @@ -135,7 +135,7 @@ auth: `scope`:: -- -{rhsso} scope. +{rhbk} scope. .`app-config-rhdh.yaml` fragment with optional `scope` field [source,yaml] diff --git a/modules/authentication/proc-provisioning-users-from-rhsso-to-the-software-catalog.adoc b/modules/authentication/proc-provisioning-users-from-rhbk-to-the-software-catalog.adoc similarity index 79% rename from modules/authentication/proc-provisioning-users-from-rhsso-to-the-software-catalog.adoc rename to modules/authentication/proc-provisioning-users-from-rhbk-to-the-software-catalog.adoc index ca4c10ad08..0dd9cab6c3 100644 --- a/modules/authentication/proc-provisioning-users-from-rhsso-to-the-software-catalog.adoc +++ b/modules/authentication/proc-provisioning-users-from-rhbk-to-the-software-catalog.adoc @@ -1,12 +1,12 @@ -[id="provisioning-users-from-rhsso-to-the-software-catalog"] -= Provisioning users from {rhsso-brand-name} ({rhsso}) to the software catalog +[id="provisioning-users-from-rhbk-to-the-software-catalog"] += Provisioning users from {rhbk-brand-name} ({rhbk}) to the software catalog .Prerequisites -* You xref:enabling-authentication-with-rhsso[enabled authentication with {rhsso}]. +* You xref:enabling-authentication-with-rhbk[enabled authentication with {rhbk}]. .Procedure -* To enable {rhsso} member discovery, edit your custom {product-short} ConfigMap, such as `app-config-rhdh`, and add the following lines to the `app-config-rhdh.yaml` content: +* To enable {rhbk} member discovery, edit your custom {product-short} ConfigMap, such as `app-config-rhdh`, and add the following lines to the `app-config-rhdh.yaml` content: + -- [id=keycloakOrgProviderId] @@ -27,13 +27,13 @@ catalog: Allow authentication only for users present in the {product-short} software catalog. `baseUrl`:: -Your {rhsso} server URL, defined when xref:enabling-authentication-with-rhsso[enabling authentication with {rhsso}]. +Your {rhbk} server URL, defined when xref:enabling-authentication-with-rhbk[enabling authentication with {rhbk}]. `clientId`:: -Your {product-short} application client ID in {rhsso}, defined when xref:enabling-authentication-with-rhsso[enabling authentication with {rhsso}]. +Your {product-short} application client ID in {rhbk}, defined when xref:enabling-authentication-with-rhbk[enabling authentication with {rhbk}]. `clientSecret`:: -Your {product-short} application client secret in {rhsso}, defined when xref:enabling-authentication-with-rhsso[enabling authentication with {rhsso}]. +Your {product-short} application client secret in {rhbk}, defined when xref:enabling-authentication-with-rhbk[enabling authentication with {rhbk}]. Optional: Consider adding the following optional fields: @@ -150,4 +150,4 @@ catalog: {"class":"KeycloakOrgEntityProvider","level":"info","message":"Committed 3 Keycloak users and 2 Keycloak groups in 0.0 seconds.","plugin":"catalog","service":"backstage","taskId":"KeycloakOrgEntityProvider:default:refresh","taskInstanceId":"bf0467ff-8ac4-4702-911c-380270e44dea","timestamp":"2024-09-25 13:58:04"} ---- -. Log in with an {rhsso} account. +. Log in with an {rhbk} account. From 1c6c2c67721fb42660143507fbd8dd66180b3118 Mon Sep 17 00:00:00 2001 From: Heena Manwani <59050394+hmanwani-rh@users.noreply.github.com> Date: Mon, 9 Dec 2024 14:15:37 +0530 Subject: [PATCH 08/13] RHIDP-4572: Updating /metrics port (#735) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Fabrice Flore-Thébault --- modules/observe/proc-rhdh-monitoring-logging-aws.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/observe/proc-rhdh-monitoring-logging-aws.adoc b/modules/observe/proc-rhdh-monitoring-logging-aws.adoc index 2dee4d2303..822688a08e 100644 --- a/modules/observe/proc-rhdh-monitoring-logging-aws.adoc +++ b/modules/observe/proc-rhdh-monitoring-logging-aws.adoc @@ -30,7 +30,7 @@ upstream: podAnnotations: prometheus.io/scrape: 'true' prometheus.io/path: '/metrics' - prometheus.io/port: '7007' + prometheus.io/port: '9464' prometheus.io/scheme: 'http' ---- -- @@ -67,7 +67,7 @@ deployment.yaml: |- annotations: prometheus.io/scrape: 'true' prometheus.io/path: '/metrics' - prometheus.io/port: '7007' + prometheus.io/port: '9464' prometheus.io/scheme: 'http' # --- truncated --- ---- From 8c6eb461b04e5e4b6ff13f05ffbc8099cec54b74 Mon Sep 17 00:00:00 2001 From: Nick Boldt Date: Mon, 9 Dec 2024 05:57:50 -0400 Subject: [PATCH 09/13] chore(installation): remove non-OLM installation doc; add link to OLM quickstart (RHIDP-2707) (RHIDP-3497) (#700) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(installation): remove doc about non-OLM instlalation method; add extra link to OLM quickstart at https://olm.operatorframework.io/docs/getting-started/ (RHIDP-2707) (RHIDP-3497) Signed-off-by: Nick Boldt * Update modules/installation/proc-rhdh-deploy-eks-operator.adoc Co-authored-by: Heena Manwani <59050394+hmanwani-rh@users.noreply.github.com> --------- Signed-off-by: Nick Boldt Co-authored-by: Heena Manwani <59050394+hmanwani-rh@users.noreply.github.com> Co-authored-by: Fabrice Flore-Thébault --- .../proc-rhdh-deploy-eks-operator.adoc | 171 +----------------- 1 file changed, 2 insertions(+), 169 deletions(-) diff --git a/modules/installation/proc-rhdh-deploy-eks-operator.adoc b/modules/installation/proc-rhdh-deploy-eks-operator.adoc index 70e8ffc313..ebd8a7b3d7 100644 --- a/modules/installation/proc-rhdh-deploy-eks-operator.adoc +++ b/modules/installation/proc-rhdh-deploy-eks-operator.adoc @@ -4,7 +4,7 @@ [id='proc-rhdh-deploy-eks-operator_{context}'] = Installing {product-short} on {eks-short} with the Operator -You can install the {product} Operator with or without the Operator Lifecycle Manager (OLM) framework. +The {product} Operator installation requires the Operator Lifecycle Manager (OLM) framework. .Additonal resources * For information about the OLM, see link:https://olm.operatorframework.io/docs/[Operator Lifecycle Manager(OLM)] documentation. @@ -18,7 +18,7 @@ You can install the {product-short} Operator on {eks-short} using the https://ol * 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]. * You have installed `kubectl`. For more information, see https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html[Installing or updating kubectl]. * You have subscribed to `registry.redhat.io`. For more information, see https://access.redhat.com/RegistryAuthentication[{company-name} Container Registry Authentication]. -* 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?] +* You have installed the Operator Lifecycle Manager (OLM). For more information about installation and troubleshooting, see https://olm.operatorframework.io/docs/getting-started/[OLM QuickStart] or https://operatorhub.io/how-to-install-an-operator#How-do-I-get-Operator-Lifecycle-Manager?[How do I get Operator Lifecycle Manager?] .Procedure @@ -196,170 +196,3 @@ kubectl -n rhdh-operator edit configmap backstage-default-config .. Save and exit. + Wait for a few minutes until the changes are automatically applied to the operator pods. - -== Installing the {product-short} Operator without the OLM framework - -.Prerequisites -* You have installed the following commands: -** `git` -** `make` -** `sed` - -.Procedure - -. Clone the Operator repository to your local machine using the following command: -+ --- -[source,terminal] ----- -git clone --depth=1 https://github.com/redhat-developer/rhdh-operator.git rhdh-operator && cd rhdh-operator ----- --- - -. Run the following command and generate the deployment manifest: -+ --- -[source,terminal] ----- -make deployment-manifest ----- - -The previous command generates a file named `rhdh-operator-.yaml`, which is updated manually. --- - -. Run the following command to apply replacements in the generated deployment manifest: -+ --- -[source,terminal] ----- -sed -i "s/backstage-operator/rhdh-operator/g" rhdh-operator-*.yaml -sed -i "s/backstage-system/rhdh-operator/g" rhdh-operator-*.yaml -sed -i "s/backstage-controller-manager/rhdh-controller-manager/g" rhdh-operator-*.yaml ----- --- - -. Open the generated deployment manifest file in an editor and perform the following steps: -.. Locate the `db-statefulset.yaml` string and add the `fsGroup` to its `spec.template.spec.securityContext`, as shown in the following example: -+ --- -[source,yaml] ----- - db-statefulset.yaml: | - apiVersion: apps/v1 - kind: StatefulSet ---- TRUNCATED --- - spec: - --- TRUNCATED --- - restartPolicy: Always - securityContext: - # You can assign any random value as fsGroup - fsGroup: 2000 - serviceAccount: default - serviceAccountName: default ---- TRUNCATED --- ----- --- - -.. Locate the `deployment.yaml` string and add the `fsGroup` to its specification, as shown in the following example: -+ --- -[source,yaml] ----- - deployment.yaml: | - apiVersion: apps/v1 - kind: Deployment ---- TRUNCATED --- - spec: - securityContext: - # You can assign any random value as fsGroup - fsGroup: 3000 - automountServiceAccountToken: false ---- TRUNCATED --- ----- --- - -.. Locate the `service.yaml` string and change the `type` to `NodePort` as follows: -+ --- -[source,yaml] ----- - service.yaml: | - apiVersion: v1 - kind: Service - spec: - # NodePort is required for the ALB to route to the Service - type: NodePort ---- TRUNCATED --- ----- --- - -.. Replace the default images with the images that are pulled from the {company-name} Ecosystem: -+ --- -[source,terminal,subs="attributes+"] ----- -sed -i "s#gcr.io/kubebuilder/kube-rbac-proxy:.*#registry.redhat.io/openshift4/ose-kube-rbac-proxy:v{ocp-version}#g" rhdh-operator-*.yaml - -sed -i "s#(quay.io/janus-idp/operator:.*|quay.io/rhdh-community/operator:.*)#registry.redhat.io/rhdh/rhdh-rhel9-operator:{product-version}#g" rhdh-operator-*.yaml - -sed -i "s#quay.io/janus-idp/backstage-showcase:.*#registry.redhat.io/rhdh/rhdh-hub-rhel9:{product-version}#g" rhdh-operator-*.yaml - -sed -i "s#quay.io/fedora/postgresql-15:.*#registry.redhat.io/rhel9/postgresql-15:latest#g" rhdh-operator-*.yaml ----- --- - -. Add the image pull secret to the manifest in the Deployment resource as follows: -+ --- -[source,yaml] ----- ---- TRUNCATED --- - -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - app.kubernetes.io/component: manager - app.kubernetes.io/created-by: rhdh-operator - app.kubernetes.io/instance: controller-manager - app.kubernetes.io/managed-by: kustomize - app.kubernetes.io/name: deployment - app.kubernetes.io/part-of: rhdh-operator - control-plane: controller-manager - name: rhdh-controller-manager - namespace: rhdh-operator -spec: - replicas: 1 - selector: - matchLabels: - control-plane: controller-manager - template: - metadata: - annotations: - kubectl.kubernetes.io/default-container: manager - labels: - control-plane: controller-manager - spec: - imagePullSecrets: - - name: rhdh-pull-secret ---- TRUNCATED --- ----- --- - -. Apply the manifest to deploy the operator using the following command: -+ --- -[source,terminal] ----- -kubectl apply -f rhdh-operator-VERSION.yaml ----- --- - -. Run the following command to verify that the Operator is running: -+ --- -[source,terminal] ----- -kubectl -n rhdh-operator get pods -w ----- --- From bcbf1c9efd0443224ddaea2e3b78311b04df3c0b Mon Sep 17 00:00:00 2001 From: jmagak Date: Tue, 10 Dec 2024 16:28:12 +0100 Subject: [PATCH 10/13] Add supported keycloak version --- .../keycloak/keycloak-plugin-admin.adoc | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/artifacts/rhdh-plugins-reference/keycloak/keycloak-plugin-admin.adoc b/artifacts/rhdh-plugins-reference/keycloak/keycloak-plugin-admin.adoc index 1c6a5c2632..0694225daa 100644 --- a/artifacts/rhdh-plugins-reference/keycloak/keycloak-plugin-admin.adoc +++ b/artifacts/rhdh-plugins-reference/keycloak/keycloak-plugin-admin.adoc @@ -6,17 +6,22 @@ The Keycloak backend plugin, which integrates Keycloak into {product-short}, has * Synchronization of Keycloak users in a realm. * Synchronization of Keycloak groups and their users in a realm. +[NOTE] +==== +The supported Keycloak version is `18.x`. +==== + == Installation The Keycloak plugin is pre-loaded in {product-short} with basic configuration properties. To enable it, set the `disabled` property to `false` as follows: [source,yaml] ---- -global: - dynamic: - includes: +global: + dynamic: + includes: - dynamic-plugins.default.yaml - plugins: + plugins: - package: ./dynamic-plugins/dist/janus-idp-backstage-plugin-keycloak-backend-dynamic disabled: false ---- @@ -87,7 +92,7 @@ The following table describes the parameters that you can configure to enable th | Name | Description | Default Value | Required | `baseUrl` -| Location of the Keycloak server, such as `pass:c[https://localhost:8443/auth]`. Note that the newer versions of Keycloak omit the `/auth` context path. +| Location of the Keycloak server, such as `pass:c[https://localhost:8443/auth]`. | "" | Yes From 2d50ebbf3761c56907335f7ba5830d4503ac9d58 Mon Sep 17 00:00:00 2001 From: jmagak Date: Tue, 10 Dec 2024 14:04:06 +0100 Subject: [PATCH 11/13] Remove Audit log file rotation in RHDH --- assemblies/assembly-audit-log.adoc | 2 - .../ref-audit-log-file-rotation-overview.adoc | 97 ------------------- 2 files changed, 99 deletions(-) delete mode 100644 modules/observe/ref-audit-log-file-rotation-overview.adoc diff --git a/assemblies/assembly-audit-log.adoc b/assemblies/assembly-audit-log.adoc index 97defd2e19..b6940d3f7b 100644 --- a/assemblies/assembly-audit-log.adoc +++ b/assemblies/assembly-audit-log.adoc @@ -44,5 +44,3 @@ include::modules/observe/ref-audit-log-fields.adoc[leveloffset=+2] include::modules/observe/ref-audit-log-scaffolder-events.adoc[leveloffset=+2] include::modules/observe/ref-audit-log-catalog-events.adoc[leveloffset=+2] - -include::modules/observe/ref-audit-log-file-rotation-overview.adoc[] diff --git a/modules/observe/ref-audit-log-file-rotation-overview.adoc b/modules/observe/ref-audit-log-file-rotation-overview.adoc deleted file mode 100644 index ef6f7a0e80..0000000000 --- a/modules/observe/ref-audit-log-file-rotation-overview.adoc +++ /dev/null @@ -1,97 +0,0 @@ -// Module included in the following assembly: -// assembly-audit-log.adoc - -[id="ref-audit-log-file-rotation-overview_{context}"] -= Audit log file rotation in {product} - -Logging to a rotating file in {product} is helpful for persistent storage of audit logs. - -Persistent storage ensures that the file remains intact even after a pod is restarted. Audit log file rotation creates a new file at regular intervals, with only new data being written to the latest file. - -Default settings:: - -Audit logging to a rotating file is disabled by default. When it is enabled, the default behavior changes to: - -* Rotate logs at midnight (local system timezone). -* Log file format: `redhat-developer-hub-audit-%DATE%.log`. -* Log files are stored in `/var/log/redhat-developer-hub/audit`. -* No automatic log file deletion. -* No gzip compression of archived logs. -* No file size limit. - -Audit logs are written in the `/var/log/redhat-developer-hub/audit` directory. - -Log file names:: - -Audit log file names are in the following format: - -`redhat-developer-hub-audit-%DATE%.log` - -where `%DATE%` is the format specified in `auditLog.rotateFile.dateFormat`. You can customize file names when you configure file rotation. - -File rotation date and frequency:: - -Supported `auditLog.rotateFile.frequency` options include: - -* `daily`: Rotate daily at 00:00 local time -* `Xm`: Rotate every `X` minutes (where X is a number between 0 and 59) -* `Xh`: Rotate every `X` hours (where X is a number between 0 and 23) -* `test`: Rotate every 1 minute -* `custom`: Use `dateFormat` to set the rotation frequency (default if frequency is not specified) - -If `frequency` is set to `Xh`, `Xm` or `test`, the `dateFormat` setting must be configured in a format that includes the specified time component. Otherwise, the rotation might not work as expected. - -For example, use `dateFormat: 'YYYY-MM-DD-HH` for hourly rotation, and `dateFormat: 'YYYY-MM-DD-HH-mm` for minute rotation. - -.Example minute rotation: -[source,yaml] ----- -auditLog: - rotateFile: - # If you want to rotate the file every 17 minutes - dateFormat: 'YYYY-MM-DD-HH-mm' - frequency: '17m' ----- - -The `dateFormat` setting configures both the `%DATE%` in `logFileName` and the file rotation frequency if `frequency` is set to `custom`. The default format is `YYYY-MM-DD`, meaning daily rotation. Supported values are based on link:https://momentjs.com/docs/#/displaying/format/[Moment.js formats]. - -If the `frequency` is set to `custom`, then rotations take place when the date string, which is represented in the specified `dateFormat`, changes. - -Archive and delete:: - -By default, log files are not archived or deleted. - -Enable and configure audit file rotation:: - -If you are an administrator of {product-short}, you can enable file rotation for audit logs, and configure the file log location, name format, frequency, log file size, retention policy, and archiving. - -.Example audit log file rotation configuration -[source,yaml] ----- -auditLog: - rotateFile: - enabled: true <1> - logFileDirPath: /custom-path <2> - logFileName: custom-audit-log-%DATE%.log <3> - frequency: '12h' <4> - dateFormat: 'YYYY-MM-DD' <5> - utc: false <6> - maxSize: 100m <7> - maxFilesOrDays: 14 <8> - zippedArchive: true <9> ----- -<1> Set `enabled` to `true` to use audit log file rotation. By default, it is set to `false`. -<2> Absolute path to the log file. The specified directory is created automatically if it does not exist. -<3> Default log file name format. -<4> If no frequency is specified, then the default file rotation occurs daily at 00:00 local time. -<5> Default date format. -<6> Set `utc` to `true` to use UTC time for `dateFormat` instead of local time. -<7> Sets a maximum file size limit for the audit log. In this example, the maximum size is 100m. -<8> If set to number of files, for example `14`, then it deletes the oldest log when there are more than 14 log files. If set to number of days, for example `5d`, then it deletes logs older than 5 days. -<9> Archive and compress rotated logs using `gzip`. The default value is `false`. - -[NOTE] -==== -* By default, log files are not archived or deleted. If log deletion is enabled, then a `.-audit.json` is generated in the directory where the logs are to track generated logs. Any log file not contained in the directory is not subject to automatic deletion. -* A new `.-audit.json` file is generated each time the backend starts, which causes previous audit logs to stop being tracked or deleted, except for those still in use by the current backend. -==== \ No newline at end of file From 79f5e601599065203d36455a2c135e95f8c255ac Mon Sep 17 00:00:00 2001 From: Gerry-Forde Date: Thu, 12 Dec 2024 11:03:18 +0000 Subject: [PATCH 12/13] RHIDP-4802 - Dynamic plugin: Document how users can add middleware functions to proxy backend --- .../dynamic-plugins/con-overriding-core-backend-services.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/dynamic-plugins/con-overriding-core-backend-services.adoc b/modules/dynamic-plugins/con-overriding-core-backend-services.adoc index f7e6c56f86..233c801d28 100644 --- a/modules/dynamic-plugins/con-overriding-core-backend-services.adoc +++ b/modules/dynamic-plugins/con-overriding-core-backend-services.adoc @@ -1,11 +1,11 @@ [id="overriding-core-backend-services_{context}"] = Overriding Core Backend Service Configuration -The {product} ({product-very-short}) backend platform consists of a number of core services that are well encapsulated. The {product-very-short} backend installs these default core services statically during initialization. +The {product} ({product-very-short}) backend platform consists of a number of core services that are well encapsulated. The {product-very-short} backend installs these default core services statically during initialization. You can configure these core services by customizing the backend source code and rebuilding your {product-short} application. Alternatively, you can customize a core service by installing it as a `BackendFeature` by using dynamic plugin functionality. -To use dynamic plugin functionality to customize a core service in your RHDH application, you must configure the backend to avoid statically installing a given default core service +To use the dynamic plugin functionality to customize a core service in your RHDH application, you must configure the backend to avoid statically installing a given default core service. For example, adding a middleware function to handle all incoming requests can be done by installing a custom `configure` function for the root `HTTP` router backend service which allows access to the underlying Express application. From 60ea98ba3f43ac3c07ffad561387f9dbdcc41f6f Mon Sep 17 00:00:00 2001 From: Gerry-Forde <63045020+Gerry-Forde@users.noreply.github.com> Date: Mon, 16 Dec 2024 16:27:49 +0000 Subject: [PATCH 13/13] RHIDP-4802 - Dynamic plugin: Document how users can add middleware functions to proxy backend --- .../dynamic-plugins/assembly-configuring-rhdh-plugins.adoc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/assemblies/dynamic-plugins/assembly-configuring-rhdh-plugins.adoc b/assemblies/dynamic-plugins/assembly-configuring-rhdh-plugins.adoc index 6c8c5e858e..49584d8df9 100644 --- a/assemblies/dynamic-plugins/assembly-configuring-rhdh-plugins.adoc +++ b/assemblies/dynamic-plugins/assembly-configuring-rhdh-plugins.adoc @@ -23,4 +23,7 @@ include::../modules/dynamic-plugins/proc-topology-configure.adoc[leveloffset=+2] include::../assembly-bulk-importing-from-github.adoc[leveloffset=+1] -include::../assembly-using-servicenow.adoc[leveloffset=+1] \ No newline at end of file +include::../assembly-using-servicenow.adoc[leveloffset=+1] + +// Overriding Core Backend Service Configuration +include::../modules/dynamic-plugins/con-overriding-core-backend-services.adoc[leveloffset=+1]