backstage-showcase
backstage-showcase copied to clipboard
[WIP] add install method of plugin from container registry
Description
Adds support for loading plugins packaged inside OCI images.
Rework of #1469
Instead of the oras python library, which does not work out of the box with ghcr or docker registries (due to authentication and requesting temporary tokens for auth), this PR uses skopeo
The image is downloaded only once, even if it contains multiple plugins. We're still assuming there's only one layer in the image and only inspect the first layer.
config example
plugins:
- disabled: false
package: >-
oci://quay.io/tkral/simple-chat:v0.0.1!internal-backstage-plugin-simple-chat-backend-dynamic
- disabled: false
package: >-
oci://quay.io/tkral/simple-chat:v0.0.1!internal-backstage-plugin-simple-chat
pluginConfig:
dynamicPlugins:
frontend:
internal.backstage-plugin-simple-chat:
appIcons:
- importName: ChatIcon
name: chatIcon
dynamicRoutes:
- importName: SimpleChatPage
menuItem:
icon: chatIcon
text: Simple Chat
path: /simple-chat
PR acceptance criteria
Please make sure that the following steps are complete:
- [ ] GitHub Actions are completed and successful
- [ ] Unit Tests are updated and passing
- [ ] E2E Tests are updated and passing
- [ ] Documentation is updated if necessary (requirement for new features)
- [ ] Add a screenshot if the change is UX/UI related
Signed-off-by: Marcel Hild [email protected]