Skip to content

Instantly share code, notes, and snippets.

@gashcrumb
Last active September 11, 2025 13:12
Show Gist options
  • Select an option

  • Save gashcrumb/09d169a8f4c6e0b0fd7be0a171b642eb to your computer and use it in GitHub Desktop.

Select an option

Save gashcrumb/09d169a8f4c6e0b0fd7be0a171b642eb to your computer and use it in GitHub Desktop.
installing dynamic plugins manually
includes:
- dynamic-plugins.default.yaml
plugins:
- package: oci://quay.io/gashcrumb/simple-chat-plugin-registry:0.2.0!red-hat-developer-hub-backstage-plugin-simple-chat
disabled: false
pluginConfig:
dynamicPlugins:
frontend:
red-hat-developer-hub.backstage-plugin-simple-chat:
appIcons:
- name: chatIcon
importName: ChatIcon
dynamicRoutes:
- path: /simple-chat
importName: SimpleChatPage
menuItem:
text: Simple Chat
icon: chatIcon
- package: oci://quay.io/gashcrumb/simple-chat-plugin-registry:0.2.0!red-hat-developer-hub-backstage-plugin-simple-chat-backend
disabled: false
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import-backend-dynamic
disabled: false
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import
disabled: false
- package: oci://quay.io/gashcrumb/example-root-http-middleware:latest!internal-backstage-plugin-middleware-header-example-dynamic
disabled: false
pluginConfig:
proxy:
endpoints:
/add-test-header:
target: http://${.Values.global.host}/api/simple-chat
credentials: forward
headers:
x-proxy-test-header: hello!
- package: oci://quay.io/gashcrumb/example-root-http-middleware:latest!internal-backstage-plugin-simple-chat
disabled: false
pluginConfig:
dynamicPlugins:
frontend:
internal.backstage-plugin-simple-chat:
appIcons:
- name: chatIcon
importName: ChatIcon
dynamicRoutes:
- path: /simple-chat
importName: SimpleChatPage
menuItem:
text: Simple Chat
- package: oci://quay.io/gashcrumb/example-root-http-middleware:latest!internal-backstage-plugin-simple-chat-backend-dynamic
disabled: false
- package: ./dynamic-plugins/dist/backstage-plugin-scaffolder-backend-module-github-dynamic
disabled: false
- package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-dynamic
disabled: false
pluginConfig:
catalog:
providers:
github:
my-test-org:
organization: janus-qe
catalogPath: '/catalog-info.yaml'
schedule:
frequency:
minutes: 1
timeout:
minutes: 1
initialDelay:
seconds: 15
- package: '@red-hat-developer-hub/[email protected]'
integrity: 'sha512-N3HxvTNe/CxTDtXIsvfre3ZoFLWYfPxz/IJiKY3nzA5C0wcH4lZn+fI+mDFoTUXogt7fZWyl3mCrdwQWrOEM8A=='
pluginConfig:
dynamicPlugins:
frontend:
red-hat-developer-hub.backstage-plugin-application-provider-test:
dynamicRoutes:
- path: /application-provider-test-page
importName: TestPage
mountPoints:
- mountPoint: application/provider
importName: TestProviderOne
- mountPoint: application/provider
importName: TestProviderTwo
- package: '@red-hat-developer-hub/[email protected]'
integrity: 'sha512-GRLbpjXE9ZyfRJr/iyp+1L2sUQL97aPc+FV/IORH63eGT32Uc0xCFBu51fGPYJFmXY49BlSh+CnVnbKNsyiOAQ=='
pluginConfig:
dynamicPlugins:
frontend:
red-hat-developer-hub.backstage-plugin-application-listener-test:
mountPoints:
- mountPoint: application/listener
importName: LocationListener
- package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-github-org-dynamic
disabled: false
- package: ./dynamic-plugins/dist/backstage-community-plugin-github-issues
disabled: false
- package: ./dynamic-plugins/dist/roadiehq-backstage-plugin-github-pull-requests
disabled: false
- package: ./dynamic-plugins/dist/backstage-community-plugin-github-actions
disabled: false
- package: ./dynamic-plugins/dist/backstage-community-plugin-quay
disabled: false
- package: ./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-quay-dynamic
disabled: false
- package: ./dynamic-plugins/dist/backstage-community-plugin-catalog-backend-module-keycloak-dynamic
disabled: false
- package: ./dynamic-plugins/dist/backstage-community-plugin-tekton
disabled: false
- package: ./dynamic-plugins/dist/backstage-plugin-kubernetes
disabled: false
- package: ./dynamic-plugins/dist/backstage-plugin-kubernetes-backend-dynamic
disabled: false
pluginConfig:
kubernetes:
clusterLocatorMethods:
- clusters:
- authProvider: serviceAccount
name: 'my-cluster'
serviceAccountToken: ${K8S_CLUSTER_TOKEN_ENCODED}
url: ${K8S_CLUSTER_API_SERVER_URL}
type: config
customResources:
# Add for tekton
- apiVersion: 'v1'
group: 'tekton.dev'
plural: 'pipelines'
- apiVersion: v1
group: tekton.dev
plural: pipelineruns
- apiVersion: v1
group: tekton.dev
plural: taskruns
# Add for topology plugin
- apiVersion: 'v1'
group: 'route.openshift.io'
plural: 'routes'
serviceLocatorMethod:
type: multiTenant
# Enable OCM plugins.
- package: ./dynamic-plugins/dist/backstage-community-plugin-ocm-backend-dynamic
disabled: false
pluginConfig:
catalog:
providers:
ocm:
default:
name: testCluster # Can be any arbitrary name supported by kubernetes
url: ${OCM_CLUSTER_URL}
serviceAccountToken: ${OCM_CLUSTER_TOKEN}
skipTLSVerify: true
owner: janus-authors
- package: ./dynamic-plugins/dist/backstage-community-plugin-ocm
disabled: false
# Enable bulk import plugins.
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import-backend-dynamic
disabled: false
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-bulk-import
disabled: false
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-global-header
disabled: false
# Enable an extra header test plugin
- package: '@red-hat-developer-hub/[email protected]'
integrity: 'sha512-Dlay4DUAC3SifSJx4dmKDeD07DITGX9ZZ2SMCgcMMc00GJVKToD3DFuPYZ7lV2C2Ve7gWDufCf5NUmqaUWf6GA=='
pluginConfig:
dynamicPlugins:
frontend:
red-hat-developer-hub.backstage-plugin-global-header-test:
mountPoints:
- mountPoint: application/header
importName: TestHeader
config:
position: above-main-content
- mountPoint: global.header/component
importName: TestButton
config:
priority: 95
# Enable notifications plugins.
- package: ./dynamic-plugins/dist/backstage-plugin-notifications
disabled: false
- package: ./dynamic-plugins/dist/backstage-plugin-notifications-backend-dynamic
disabled: false
- package: ./dynamic-plugins/dist/backstage-plugin-signals-backend-dynamic
disabled: false
- package: ./dynamic-plugins/dist/backstage-plugin-signals
disabled: false
# Enable tech-radar plugins.
- package: ./dynamic-plugins/dist/backstage-community-plugin-tech-radar
disabled: false
- package: ./dynamic-plugins/dist/backstage-community-plugin-tech-radar-backend-dynamic
disabled: false
- package: ./dynamic-plugins/dist/backstage-plugin-techdocs-module-addons-contrib
disabled: false
pluginConfig:
dynamicPlugins:
frontend:
backstage.plugin-techdocs-module-addons-contrib:
techdocsAddons:
- importName: ReportIssue
- package: ./dynamic-plugins/dist/backstage-community-plugin-acr
disabled: false
- package: ./dynamic-plugins/dist/backstage-community-plugin-scaffolder-backend-module-kubernetes-dynamic
disabled: false
- package: ./dynamic-plugins/dist/roadiehq-scaffolder-backend-module-http-request-dynamic
disabled: false
- package: ./dynamic-plugins/dist/backstage-community-plugin-catalog-backend-module-scaffolder-relation-processor-dynamic
disabled: false
- package: ./dynamic-plugins/dist/immobiliarelabs-backstage-plugin-gitlab-backend-dynamic
disabled: false
- package: ./dynamic-plugins/dist/backstage-plugin-catalog-backend-module-gitlab-dynamic
disabled: false
- package: ./dynamic-plugins/dist/backstage-community-plugin-topology
disabled: false
- package: '@pataknight/[email protected]'
disabled: false
integrity: sha512-srTnFDYn3Ett6z33bX4nL2NQY8wqux8TkpgBQNsE8S73nMfsor/wAdmVgHL+xW7pxQ09DT4YTdaG3GkH+cyyNQ==
- package: '@backstage-community/[email protected]'
disabled: false
integrity: sha512-agmfwxHkZPy0zaXzjMKY9Us9l7J2og+z7p2lDWQBmlJ1KZRo6OBQdnlG1mTEryfEEl/bx5Ko+f1PhFj2/BmiIQ==
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-catalog-backend-module-marketplace-dynamic
disabled: false
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-marketplace-backend-dynamic
disabled: false
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-marketplace
disabled: false
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-global-floating-action-button
disabled: false
#!/bin/bash
IMAGE=quay.io/rhdh-community/rhdh:pr-3356
podman pull $IMAGE
podman run \
-e NODE_TLS_REJECT_UNAUTHORIZED=0 \
-e NODE_OPTIONS=--no-node-snapshot \
-v ../dynamic-plugins.yaml:/opt/app-root/src/dynamic-plugins.yaml:Z \
-v ./dynamic-plugins-root:/opt/app-root/src/dynamic-plugins-root:Z \
--entrypoint='["python", "install-dynamic-plugins.py", "/opt/app-root/src/dynamic-plugins-root"]' \
${IMAGE}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment