Bug 1973565
| Summary: | Dynamic plugin routes should be evaluated before static plugin routes | |||
|---|---|---|---|---|
| Product: | OpenShift Container Platform | Reporter: | Rastislav Wagner <rawagner> | |
| Component: | Management Console | Assignee: | Rastislav Wagner <rawagner> | |
| Status: | CLOSED ERRATA | QA Contact: | Yadan Pei <yapei> | |
| Severity: | medium | Docs Contact: | ||
| Priority: | unspecified | |||
| Version: | 4.8 | CC: | aos-bugs, jhadvig, jokerman, spadgett, yanpzhan, yapei | |
| Target Milestone: | --- | |||
| Target Release: | 4.9.0 | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | Doc Type: | No Doc Update | ||
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 1985193 (view as bug list) | Environment: | ||
| Last Closed: | 2021-10-18 17:35:34 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 1985193 | |||
|
Description
Rastislav Wagner
2021-06-18 07:49:25 UTC
1. Build a dynamic plugin who has defined create resource extension via two steps
- Add following code into frontend/dynamic-demo-plugin/console-extensions.json
{
"type": "console.resource/create",
"properties": {
"model": {
"group": "operator.tekton.dev",
"version": "v1alpha1",
"kind": "TektonConfig"
},
"component": { "$codeRef": "fooComp" }
}
}
- Add reference code into exposedModules of frontend/dynamic-demo-plugin/package.json
/**
* This file declares all extensions contributed by the plugin.
*
* Depending on extension 'type', the 'properties' object may contain code references, encoded
* as object literals { $codeRef: string }. The '$codeRef' value should be formatted as either
* 'moduleName.exportName' (referring to a named export) or 'moduleName' (referring to the
* 'default' export). Only the plugin's exposed modules may be used in code references.
*/
[
{
"type": "console.flag",
"properties": {
"handler": { "$codeRef": "barUtils.testHandler" }
}
},
{
"type": "console.flag/model",
"properties": {
"flag": "EXAMPLE",
"model": {
"group": "kubevirt.io",
"version": "v1alpha3",
"kind": "ExampleModel"
}
}
},
{
"type": "console.telemetry/listener",
"properties": {
"listener": {
"$codeRef": "telemetry.eventListener"
}
}
},
{
"type": "console.page/route",
"properties": {
"path": "/test-consumer",
"component": { "$codeRef": "extensionConsumer.default" }
}
},
{
"type": "console.resource/create",
"properties": {
"model": {
"group": "monitoring.coreos.com",
"version": "v1",
"kind": "PrometheusRule"
},
"component": { "$codeRef": "fooComp" }
}
}
]
$ jq .consolePlugin.exposedModules package.json
{
"barUtils": "./utils/bar",
"telemetry": "./utils/telemetry",
"extensionConsumer": "./components/ExtensionConsumer.tsx",
"fooComp": "./components/Foo.tsx"
}
2. Build dynamic plugin image with command `docker build -f Dockerfile.plugins.demo -t quay.io/yapei/console-demo-plugin:createresoure .`
3. update the referenced image to quay.io/yapei/console-demo-plugin:createresoure in oc-manifest.yaml and deploy plugin manifests to the cluster
$ oc apply -f oc-manifest.yaml
namespace/console-demo-plugin created
deployment.apps/console-demo-plugin created
service/console-demo-plugin created
4. Make sure plugin is running successfully and enable it in console config
$ oc get console.operator cluster -o json | jq .spec.plugins
[
"console-demo-plugin"
]
5. Install Prometheus Operator into one project, try to create a new PrometheusRule resource via Operators -> Installed Operators -> Prometheus Operator -> Prometheus Rule -> click on 'Create PrometheusRule' button, we can see the customized component loaded, it shows "Hello Component!"
6. Goes to /api-resource/ns/default/monitoring.coreos.com~v1~PrometheusRule page, click on 'Instance' tab, click on 'Create PrometheusRule' button, it shows 'Hello Component!' which is the message defined in customized component
Verified on 4.9.0-0.nightly-2021-07-29-103526
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (Moderate: OpenShift Container Platform 4.9.0 bug fix and security update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2021:3759 |