Skip to content

Conversation

@rrosatti
Copy link

Description

hey there! I'm adding the new Konflux workspace to this repository.

The automated bot didn't see it yet probably because it was just published to NPM today, so I am setting it up manually to speed things up.

I'm able to see the packages when I search them in npm:

The build that finished earlier publishing to npm: https://github.com/redhat-developer/rhdh-plugins/actions/runs/21434209291/job/61721047494

note on Draft status:

I am keeping this as a Draft for now to see if the automated discovery workflow creates a PR by tomorrow morning. If the automation doesn't trigger, I will finish setting this up manually and mark it as "Ready for review" ☕

Add konflux workspace.
@sonarqubecloud
Copy link

@github-actions github-actions bot added the workspace-addition PR adds a new workspace label Jan 29, 2026
- cicd
spec:
packageName: "@red-hat-developer-hub/backstage-plugin-konflux-backend"
dynamicArtifact: ""
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not so sure about this field, is it going to be populated by some workflow in this repo? 🤔

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once the PR is merged, automatic action will publish its package, which you need to use in dynamicArtifact:

Suggested change
dynamicArtifact: ""
dynamicArtifact: "ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-konflux-backend:bs_1.45.3__0.1.1!red-hat-developer-hub-backstage-plugin-konflux-backend"

@rrosatti rrosatti changed the title [WIP] [Konflux] add konflux workspace [Konflux] add konflux workspace Jan 29, 2026
@rrosatti rrosatti marked this pull request as ready for review January 29, 2026 13:12
@rrosatti rrosatti requested review from a team, gashcrumb and kadel as code owners January 29, 2026 13:12
- cicd
spec:
packageName: "@red-hat-developer-hub/backstage-plugin-konflux-backend"
dynamicArtifact: ""
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once the PR is merged, automatic action will publish its package, which you need to use in dynamicArtifact:

Suggested change
dynamicArtifact: ""
dynamicArtifact: "ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-konflux-backend:bs_1.45.3__0.1.1!red-hat-developer-hub-backstage-plugin-konflux-backend"

authProvider: impersonationHeaders
clusters:
konflux:
apiUrl: ${KONFLUX_CLUSTER_API_URL}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you also add test file with these env variables as dummy values so test workflow can successfully test that plugin loads?
For example like here

- cicd
spec:
packageName: "@red-hat-developer-hub/backstage-plugin-konflux"
dynamicArtifact: ""
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
dynamicArtifact: ""
dynamicArtifact: "ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-konflux:bs_1.45.3__0.1.1!red-hat-developer-hub-backstage-plugin-konflux"

support: dev-preview
lifecycle: active
partOf:
- konflux
Copy link
Member

@dzemanov dzemanov Jan 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you please also create konflux plugin here?
It will need to have name: konflux and will need to specify plugin packages using:

packages:
    - red-hat-developer-hub-backstage-plugin-konflux-backend
    - red-hat-developer-hub-backstage-plugin-konflux

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@polasudo is there already any system for shortcutting of names in place? E.g name: rhdh-backstage-plugin-konflux-backend? Anyway, these names are under 64 chars so we are good.

@openshift-ci
Copy link

openshift-ci bot commented Jan 29, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@dzemanov
Copy link
Member

/publish

@github-actions
Copy link
Contributor

Publish workflow has completed with success.

  • Published container images:
    • ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-konflux:pr_1860__0.1.1
    • ghcr.io/redhat-developer/rhdh-plugin-export-overlays/red-hat-developer-hub-backstage-plugin-konflux-backend:pr_1860__0.1.1

Backstage Compatibility Check

✅ All workspaces are compatible with the target Backstage version (1.45.3).

No action required.

No E2E tests available for this workspace.

@github-actions
Copy link
Contributor


Test workflow failed.

⚠️ Integration tests failed. Check the workflow logs for details.

