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

odo support for Quarkus #1444

Closed
5 tasks done
sspeiche opened this issue Mar 11, 2019 · 18 comments
Closed
5 tasks done

odo support for Quarkus #1444

sspeiche opened this issue Mar 11, 2019 · 18 comments
Assignees
Labels
kind/epic An issue categorized as a high-level Epic. Needs to be scoped and broken down in 1+ stories/tasks priority/High Important issue; should be worked on before any other issues (except priority/Critical issue(s)). triage/needs-information Indicates an issue needs more information in order to work on it.
Milestone

Comments

@sspeiche
Copy link
Contributor

sspeiche commented Mar 11, 2019

As a Java Function and Microservice developer, I'd like to leverage the latest in Java technology with OpenShift using a streamlined CLI tool with Quarkus.

Which functionality do you think we should update/improve?

Provide 1st class support for applications based on Quarkus work. This includes validating there is a S2I image that works with push/watch. Also to make sure that hot-reload capabilities can be leveraged as well.

Quarkus tracking issue quarkusio/quarkus#1390

Acceptance Criteria from the linked User Story

@sspeiche sspeiche added the kind/epic An issue categorized as a high-level Epic. Needs to be scoped and broken down in 1+ stories/tasks label Mar 11, 2019
@geoand
Copy link
Contributor

geoand commented Mar 11, 2019

I can work on this on the odo side of things. But I would like to from @kadel and @jorgemoralespou if we think that a new s2i image will be needed or if we can somehow fit the Quarkus workflow into the existing java s2i image

@kadel
Copy link
Member

kadel commented Mar 12, 2019

I can work on this on the odo side of things. But I would like to from @kadel and @jorgemoralespou if we think that a new s2i image will be needed or if we can somehow fit the Quarkus workflow into the existing java s2i image

I don't know enough about Quarkus to answer this :-(

@geoand
Copy link
Contributor

geoand commented Mar 12, 2019

No problem, we should have a quick chat about this :)

@jorgemoralespou
Copy link
Contributor

@kadel @geoand the regular java s2i should work, but what does not work is odo.

Quarkus does run with the following command in dev mode (for hot reload) mvn quarkus:dev. The idea of quarkus dev mode is also that the files will be used from where they are, so there need not to be moved to a deployment directory after assemble, which needs to be mvn compile and this only need to be executed on first deployment.

Easiest way would be to:

  1. have an empty assemble
  2. use a run with mvn compile quarkus:dev
    These can be initially added to the source code repository in an .s2i/bin/ folder. We would need to make sure that odo does not do things when pushing the files to the container, as it would add a time penalty with the backup/restore steps done in the container.

This is an example of how the odo image scripts would benefit the process of working with specific languages/images. Sadly that definition is stalled. @kadel I would involve @geoand @metacosm on helping push this forward.

@geoand
Copy link
Contributor

geoand commented Mar 12, 2019

@jorgemoralespou @kadel @metacosm I think we should schedule a call to work out how we can make this happen

@jorgemoralespou
Copy link
Contributor

@geoand I'm traveling to Singapore this week, so on an off (more off than on). I hope @kadel can discuss this with you guys.

@geoand
Copy link
Contributor

geoand commented Mar 12, 2019

OK @jorgemoralespou :)

@kadel
Copy link
Member

kadel commented Mar 12, 2019

@kadel @geoand the regular java s2i should work, but what does not work is odo.

Not sure what you mean :-(

Quarkus does run with the following command in dev mode (for hot reload) mvn quarkus:dev. The idea of quarkus dev mode is also that the files will be used from where they are, so there need not to be moved to a deployment directory after assemble, which needs to be mvn compile and this only need to be executed on first deployment.

Easiest way would be to:

  1. have an empty assemble
  2. use a run with mvn compile quarkus:dev

This should be handled inside the image

These can be initially added to the source code repository in an .s2i/bin/ folder. We would need to make sure that odo does not do things when pushing the files to the container, as it would add a time penalty with the backup/restore steps done in the container.

This is an example of how the odo image scripts would benefit the process of working with specific languages/images. Sadly that definition is stalled. @kadel I would involve @geoand @metacosm on helping push this forward.

@jorgemoralespou
Copy link
Contributor

@kadel, what I mean is that since quarkus does hot reload of files in their current location, how odo interacts with the images calling assemble_and_run will not provide a nice experience. The image, the openjdk images, can be used, with some tweaks, as I mentioned the location of the /opt/app-root/src and /deployments should be the same, as files should not need to be moved. Else the experience that Quarkus provides where it reloads the runtime automatically on changes (or only changes the files/classes needed) would not be perceived and the experience would be bad.

This is why, we need to be able to instruct the images what to do in certain scenarios, and yes, while we could create a dedicated Quarkus s2i, which would simplify things a lot, we can probably still probably make it work on the OpenJDK image without too much hassle.

@cdrage
Copy link
Member

cdrage commented Sep 5, 2019

As we reach GA, should this be marked at 1.0 GA for some basic form of documentation as to whether or not we support quarkus?

@kadel

@magick93
Copy link

magick93 commented Sep 5, 2019 via email

@sspeiche sspeiche added this to the backlog milestone Oct 29, 2019
@sspeiche sspeiche added the priority/High Important issue; should be worked on before any other issues (except priority/Critical issue(s)). label Oct 29, 2019
@sspeiche sspeiche modified the milestones: backlog, 1.2 Dec 17, 2019
@girishramnani girishramnani added the status/blocked Denotes an issue or PR that is blocked on something (e.g., issue/PR in different repo) label Jan 27, 2020
@girishramnani
Copy link
Contributor

This issue is blocked on dev file support #2470
as it uses dev file to provide support for quarkus

@sspeiche sspeiche modified the milestones: 1.2, 1.3 Mar 17, 2020
@girishramnani girishramnani removed the status/blocked Denotes an issue or PR that is blocked on something (e.g., issue/PR in different repo) label Mar 30, 2020
@girishramnani girishramnani added the triage/needs-information Indicates an issue needs more information in order to work on it. label Mar 30, 2020
@adisky
Copy link
Contributor

adisky commented Apr 1, 2020

Quarkus Support in odo

@cdrage
Copy link
Member

cdrage commented Apr 1, 2020

@adisky We should have multiple issues as well as an outline of what needs to be done.

@adisky
Copy link
Contributor

adisky commented Apr 1, 2020

@adisky We should have multiple issues as well as an outline of what needs to be done.

@cdrage Thanks for the format, I would convert this into user story, so that it will cover all aspects.

@adisky adisky mentioned this issue Apr 2, 2020
5 tasks
@girishramnani
Copy link
Contributor

girishramnani commented Jun 8, 2020

Progress so far

Acceptance Criteria

@girishramnani
Copy link
Contributor

as of now - we dont need special integration tests for quarkus as we have tests in the devfile registry for these

@girishramnani
Copy link
Contributor

also all the relevant documents have been updated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/epic An issue categorized as a high-level Epic. Needs to be scoped and broken down in 1+ stories/tasks priority/High Important issue; should be worked on before any other issues (except priority/Critical issue(s)). triage/needs-information Indicates an issue needs more information in order to work on it.
Projects
None yet
Development

No branches or pull requests

8 participants