backstage-plugins
backstage-plugins copied to clipboard
🔌 Plugin: Quarkus
🔖 Summary
Support deploying applications using Quarkus as the backend
🌐 Project website (if applicable)
https://quarkus.io
✌️ Context
No response
👀 Have you spent some time to check if this plugin request has been raised before?
- [X] I checked and didn't find similar issue
🏢 Have you read the Code of Conduct?
- [X] I have read the Contributing Guidelines
Are you willing to submit PR?
Yes I am willing to submit a PR!
Thanks for sharing your idea! Could you add more information
- what's the value add of the plugin
- what are the use cases which will be supported by this plugin?
- what's the value add of the plugin
- The plugin will allow users to generate and deploy Quarkus applications
- Facilitate adoption of the Red Hat Build of Quarkus (productized version)
- what are the use cases which will be supported by this plugin?
- Developers will be able to start developing applications easily with Quarkus
Will it be offering more features than the current Golden Path template that we have in Janus? https://github.com/janus-idp/software-templates/tree/main/scaffolder-templates/quarkus-backend-template
This template will create a repo, inject the Quarkus skeleton project, a CI pipeline and the ArgoCD manifests.
The Quarkus code is coming from the devfiles project.
I guess the main issue with the existing solution is that the content in https://github.com/janus-idp/software-templates/tree/main/scaffolder-templates/quarkus-backend-template/skeleton is static and potentially becoming stale between releases.
This is akin to what I experienced while developing the Red Hat Developers Launcher - keeping the sources in sync between releases becomes a maintenance nightmare.
I propose this plugin to invoke the Quarkus tooling APIs using code.quarkus.io (to generate the application) and registry.quarkus.io (to fetch the recommended releases for a particular platform) - and their productized counterparts - to generate the application instead.
What comes next (setting up the CI pipeline and CD manifests) looks fine to me.
To keep things consistent with Backstage and the other templates, this could be a custom action instead of a plugin. The custom action could call the code.quarkus.io and generate the skeleton.
Currently the templates are basic, but the idea is that a customer can use that as a base and then tweak for their environments. Ie add custom security, actuator properties, etc so the devs don't have to care about this. It's automatically part of the template. Also accessing external apis could be a challenge in some setup.
Happy to discuss more about this to have something more dynamic if possible
@gastaldi @christophe-f We have developed with @iocanel a quarkus plugin able to offer such features
Front
- Filter, select your Quarkus extensions using the Quarkus Extension List field.
- Select using the Quarkus QuickStart Picker one of the quickstarts available: https://github.com/quarkusio/quarkus-quickstarts NOTE: Such frontend feature(s) should be used with the quarkus scaffolder backend plugin (described hereafter) in order to get the generated project from https://code.quarkus.io/ as zip file !
Backend => actions
- Clone a Quarkus "Quickstart" repository. Action: quarkus:quickstart:clone
- Create a Quarkus using the website code.quarkus.io able to generate a zip file of a Quarkus project and extensions selected (using extension list field). Action: quarkus:app:create
Project: https://github.com/q-shift/backstage-plugins/tree/main
Modules:
- https://www.npmjs.com/package/@qshift/plugin-quarkus
- https://www.npmjs.com/package/@qshift/plugin-quarkus-backend
What should we do to integrate this work part of janus-idp ? @christophe-f
@cmoulliard would it be possible to integrate the code.quarkus.io frontend in the create link instead of introducing a new UI? Maybe with @ia3andy's help?
in the
createlink instead
Is it an action, another plugin, etc ? @gastaldi
I am looking at the screenshots in https://github.com/q-shift/backstage-plugins/tree/main and there is a Create... link there. I don't have enough knowledge in Backstage, but I'll guess it's a plugin?
Also, looking at the screenshots this looks really cool, great job!
@cmoulliard would it be possible to integrate the code.quarkus.io frontend in the
createlink instead of introducing a new UI? Maybe with @ia3andy's help?
adding code.quarkus.io to backstage would not be a good fit for backstage. hence the plugin/templating approach.
@maxandersen I mean the UI only, not the code.quarkus.io external website BTW
I am looking at the screenshots in https://github.com/q-shift/backstage-plugins/tree/main and there is a
Create...link there. I don't have enough knowledge in Backstage, but I'll guess it's a plugin?
As I mentioned :up:, our project includes UI fields to be used in a backstage template and actions (= backend part ) to either call code.quarkus.io and get a zip of the project generated OR clone a quickstart github repository
@gastaldi
Also, looking at the screenshots this looks really cool, great job!
I must collect new screenshot as I improved a little bit the look'n'feel of the field showing the list of the quickstarts
@maxandersen I mean the UI only, not the code.quarkus.io external website BTW
Yes I get that. Code.quarkus ui is not what make sense to put into backstage. It's not how backstage flows/functions. It would be "alien".
Hence why we made the plug-in that consist of part ui/part template config so you as platform end. can preconfigured at the level that makes snese for your org and integrate with rest of backstage/janus work.
This issue has been closed due to the fact that the Janus community is being sunset.
For future plugin issues, please use https://github.com/backstage/community-plugins/issues
For future showcase issues, please use https://issues.redhat.com/browse/RHIDP
For more information on the sunset, see:
https://janus-idp.io/blog/2024/07/05/future-of-janus-community https://issues.redhat.com/browse/RHIDP-3690 https://issues.redhat.com/browse/RHIDP-1018