이 콘텐츠는 선택한 언어로 제공되지 않습니다.
Installing and viewing plugins in Red Hat Developer Hub
Abstract
Chapter 1. Installing dynamic plugins in Red Hat Developer Hub 링크 복사링크가 클립보드에 복사되었습니다!
The dynamic plugin support is based on the backend plugin manager package, which is a service that scans a configured root directory (dynamicPlugins.rootDirectory in the app-config.yaml file) for dynamic plugin packages and loads them dynamically.
You can use the dynamic plugins that come preinstalled with Red Hat Developer Hub or install external dynamic plugins from a public NPM registry.
1.1. Installing dynamic plugins with the Red Hat Developer Hub Operator 링크 복사링크가 클립보드에 복사되었습니다!
You can store the configuration for dynamic plugins in a ConfigMap object that your Backstage custom resource (CR) can reference.
If the pluginConfig field references environment variables, you must define the variables in your <my_product_secrets> secret.
Procedure
- From the OpenShift Container Platform web console, select the ConfigMaps tab.
- Click Create ConfigMap.
From the Create ConfigMap page, select the YAML view option in Configure via and edit the file, if needed.
Example
ConfigMapobject using the GitHub dynamic pluginCopy to Clipboard Copied! Toggle word wrap Toggle overflow - Click Create.
- Go to the Topology view.
Click on the overflow menu for the Red Hat Developer Hub instance that you want to use and select Edit Backstage to load the YAML view of the Red Hat Developer Hub instance.
Add the
dynamicPluginsConfigMapNamefield to yourBackstageCR. For example:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Click Save.
- Navigate back to the Topology view and wait for the Red Hat Developer Hub pod to start.
- Click the Open URL icon to start using the Red Hat Developer Hub platform with the new configuration changes.
Verification
Ensure that the dynamic plugins configuration has been loaded, by appending
/api/dynamic-plugins-info/loaded-pluginsto your Red Hat Developer Hub root URL and checking the list of plugins:Example list of plugins
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.2. Installing dynamic plugins using the Helm chart 링크 복사링크가 클립보드에 복사되었습니다!
You can deploy a Developer Hub instance using a Helm chart, which is a flexible installation method. With the Helm chart, you can sideload dynamic plugins into your Developer Hub instance without having to recompile your code or rebuild the container.
To install dynamic plugins in Developer Hub using Helm, add the following global.dynamic parameters in your Helm chart:
plugins: the dynamic plugins list intended for installation. By default, the list is empty. You can populate the plugins list with the following fields:-
package: a package specification for the dynamic plugin package that you want to install. You can use a package for either a local or an external dynamic plugin installation. For a local installation, use a path to the local folder containing the dynamic plugin. For an external installation, use a package specification from a public NPM repository. -
integrity(required for external packages): an integrity checksum in the form of<alg>-<digest>specific to the package. Supported algorithms includesha256,sha384andsha512. -
pluginConfig: an optional plugin-specificapp-config.yamlYAML fragment. See plugin configuration for more information. -
disabled: disables the dynamic plugin if set totrue. Default:false.
-
-
includes: a list of YAML files utilizing the same syntax.
The plugins list in the includes file is merged with the plugins list in the main Helm values. If a plugin package is mentioned in both plugins lists, the plugins fields in the main Helm values override the plugins fields in the includes file. The default configuration includes the dynamic-plugins.default.yaml file, which contains all of the dynamic plugins preinstalled in Developer Hub, whether enabled or disabled by default.
1.2.1. Example Helm chart configurations for dynamic plugin installations 링크 복사링크가 클립보드에 복사되었습니다!
The following examples demonstrate how to configure the Helm chart for specific types of dynamic plugin installations.
Configuring a local plugin and an external plugin when the external plugin requires a specific configuration
Disabling a plugin from an included file
Enabling a plugin from an included file
Enabling a plugin that is disabled in an included file
1.3. Installing dynamic plugins in an air-gapped environment 링크 복사링크가 클립보드에 복사되었습니다!
You can install external plugins in an air-gapped environment by setting up a custom NPM registry.
You can configure the NPM registry URL and authentication information for dynamic plugin packages using a Helm chart. For dynamic plugin packages obtained through npm pack, you can use a .npmrc file.
Using the Helm chart, add the .npmrc file to the NPM registry by creating a secret. For example:
- 1
- Replace
<release_name>with your Helm release name. This name is a unique identifier for each chart installation in the Kubernetes cluster.
Chapter 2. Third-party plugins in Red Hat Developer Hub 링크 복사링크가 클립보드에 복사되었습니다!
You can integrate third-party dynamic plugins into Red Hat Developer Hub to enhance its functionality without modifying its source code or rebuilding it. To add these plugins, export them as derived packages.
While exporting the plugin package, you must ensure that dependencies are correctly bundled or marked as shared, depending on their relationship to the Developer Hub environment.
To integrate a third-party plugin into Developer Hub:
- First, obtain the plugin’s source code.
- Export the plugin as a dynamic plugin package. See Section 2.1, “Exporting third-party plugins in Red Hat Developer Hub”.
- Package and publish the dynamic plugin. See Section 2.2, “Packaging and publishing third-party plugins as dynamic plugins”.
- Install the plugin in the Developer Hub environment. See Section 2.3, “Installing third-party plugins in Red Hat Developer Hub”.
2.1. Exporting third-party plugins in Red Hat Developer Hub 링크 복사링크가 클립보드에 복사되었습니다!
To use plugins in Red Hat Developer Hub, you can export plugins as derived dynamic plugin packages. These packages contain the plugin code and dependencies, ready for dynamic plugin integration into Developer Hub.
Prerequisites
-
The
@janus-idp/clipackage is installed. Use the latest version (@latesttag) for compatibility with the most recent features and fixes. - Node.js and NPM is installed and configured.
- The third-party plugin is compatible with your Red Hat Developer Hub version. For more information, see Version compatibility matrix.
The third-party plugin must have a valid
package.jsonfile in its root directory, containing all required metadata and dependencies.- Backend plugins
To ensure compatibility with the dynamic plugin support and enable their use as dynamic plugins, existing backend plugins must be compatible with the new Backstage backend system. Additionally, these plugins must be rebuilt using a dedicated CLI command.
The new Backstage backend system entry point (created using
createBackendPlugin()orcreateBackendModule()) must be exported as the default export from either the main package or analphapackage (if the plugin instance support is still provided usingalphaAPIs). This doesn’t add any additional requirement on top of the standard plugin development guidelines of the plugin instance.The dynamic export mechanism identifies private dependencies and sets the
bundleDependenciesfield in thepackage.jsonfile. This export mechanism ensures that the dynamic plugin package is published as a self-contained package, with its private dependencies bundled in a privatenode_modulesfolder.Certain plugin dependencies require specific handling in the derived packages, such as:
Shared dependencies are provided by the RHDH application and listed as
peerDependenciesinpackage.jsonfile, not bundled in the dynamic plugin package. For example, by default, all@backstagescoped packages are shared.You can use the
--shared-packageflag to specify shared dependencies, that are expected to be provided by Red Hat Developer Hub application and not bundled in the dynamic plugin package.To treat a
@backstagepackage as private, use the negation prefix (!). For example, when a plugin depends on the package in@backstagethat is not provided by the Red Hat Developer Hub application.Embedded dependencies are bundled into the dynamic plugin package with their dependencies hoisted to the top level. By default, packages with
-nodeor-commonsuffixes are embedded.You can use the
--embed-packageflag to specify additional embedded packages. For example, packages from the same workspace that do not follow the default naming convention.The following is an example of exporting a dynamic plugin with shared and embedded packages:
Example dynamic plugin export with shared and embedded packages
npx @janus-idp/cli@latest export-dynamic-plugin --shared-package '!/@backstage/plugin-notifications/' --embed-package @backstage/plugin-notifications-backend
npx @janus-idp/cli@latest export-dynamic-plugin --shared-package '!/@backstage/plugin-notifications/' --embed-package @backstage/plugin-notifications-backendCopy to Clipboard Copied! Toggle word wrap Toggle overflow In the previous example:
-
@backstage/plugin-notificationspackage is treated as a private dependency and is bundled in the dynamic plugin package, despite being in the@backstagescope. -
@backstage/plugin-notifications-backendpackage is marked as an embedded dependency and is bundled in the dynamic plugin package.
- Front-end plugins
Front-end plugins can use
scalprumfor configuration, which the CLI can generate automatically during the export process. The generated default configuration is logged when running the following command:Example command to log the default configuration
npx @janus-idp/cli@latest export-dynamic
npx @janus-idp/cli@latest export-dynamicCopy to Clipboard Copied! Toggle word wrap Toggle overflow The following is an example of default
scalprumconfiguration:Default
scalprumconfigurationCopy to Clipboard Copied! Toggle word wrap Toggle overflow You can add a
scalprumsection to thepackage.jsonfile. For example:Example
scalprumcustomizationCopy to Clipboard Copied! Toggle word wrap Toggle overflow Dynamic plugins might need adjustments for Developer Hub needs, such as static JSX for mountpoints or dynamic routes. These changes are optional but might be incompatible with static plugins.
To include static JSX, define an additional export and use it as the dynamic plugin’s
importName. For example:Example static and dynamic plugin export
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Procedure
Use the
package export-dynamic-plugincommand from the@janus-idp/clipackage to export the plugin:Example command to export a third-party plugin
npx @janus-idp/cli@latest package export-dynamic-plugin
npx @janus-idp/cli@latest package export-dynamic-pluginCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ensure that you execute the previous command in the root directory of the plugin’s JavaScript package (containing
package.jsonfile).The resulting derived package will be located in the
dist-dynamicsubfolder. The exported package name consists of the original plugin name with-dynamicappended.WarningThe derived dynamic plugin JavaScript packages must not be published to the public NPM registry. For more appropriate packaging options, see Section 2.2, “Packaging and publishing third-party plugins as dynamic plugins”. If you must publish to the NPM registry, use a private registry.
2.2. Packaging and publishing third-party plugins as dynamic plugins 링크 복사링크가 클립보드에 복사되었습니다!
After exporting a third-party plugin, you can package the derived package into one of the following supported formats:
- Open Container Initiative (OCI) image (recommended)
- TGZ file
JavaScript package
ImportantExported dynamic plugin packages must only be published to private NPM registries.
2.2.1. Creating an OCI image with dynamic packages 링크 복사링크가 클립보드에 복사되었습니다!
Prerequisites
-
You have installed
podmanordocker. - You have exported a third-party dynamic plugin package. For more information, see Section 2.1, “Exporting third-party plugins in Red Hat Developer Hub”.
Procedure
-
Navigate to the plugin’s root directory (not the
dist-dynamicdirectory). Run the following command to package the plugin into an OCI image:
Example command to package an exported third-party plugin
npx @janus-idp/cli@latest package package-dynamic-plugins --tag quay.io/example/image:v0.0.1
npx @janus-idp/cli@latest package package-dynamic-plugins --tag quay.io/example/image:v0.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow In the previous command, the
--tagargument specifies the image name and tag.Run one of the following commands to push the image to a registry:
Example command to push an image to a registry using podman
podman push quay.io/example/image:v0.0.1
podman push quay.io/example/image:v0.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example command to push an image to a registry using docker
docker push quay.io/example/image:v0.0.1
docker push quay.io/example/image:v0.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow The output of the
package-dynamic-pluginscommand provides the plugin’s path for use in thedynamic-plugin-config.yamlfile.
2.2.2. Creating a TGZ file with dynamic packages 링크 복사링크가 클립보드에 복사되었습니다!
Prerequisites
- You have exported a third-party dynamic plugin package. For more information, see Section 2.1, “Exporting third-party plugins in Red Hat Developer Hub”.
Procedure
-
Navigate to the
dist-dynamicdirectory. Run the following command to create a
tgzarchive:Example command to create a
tgzarchivenpm pack
npm packCopy to Clipboard Copied! Toggle word wrap Toggle overflow You can obtain the integrity hash from the output of the
npm packcommand by using the--jsonflag as follows:Example command to obtain the integrity hash of a
tgzarchivenpm pack --json | head -n 10
npm pack --json | head -n 10Copy to Clipboard Copied! Toggle word wrap Toggle overflow Host the archive on a web server accessible to your RHDH instance, and reference its URL in the
dynamic-plugin-config.yamlfile as follows:Example
dynamic-plugin-config.yamlfileplugins: - package: https://example.com/backstage-plugin-myplugin-1.0.0.tgz integrity: sha512-<hash>plugins: - package: https://example.com/backstage-plugin-myplugin-1.0.0.tgz integrity: sha512-<hash>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Run the following command to package the plugins:
Example command to package a dynamic plugin
npm pack --pack-destination ~/test/dynamic-plugins-root/
npm pack --pack-destination ~/test/dynamic-plugins-root/Copy to Clipboard Copied! Toggle word wrap Toggle overflow TipTo create a plugin registry using HTTP server on OpenShift Container Platform, run the following commands:
Example commands to build and deploy an HTTP server in OpenShift Container Platform
oc project my-rhdh-project oc new-build httpd --name=plugin-registry --binary oc start-build plugin-registry --from-dir=dynamic-plugins-root --wait oc new-app --image-stream=plugin-registry
oc project my-rhdh-project oc new-build httpd --name=plugin-registry --binary oc start-build plugin-registry --from-dir=dynamic-plugins-root --wait oc new-app --image-stream=plugin-registryCopy to Clipboard Copied! Toggle word wrap Toggle overflow Configure your RHDH to use plugins from the HTTP server by editing the
dynamic-plugin-config.yamlfile:Example configuration to use packaged plugins in RHDH
plugins: - package: http://plugin-registry:8080/backstage-plugin-myplugin-1.9.6.tgz
plugins: - package: http://plugin-registry:8080/backstage-plugin-myplugin-1.9.6.tgzCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.3. Creating a JavaScript package with dynamic packages 링크 복사링크가 클립보드에 복사되었습니다!
The derived dynamic plugin JavaScript packages must not be published to the public NPM registry. If you must publish to the NPM registry, use a private registry.
Prerequisites
- You have exported a third-party dynamic plugin package. For more information, see Section 2.1, “Exporting third-party plugins in Red Hat Developer Hub”.
Procedure
-
Navigate to the
dist-dynamicdirectory. Run the following command to publish the package to your private NPM registry:
Example command to publish a plugin package to an NPM registry
npm publish --registry <npm_registry_url>
npm publish --registry <npm_registry_url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow TipYou can add the following to your
package.jsonfile before running theexportcommand:Example
package.jsonfile{ "publishConfig": { "registry": "<npm_registry_url>" } }{ "publishConfig": { "registry": "<npm_registry_url>" } }Copy to Clipboard Copied! Toggle word wrap Toggle overflow If you modify
publishConfigafter exporting the dynamic plugin, re-run theexport-dynamic-plugincommand to ensure the correct configuration is included.
2.3. Installing third-party plugins in Red Hat Developer Hub 링크 복사링크가 클립보드에 복사되었습니다!
You can install a third-party plugins in Red Hat Developer Hub without rebuilding the RHDH application.
The location of the dynamic-plugin-config.yaml file depends on the deployment method. For more details, refer to Installing dynamic plugins with the Red Hat Developer Hub Operator and Installing dynamic plugins using the Helm chart.
Plugins are defined in the plugins array within the dynamic-plugin-config.yaml file. Each plugin is represented as an object with the following properties:
-
package: The plugin’s package definition, which can be an OCI image, a TGZ file, a JavaScript package, or a directory path. -
disabled: A boolean value indicating whether the plugin is enabled or disabled. -
integrity: The integrity hash of the package, required for TGZ file and JavaScript packages. -
pluginConfig: The plugin’s configuration. For backend plugins, this is optional; for frontend plugins, it is required. ThepluginConfigis a fragment of theapp-config.yamlfile, and any added properties are merged with the RHDHapp-config.yamlfile.
You can also load dynamic plugins from another directory, though this is intended for development or testing purposes and is not recommended for production, except for plugins included in the RHDH container image. For more information, see Chapter 3, Enabling plugins added in the RHDH container image.
2.3.1. Loading a plugin packaged as an OCI image 링크 복사링크가 클립보드에 복사되었습니다!
Prerequisites
The third-party plugin is packaged as a dynamic plugin in an OCI image.
For more information about packaging a third-party plugin, see Section 2.2, “Packaging and publishing third-party plugins as dynamic plugins”.
Procedure
Define the plugin with the
oci://prefix in the following format indynamic-plugins.yamlfile:oci://<image-name>:<tag>!<plugin-name>Example configuration in
dynamic-plugins.yamlfileplugins: - disabled: false package: oci://quay.io/example/image:v0.0.1!backstage-plugin-mypluginplugins: - disabled: false package: oci://quay.io/example/image:v0.0.1!backstage-plugin-mypluginCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
Configure authentication for private registries by setting the
REGISTRY_AUTH_FILEenvironment variable to the path of the registry configuration file. For example,~/.config/containers/auth.jsonor~/.docker/config.json. To perform an integrity check, use the image digest in place of the tag in the
dynamic-plugins.yamlfile as follows:Example configuration in
dynamic-plugins.yamlfileplugins: - disabled: false package: oci://quay.io/example/image@sha256:28036abec4dffc714394e4ee433f16a59493db8017795049c831be41c02eb5dc!backstage-plugin-mypluginplugins: - disabled: false package: oci://quay.io/example/image@sha256:28036abec4dffc714394e4ee433f16a59493db8017795049c831be41c02eb5dc!backstage-plugin-mypluginCopy to Clipboard Copied! Toggle word wrap Toggle overflow - To apply the changes, restart the RHDH application.
2.3.2. Loading a plugin packaged as a TGZ file 링크 복사링크가 클립보드에 복사되었습니다!
Prerequisites
The third-party plugin is packaged as a dynamic plugin in a TGZ file.
For more information about packaging a third-party plugin, see Section 2.2, “Packaging and publishing third-party plugins as dynamic plugins”.
Procedure
Specify the archive URL and its integrity hash in the
dynamic-plugins.yamlfile using the following example:Example configuration in
dynamic-plugins.yamlfileplugins: - disabled: false package: https://example.com/backstage-plugin-myplugin-1.0.0.tgz integrity: sha512-9WlbgEdadJNeQxdn1973r5E4kNFvnT9GjLD627GWgrhCaxjCmxqdNW08cj+Bf47mwAtZMt1Ttyo+ZhDRDj9PoA==plugins: - disabled: false package: https://example.com/backstage-plugin-myplugin-1.0.0.tgz integrity: sha512-9WlbgEdadJNeQxdn1973r5E4kNFvnT9GjLD627GWgrhCaxjCmxqdNW08cj+Bf47mwAtZMt1Ttyo+ZhDRDj9PoA==Copy to Clipboard Copied! Toggle word wrap Toggle overflow - To apply the changes, restart the RHDH application.
2.3.3. Loading a plugin packaged as a JavaScript package 링크 복사링크가 클립보드에 복사되었습니다!
Prerequisites
The third-party plugin is packaged as a dynamic plugin in a JavaScript package.
For more information about packaging a third-party plugin, see Section 2.2, “Packaging and publishing third-party plugins as dynamic plugins”.
Procedure
Run the following command to obtain the integrity hash from the NPM registry:
npm view --registry <registry-url> <npm package>@<version> dist.integrity
npm view --registry <registry-url> <npm package>@<version> dist.integrityCopy to Clipboard Copied! Toggle word wrap Toggle overflow Specify the package name, version, and its integrity hash in the
dynamic-plugins.yamlfile as follows:Example configuration in
dynamic-plugins.yamlfileplugins: - disabled: false package: @example/backstage-plugin-myplugin@1.0.0 integrity: sha512-9WlbgEdadJNeQxdn1973r5E4kNFvnT9GjLD627GWgrhCaxjCmxqdNW08cj+Bf47mwAtZMt1Ttyo+ZhDRDj9PoA==plugins: - disabled: false package: @example/backstage-plugin-myplugin@1.0.0 integrity: sha512-9WlbgEdadJNeQxdn1973r5E4kNFvnT9GjLD627GWgrhCaxjCmxqdNW08cj+Bf47mwAtZMt1Ttyo+ZhDRDj9PoA==Copy to Clipboard Copied! Toggle word wrap Toggle overflow If you are using a custom NPM registry, create a
.npmrcfile with the registry URL and authentication details:Example code for
.npmrcfileregistry=<registry-url> //<registry-url>:_authToken=<auth-token>
registry=<registry-url> //<registry-url>:_authToken=<auth-token>Copy to Clipboard Copied! Toggle word wrap Toggle overflow When using OpenShift Container Platform or Kubernetes:
Use the Helm chart to add the
.npmrcfile by creating a secret. For example:Example secret configuration
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Replace
<release_name>with your Helm release name. This name is a unique identifier for each chart installation in the Kubernetes cluster.
For RHDH Helm chart, name the secret using the following format for automatic mounting:
<release_name>-dynamic-plugins-npmrc
- To apply the changes, restart the RHDH application.
2.3.4. Example of installing a third-party plugin in Red Hat Developer Hub 링크 복사링크가 클립보드에 복사되었습니다!
This section describes the process for integrating the Todo plugin into your Developer Hub.
Obtain the third-party plugin source code: Clone the plugins repository and navigate to the Todo plugin directory:
Obtain the third-party plugin source code
git clone https://github.com/backstage/community-plugins cd community-plugins/workspaces/todo yarn install
$ git clone https://github.com/backstage/community-plugins $ cd community-plugins/workspaces/todo $ yarn installCopy to Clipboard Copied! Toggle word wrap Toggle overflow Export backend and front-end plugins: Run the following commands to build the backend plugin, adjust package dependencies for dynamic loading, and generate self-contained configuration schema:
Export the backend plugin
cd todo-backend npx @janus-idp/cli@latest package export-dynamic-plugin
$ cd todo-backend $ npx @janus-idp/cli@latest package export-dynamic-pluginCopy to Clipboard Copied! Toggle word wrap Toggle overflow Output of exporting the backend plugin commands
Copy to Clipboard Copied! Toggle word wrap Toggle overflow You can run the following commands to set default dynamic UI configurations, create front-end plugin assets, and to generate a configuration schema for a front-end plugin:
Export the front-end plugin
cd ../todo npx @janus-idp/cli@latest package export-dynamic-plugin
$ cd ../todo $ npx @janus-idp/cli@latest package export-dynamic-pluginCopy to Clipboard Copied! Toggle word wrap Toggle overflow Output of exporting the front-end plugin commands
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Package and publish a third-party plugin: Run the following commands to navigate to the workspace directory and package the dynamic plugin to build the OCI image:
Build an OCI image
cd ../.. npx @janus-idp/cli@latest package package-dynamic-plugins --tag quay.io/user/backstage-community-plugin-todo:v0.1.1
$ cd ../.. $ npx @janus-idp/cli@latest package package-dynamic-plugins --tag quay.io/user/backstage-community-plugin-todo:v0.1.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Output of building an OCI image commands
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Push the OCI image to a container registry:
podman push quay.io/user/backstage-community-plugin-todo:v0.1.1
$ podman push quay.io/user/backstage-community-plugin-todo:v0.1.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow Output of pushing the OCI image command
Getting image source signatures Copying blob sha256:86a372c456ae6a7a305cd464d194aaf03660932efd53691998ab3403f87cacb5 Copying config sha256:3b7f074856ecfbba95a77fa87cfad341e8a30c7069447de8144aea0edfcb603e Writing manifest to image destination
Getting image source signatures Copying blob sha256:86a372c456ae6a7a305cd464d194aaf03660932efd53691998ab3403f87cacb5 Copying config sha256:3b7f074856ecfbba95a77fa87cfad341e8a30c7069447de8144aea0edfcb603e Writing manifest to image destinationCopy to Clipboard Copied! Toggle word wrap Toggle overflow Install and configure the third-party plugin: Add the following plugin definitions to your
dynamic-plugins.yamlfile:Plugin definitions in
dynamic-plugins.yamlfileCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Chapter 3. Enabling plugins added in the RHDH container image 링크 복사링크가 클립보드에 복사되었습니다!
In the RHDH container image, a set of dynamic plugins is preloaded to enhance functionality. However, due to mandatory configuration requirements, most of the plugins are disabled.
You can enable and configure the plugins in the RHDH container image, including how to manage the default configuration, set necessary environment variables, and ensure the proper functionality of the plugins within your application.
Prerequisites
-
You have access to the
dynamic-plugins.default.yamlfile, which lists all preloaded plugins and their default configuration. -
You have deployed the RHDH application, and have access to the logs of the
install-dynamic-pluginsinit container. - You have the necessary permissions to modify plugin configurations and access the application environment.
- You have identified and set the required environment variables referenced by the plugin’s default configuration. These environment variables must be defined in the Helm Chart or Operator configuration.
Procedure
-
Start your RHDH application and access the logs of the
install-dynamic-pluginsinit container within the RHDH pod. - Identify the Red Hat supported plugins that are disabled by default.
-
Copy the package configuration from the
dynamic-plugins.default.yamlfile. Open the plugin configuration file and locate the plugin entry you want to enable.
The location of the plugin configuration file varies based on the deployment method. For more details, see Installing dynamic plugins with the Red Hat Developer Hub Operator and Installing dynamic plugins using the Helm chart.
Modify the
disabledfield tofalseand add the package name as follows:Example plugin configuration
plugins: - disabled: false package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamicplugins: - disabled: false package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamicCopy to Clipboard Copied! Toggle word wrap Toggle overflow For more information about how to configure dynamic plugins in Developer Hub, see Installing dynamic plugins in Red Hat Developer Hub.
Verification
- Restart the RHDH application and verify that the plugin is successfully activated and configured.
- Verify the application logs for confirmation and ensure the plugin is functioning as expected.
Chapter 4. Viewing installed plugins 링크 복사링크가 클립보드에 복사되었습니다!
Using the Dynamic Plugins Info front-end plugin, you can view plugins that are currently installed in your Red Hat Developer Hub application. This plugin is enabled by default.
Procedure
- Open your Developer Hub application and click Administration.
- Go to the Plugins tab to view a list of installed plugins and related information.