-
Task
-
Resolution: Done
-
Blocker
-
None
-
None
-
False
-
-
False
-
-
Enhancement
-
Done
-
-
-
RHDH Plugins 3277
Task
Ensure marketplace configuration file is persistent and is correctly applied, overriding all other configuration files. It should be used on start up by install_dynamic_plugins init-container to install dynamic plugins.
Background
Extensions plugin can specify installation feature via:
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-catalog-backend-module-marketplace-dynamic disabled: false pluginConfig: extensions: installation: enabled: true saveToSingleFile: file: <marketplace-config.yaml>
This is not the default configuration, defaultly this feature is disabled and it is not enabled for production.
To use in rhdh-local, the configration would be:
- package: ./dynamic-plugins/dist/red-hat-developer-hub-backstage-plugin-catalog-backend-module-marketplace-dynamic disabled: false pluginConfig: extensions: installation: enabled: true saveToSingleFile: file: /opt/app-root/src/configs/dynamic-plugins/dynamic-plugins.override.yaml
One could use this file as includes file:
- dynamic-plugins-rhdh Operator
includes: - dynamic-plugins.default.yaml - dynamic-plugins.marketplace.yaml plugins: []
- Helm
global: dynamic: includes: - dynamic-plugins.default.yaml - dynamic-plugins.marketplace.yaml plugins: []
Or even inside dynamic.plugins.default.yaml to avoid the need for users to redefine their configs (need to check nested includes is supported in install-dynamic-plugins.py)
dynamic-plugins.default.yaml
includes:
- dynamic-plugins.marketplace.yaml
plugins:
... our default configs
This file needs to be available during init-container start up. There should not be any other plugins in dynamic-plugins-rhdh or in global config, because then those can not be overriden by marketplace config.
The marketplace config needs to be stored in the PVC.
- Marketplace backend plugin probably can't be the one to create this file if it doesn't exist, because then we would need to override its config somewhere (because we need to enable installation feature and point to marketplace config file) which results in marketplace-config not having the last word for this specific config and unable to override it.
- Can user manually create it?
- Can it be created in install-dynamic-plugins.py when some environment variable as MARKETPLACE_INSTALLATION_ENABLED is enabled? And therefore e.g dynamic-plugins-rhdh ConfigMap is not needed and we only use marketplace config?
Volume mounts configs:
Setting dynamic-plugins-root as PVC
- Operator
- Helm Chart
Then marketplace file would be:saveToSingleFile: file: /opt/app-root/src/dynamic-plugins-root/<marketplace-config-filename>