Error logs from container
�[2m2026-01-29T15:34:55.773Z�[22m �[34mrootHttpRouter�[39m �[32minfo�[39m [2026-01-29T15:34:55.773Z] "PUT /api/events/bus/v1/subscriptions/catalog.catalog HTTP/1.1" 201 0 "-" "node" �[36mtype�[39m="incomingRequest" �[36mdate�[39m="2026-01-29T15:34:55.773Z" �[36mmethod�[39m="PUT" �[36murl�[39m="/api/events/bus/v1/subscriptions/catalog.catalog" �[36mstatus�[39m=201 �[36mhttpVersion�[39m="1.1" �[36muserAgent�[39m="node"
�[2m2026-01-29T15:34:56.246Z�[22m �[34mapp�[39m �[32minfo�[39m Serving static app content from /opt/app-root/src/packages/app/dist 
�[2m2026-01-29T15:34:56.278Z�[22m �[34mbackstage�[39m �[31merror�[39m Plugin 'app' threw an error during startup. Plugin 'app' startup failed; caused by Error: Invalid app bundle schema. If this error is unexpected you need to run `yarn build` in the app. If that doesn't help you should make sure your config schema is correct and rebuild the app bundle again. Caused by the following schema error, Error: Config validation failed, Config must have required property 'uiUrl' { missingProperty=uiUrl } at /konflux/clusters/konflux �[36mtype�[39m="initialization" �[36mcause�[39m={} �[36mname�[39m="Error" �[36mstack�[39m="Error: Plugin 'app' startup failed; caused by Error: Invalid app bundle schema. If this error is unexpected you need to run `yarn build` in the app. If that doesn't help you should make sure your config schema is correct and rebuild the app bundle again. Caused by the following schema error, Error: Config validation failed, Config must have required property 'uiUrl' { missingProperty=uiUrl } at /konflux/clusters/konflux\n    at /opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:313:21\n    at async /opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:312:13\n    at async Promise.allSettled (index 1)\n    at async #doStart (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:242:21)\n    at async BackendInitializer.start (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:160:5)\n    at async BackstageBackend.start (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackstageBackend.cjs.js:19:5)"
�[2m2026-01-29T15:34:56.278Z�[22m �[34mbackstage�[39m �[31merror�[39m Unhandled rejection Plugin 'app' startup failed; caused by Error: Invalid app bundle schema. If this error is unexpected you need to run `yarn build` in the app. If that doesn't help you should make sure your config schema is correct and rebuild the app bundle again. Caused by the following schema error, Error: Config validation failed, Config must have required property 'uiUrl' { missingProperty=uiUrl } at /konflux/clusters/konflux �[36mtype�[39m="unhandledRejection" �[36mcause�[39m={} �[36mname�[39m="Error" �[36mstack�[39m="Error: Plugin 'app' startup failed; caused by Error: Invalid app bundle schema. If this error is unexpected you need to run `yarn build` in the app. If that doesn't help you should make sure your config schema is correct and rebuild the app bundle again. Caused by the following schema error, Error: Config validation failed, Config must have required property 'uiUrl' { missingProperty=uiUrl } at /konflux/clusters/konflux\n    at /opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:313:21\n    at async /opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:312:13\n    at async Promise.allSettled (index 1)\n    at async #doStart (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:242:21)\n    at async BackendInitializer.start (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackendInitializer.cjs.js:160:5)\n    at async BackstageBackend.start (/opt/app-root/src/node_modules/@backstage/backend-app-api/dist/wiring/BackstageBackend.cjs.js:19:5)"
�[2m2026-01-29T15:34:56.466Z�[22m �[34mbackstage�[39m �[32minfo�[39m Plugin initialization in progress, newly initialized: 'user-settings', 'auth', 'scaffolder', 'catalog', 'permission' �[36mtype�[39m="initialization"
�[2m2026-01-29T15:34:58.466Z�[22m �[34mbackstage�[39m �[32minfo�[39m Plugin initialization in progress �[36mtype�[39m="initialization"
�[2m2026-01-29T15:35:01.467Z�[22m �[34mbackstage�[39m �[32minfo�[39m Plugin initialization in progress �[36mtype�[39m="initialization"
�[2m2026-01-29T15:35:06.468Z�[22m �[34mbackstage�[39m �[32minfo�[39m Plugin initialization in progress �[36mtype�[39m="initialization"
�[2m2026-01-29T15:35:07.086Z�[22m �[34mapp�[39m �[31merror�[39m Request failed with status 503 Service has not started up yet �[36mtype�[39m="errorHandler" �[36mcause�[39m=undefined �[36mname�[39m="ServiceUnavailableError" �[36mstack�[39m="ServiceUnavailableError: Service has not started up yet\n    at Timeout._onTimeout (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/httpRouter/http/createLifecycleMiddleware.cjs.js:49:16)\n    at listOnTimeout (node:internal/timers:588:17)\n    at process.processTimers (node:internal/timers:523:7)"
�[2m2026-01-29T15:35:07.088Z�[22m �[34mrootHttpRouter�[39m �[32minfo�[39m [2026-01-29T15:35:07.088Z] "GET /health HTTP/1.1" 503 160 "-" "curl/8.5.0" �[36mtype�[39m="incomingRequest" �[36mdate�[39m="2026-01-29T15:35:07.088Z" �[36mmethod�[39m="GET" �[36murl�[39m="/health" �[36mstatus�[39m=503 �[36mhttpVersion�[39m="1.1" �[36muserAgent�[39m="curl/8.5.0" �[36mcontentLength�[39m=160
�[2m2026-01-29T15:35:14.469Z�[22m �[34mbackstage�[39m �[32minfo�[39m Plugin initialization in progress �[36mtype�[39m="initialization"
�[2m2026-01-29T15:35:22.111Z�[22m �[34mapp�[39m �[31merror�[39m Request failed with status 503 Service has not started up yet �[36mtype�[39m="errorHandler" �[36mcause�[39m=undefined �[36mname�[39m="ServiceUnavailableError" �[36mstack�[39m="ServiceUnavailableError: Service has not started up yet\n    at Timeout._onTimeout (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/httpRouter/http/createLifecycleMiddleware.cjs.js:49:16)\n    at listOnTimeout (node:internal/timers:588:17)\n    at process.processTimers (node:internal/timers:523:7)"
�[2m2026-01-29T15:35:22.112Z�[22m �[34mrootHttpRouter�[39m �[32minfo�[39m [2026-01-29T15:35:22.112Z] "GET /health HTTP/1.1" 503 160 "-" "curl/8.5.0" �[36mtype�[39m="incomingRequest" �[36mdate�[39m="2026-01-29T15:35:22.112Z" �[36mmethod�[39m="GET" �[36murl�[39m="/health" �[36mstatus�[39m=503 �[36mhttpVersion�[39m="1.1" �[36muserAgent�[39m="curl/8.5.0" �[36mcontentLength�[39m=160
�[2m2026-01-29T15:35:27.469Z�[22m �[34mbackstage�[39m �[32minfo�[39m Plugin initialization in progress �[36mtype�[39m="initialization"
�[2m2026-01-29T15:35:37.134Z�[22m �[34mapp�[39m �[31merror�[39m Request failed with status 503 Service has not started up yet �[36mtype�[39m="errorHandler" �[36mcause�[39m=undefined �[36mname�[39m="ServiceUnavailableError" �[36mstack�[39m="ServiceUnavailableError: Service has not started up yet\n    at Timeout._onTimeout (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/httpRouter/http/createLifecycleMiddleware.cjs.js:49:16)\n    at listOnTimeout (node:internal/timers:588:17)\n    at process.processTimers (node:internal/timers:523:7)"
�[2m2026-01-29T15:35:37.136Z�[22m �[34mrootHttpRouter�[39m �[32minfo�[39m [2026-01-29T15:35:37.136Z] "GET /health HTTP/1.1" 503 160 "-" "curl/8.5.0" �[36mtype�[39m="incomingRequest" �[36mdate�[39m="2026-01-29T15:35:37.136Z" �[36mmethod�[39m="GET" �[36murl�[39m="/health" �[36mstatus�[39m=503 �[36mhttpVersion�[39m="1.1" �[36muserAgent�[39m="curl/8.5.0" �[36mcontentLength�[39m=160
�[2m2026-01-29T15:35:48.469Z�[22m �[34mbackstage�[39m �[32minfo�[39m Plugin initialization in progress �[36mtype�[39m="initialization"
�[2m2026-01-29T15:35:50.784Z�[22m �[34mrootHttpRouter�[39m �[32minfo�[39m [2026-01-29T15:35:50.784Z] "GET /api/events/bus/v1/subscriptions/catalog.catalog/events HTTP/1.1" 202 0 "-" "node" �[36mtype�[39m="incomingRequest" �[36mdate�[39m="2026-01-29T15:35:50.784Z" �[36mmethod�[39m="GET" �[36murl�[39m="/api/events/bus/v1/subscriptions/catalog.catalog/events" �[36mstatus�[39m=202 �[36mhttpVersion�[39m="1.1" �[36muserAgent�[39m="node"
�[2m2026-01-29T15:35:52.158Z�[22m �[34mapp�[39m �[31merror�[39m Request failed with status 503 Service has not started up yet �[36mtype�[39m="errorHandler" �[36mcause�[39m=undefined �[36mname�[39m="ServiceUnavailableError" �[36mstack�[39m="ServiceUnavailableError: Service has not started up yet\n    at Timeout._onTimeout (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/httpRouter/http/createLifecycleMiddleware.cjs.js:49:16)\n    at listOnTimeout (node:internal/timers:588:17)\n    at process.processTimers (node:internal/timers:523:7)"
�[2m2026-01-29T15:35:52.160Z�[22m �[34mrootHttpRouter�[39m �[32minfo�[39m [2026-01-29T15:35:52.160Z] "GET /health HTTP/1.1" 503 160 "-" "curl/8.5.0" �[36mtype�[39m="incomingRequest" �[36mdate�[39m="2026-01-29T15:35:52.160Z" �[36mmethod�[39m="GET" �[36murl�[39m="/health" �[36mstatus�[39m=503 �[36mhttpVersion�[39m="1.1" �[36muserAgent�[39m="curl/8.5.0" �[36mcontentLength�[39m=160
�[2m2026-01-29T15:36:07.182Z�[22m �[34mapp�[39m �[31merror�[39m Request failed with status 503 Service has not started up yet �[36mtype�[39m="errorHandler" �[36mcause�[39m=undefined �[36mname�[39m="ServiceUnavailableError" �[36mstack�[39m="ServiceUnavailableError: Service has not started up yet\n    at Timeout._onTimeout (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/httpRouter/http/createLifecycleMiddleware.cjs.js:49:16)\n    at listOnTimeout (node:internal/timers:588:17)\n    at process.processTimers (node:internal/timers:523:7)"
�[2m2026-01-29T15:36:07.183Z�[22m �[34mrootHttpRouter�[39m �[32minfo�[39m [2026-01-29T15:36:07.183Z] "GET /health HTTP/1.1" 503 160 "-" "curl/8.5.0" �[36mtype�[39m="incomingRequest" �[36mdate�[39m="2026-01-29T15:36:07.183Z" �[36mmethod�[39m="GET" �[36murl�[39m="/health" �[36mstatus�[39m=503 �[36mhttpVersion�[39m="1.1" �[36muserAgent�[39m="curl/8.5.0" �[36mcontentLength�[39m=160
�[2m2026-01-29T15:36:22.205Z�[22m �[34mapp�[39m �[31merror�[39m Request failed with status 503 Service has not started up yet �[36mtype�[39m="errorHandler" �[36mcause�[39m=undefined �[36mname�[39m="ServiceUnavailableError" �[36mstack�[39m="ServiceUnavailableError: Service has not started up yet\n    at Timeout._onTimeout (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/httpRouter/http/createLifecycleMiddleware.cjs.js:49:16)\n    at listOnTimeout (node:internal/timers:588:17)\n    at process.processTimers (node:internal/timers:523:7)"
�[2m2026-01-29T15:36:22.206Z�[22m �[34mrootHttpRouter�[39m �[32minfo�[39m [2026-01-29T15:36:22.206Z] "GET /health HTTP/1.1" 503 160 "-" "curl/8.5.0" �[36mtype�[39m="incomingRequest" �[36mdate�[39m="2026-01-29T15:36:22.206Z" �[36mmethod�[39m="GET" �[36murl�[39m="/health" �[36mstatus�[39m=503 �[36mhttpVersion�[39m="1.1" �[36muserAgent�[39m="curl/8.5.0" �[36mcontentLength�[39m=160
�[2m2026-01-29T15:36:22.470Z�[22m �[34mbackstage�[39m �[32minfo�[39m Plugin initialization in progress �[36mtype�[39m="initialization"
�[2m2026-01-29T15:36:37.228Z�[22m �[34mapp�[39m �[31merror�[39m Request failed with status 503 Service has not started up yet �[36mtype�[39m="errorHandler" �[36mcause�[39m=undefined �[36mname�[39m="ServiceUnavailableError" �[36mstack�[39m="ServiceUnavailableError: Service has not started up yet\n    at Timeout._onTimeout (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/httpRouter/http/createLifecycleMiddleware.cjs.js:49:16)\n    at listOnTimeout (node:internal/timers:588:17)\n    at process.processTimers (node:internal/timers:523:7)"
�[2m2026-01-29T15:36:37.230Z�[22m �[34mrootHttpRouter�[39m �[32minfo�[39m [2026-01-29T15:36:37.229Z] "GET /health HTTP/1.1" 503 160 "-" "curl/8.5.0" �[36mtype�[39m="incomingRequest" �[36mdate�[39m="2026-01-29T15:36:37.229Z" �[36mmethod�[39m="GET" �[36murl�[39m="/health" �[36mstatus�[39m=503 �[36mhttpVersion�[39m="1.1" �[36muserAgent�[39m="curl/8.5.0" �[36mcontentLength�[39m=160
�[2m2026-01-29T15:36:45.793Z�[22m �[34mrootHttpRouter�[39m �[32minfo�[39m [2026-01-29T15:36:45.793Z] "GET /api/events/bus/v1/subscriptions/catalog.catalog/events HTTP/1.1" 202 0 "-" "node" �[36mtype�[39m="incomingRequest" �[36mdate�[39m="2026-01-29T15:36:45.793Z" �[36mmethod�[39m="GET" �[36murl�[39m="/api/events/bus/v1/subscriptions/catalog.catalog/events" �[36mstatus�[39m=202 �[36mhttpVersion�[39m="1.1" �[36muserAgent�[39m="node"
�[2m2026-01-29T15:36:52.252Z�[22m �[34mapp�[39m �[31merror�[39m Request failed with status 503 Service has not started up yet �[36mtype�[39m="errorHandler" �[36mcause�[39m=undefined �[36mname�[39m="ServiceUnavailableError" �[36mstack�[39m="ServiceUnavailableError: Service has not started up yet\n    at Timeout._onTimeout (/opt/app-root/src/node_modules/@backstage/backend-defaults/dist/entrypoints/httpRouter/http/createLifecycleMiddleware.cjs.js:49:16)\n    at listOnTimeout (node:internal/timers:588:17)\n    at process.processTimers (node:internal/timers:523:7)"
�[2m2026-01-29T15:36:52.253Z�[22m �[34mrootHttpRouter�[39m �[32minfo�[39m [2026-01-29T15:36:52.253Z] "GET /health HTTP/1.1" 503 160 "-" "curl/8.5.0" �[36mtype�[39m="incomingRequest" �[36mdate�[39m="2026-01-29T15:36:52.253Z" �[36mmethod�[39m="GET" �[36murl�[39m="/health" �[36mstatus�[39m=503 �[36mhttpVersion�[39m="1.1" �[36muserAgent�[39m="curl/8.5.0" �[36mcontentLength�[39m=160

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

workspace-addition PR adds a new workspace

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants