Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🔌 Plugin: Quarkus #254

Closed
2 tasks done
gastaldi opened this issue Apr 17, 2023 · 17 comments
Closed
2 tasks done

🔌 Plugin: Quarkus #254

gastaldi opened this issue Apr 17, 2023 · 17 comments

Comments

@gastaldi
Copy link

🔖 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?

  • I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

Are you willing to submit PR?

Yes I am willing to submit a PR!

@serenamarie125
Copy link
Contributor

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?

@gastaldi
Copy link
Author

  • 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

@christophe-f
Copy link
Contributor

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.

@gastaldi
Copy link
Author

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.

@christophe-f
Copy link
Contributor

christophe-f commented Apr 18, 2023

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

@cmoulliard
Copy link

@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:

@cmoulliard
Copy link

What should we do to integrate this work part of janus-idp ? @christophe-f

@gastaldi
Copy link
Author

@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?

@cmoulliard
Copy link

in the create link instead

Is it an action, another plugin, etc ? @gastaldi

@gastaldi
Copy link
Author

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?

@gastaldi
Copy link
Author

Also, looking at the screenshots this looks really cool, great job!

@maxandersen
Copy link

@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?

adding code.quarkus.io to backstage would not be a good fit for backstage. hence the plugin/templating approach.

@gastaldi
Copy link
Author

gastaldi commented Jan 22, 2024

@maxandersen I mean the UI only, not the code.quarkus.io external website BTW

@cmoulliard
Copy link

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 🆙, 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

@cmoulliard
Copy link

cmoulliard commented Jan 22, 2024

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
Copy link

@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.

@rhdh-bot
Copy link
Collaborator

rhdh-bot commented Sep 3, 2024

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

@rhdh-bot rhdh-bot closed this as completed Sep 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants