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

Nodejs 12 EOL in April #763

Closed
BraisVQ opened this issue Mar 15, 2022 · 21 comments · Fixed by #764 or #775
Closed

Nodejs 12 EOL in April #763

BraisVQ opened this issue Mar 15, 2022 · 21 comments · Fixed by #764 or #775
Assignees
Labels
enhancement New feature or request

Comments

@BraisVQ
Copy link
Contributor

BraisVQ commented Mar 15, 2022

Is your feature request related to a problem?
Nodejs version 12 reach EOL in April 2022 - releases

Describe the solution you'd like
we should update to a newer version be it 14 or 16 (current LTS)

Quickstarters with nodejs agent

FYI - @metmajer @gerardcl @michaelsauter

@BraisVQ BraisVQ added the enhancement New feature or request label Mar 15, 2022
@BraisVQ BraisVQ changed the title Nodejs 12 EOF in April Nodejs 12 EOL in April Mar 15, 2022
@metmajer
Copy link
Member

Agreed @braisvq1996. Could you list the affected Quickstarters and get in touch with the Quickstarter owners for their contributions?

According to #694, quickstarters should support multiple runtimes to remain backwards compatible as much as possible.

@cschweikert
Copy link
Member

I'd go for nodeJS 16. Actually there will be 18 (LTS) next month, but it might take some time until it is available in all the different package managers.
Also we are already using a custom agent that uses nodeJS 16 and it doesn't seem to cause any issues. On our end It works together with different versions of cypress, at least Angular 11 and 13 and also latest Express server.

Following things to think about:

  1. Which branches should get the new agent? 3.x, 4.x and master?
  2. Do we keep the old nodeJS 12 version in parallel in one or more branches?
  3. Do we update everything (agent + quickstarters) with a single blow or do we go step-by-step?

I created a first branch already that shows, how a full replacement from nodeJS 12 to nodeJS 16 might look like:
306abe9
I haven't tested anything of this yet.

@BraisVQ
Copy link
Contributor Author

BraisVQ commented Mar 18, 2022

Thanks @cschweikert for taking a look at this:

Which branches should get the new agent? 3.x, 4.x and master?

3.x will not be needed to be updated, only 4.x and master.

Do we keep the old nodeJS 12 version in parallel in one or more branches?

We should keep nodejs 12 at least in 4.x and add in parallel nodejs 16.
For master I am not sure, upgrade to nodejs 16 and remove nodejs 12 ? @metmajer

Do we update everything (agent + quickstarters) with a single blow or do we go step-by-step?

@cschweikert , your call

@cschweikert
Copy link
Member

How about we do the following steps:

  1. on master replace 12 with 16 all over the place and make all nodeJS-based quickstarters working properly again
  2. backport nodeJS 16 agent from master to 4.x for offering it in parallel with 12 (also needs special documentation and build/test scripts to work with both versions in parallel)
  3. backport the adjustments made on the quickstarters from master to 4.x

The first point might look like shown in this PR: #764

@metmajer
Copy link
Member

@braisvq1996 @cschweikert thanks for the contribution. Please keep node 12 in to avoid that we break backwards compatibility with existing users if they have a reason to rebuild their Agent images.

@cschweikert
Copy link
Member

@metmajer Just for clarification: Do we want to keep nodeJS 12 also on master? It will go EOL already next month. The backwards compatibility for sure is important (e.g. for 4.x), but at the same time things should be replaced soon once they went EOL.

@metmajer
Copy link
Member

metmajer commented Mar 21, 2022

@cschweikert I am just trying to be practical. EOL does not mean that existing nodeJS applications will not run anymore. Some users of this Quickstarters might be willing to accept running on an EOL version, or simply cannot afford unknown risks/deprecations that might come with an upgrade to a newer version. If, however, users need to rebuild their Agents, because of a SonarQube update, they would still be safe. I am not saying we should advertise NodeJS 12 anymore, so the QS should definitely be a 16.

@cschweikert
Copy link
Member

@metmajer For 4.x I'm totally with you. How about master?

As long as nobody deletes the cluster-local 4.x branch, rebuilding old agents should be possible. Or am I missing something?

@metmajer
Copy link
Member

@cschweikert I consider this valuable in all branches since some distributors (vendors) might provide their solutions requesting a particular version, not necessarily the latest LTS.

@tbugfinder
Copy link
Contributor

Several weeks from now, security tooling might raise alerts - and then? Platform offerings are insecure by default? So the message isn't really beneficial (my 2ct).

@metmajer
Copy link
Member

@tbugfinder what exactly are you referring to? Christian's proposal to re-use old Agents or something else?

@tbugfinder
Copy link
Contributor

I was referring to the "message" of still supporting EOL nodejs12. This feels contrary to any effort and arguments regarding security. EOL means EOL, so dropping nodejs12 at least of main (master) is needed.

@metmajer
Copy link
Member

metmajer commented Mar 21, 2022

Fine with me if you will migrate all existing nodejs12 apps of our colleagues manually to 16 :) Otherwise, let's keep 12 in there and we do a proper sunsetting before we remove it. It seems like Node16 does not introduce breaking changes. I am not sure though if that holds true for 12 -> 16. Thoughts?

@cschweikert
Copy link
Member

I had problems with NodeJS 14+ and the fe-angular QS. See also #662
I started updating fe-angular in parallel. See also #765

@metmajer
Copy link
Member

metmajer commented Mar 22, 2022

@cschweikert @tbugfinder I would be supportive of a QS that contains only NodeJS 16 if there is absolutely no risk for existing applications based on NodeJS 12. Certainly, as a Platform provider, I do not want to take this risk on me. If we cannot guarantee backwards-compatibility for existing applications with NodeJS 16 only, we should offer this backwards compatibility by including a number of versions as a general principle of our QS and use awareness and education (and security monitoring solutions) to drive teams to update to a more modern version. However, we cannot simply stop continuity of service at a technical level.

@BraisVQ
Copy link
Contributor Author

BraisVQ commented Mar 22, 2022

I am also in favor of @metmajer opinion, we must support older versions.
Nodejs 12 will reach EOL soon but we should support it for some time and encourage users to update (I expect to not have this kind of situation in the futute, supporting an EOL version).
The moment we decide to drop a certain version of a builder image we need to have enough time (months) for the users to update.

@tbugfinder
Copy link
Contributor

Is there a doc section or Code section to inform users about deprecated technology? Maybe consider adding this information already for nodejs16 agent, so that by „platform release“ before or after nodejs16 EOL date this agent version will be deprecated and then removed?

@cschweikert
Copy link
Member

@tbugfinder regarding EOL: I added some lines to the documentation ods-quickstarters/docs/modules/jenkins-agents/pages/...:

@tbugfinder
Copy link
Contributor

👍

@filex
Copy link

filex commented Apr 11, 2022

When will the jenkins-agent-nodejs16 image be available for existing ODS projects? I see that the issue is closed and merges have been made. But I don't see the expected image in the OpenDevStack's Image Streams.

@BraisVQ
Copy link
Contributor Author

BraisVQ commented Apr 12, 2022

When will the jenkins-agent-nodejs16 image be available for existing ODS projects? I see that the issue is closed and merges have been made. But I don't see the expected image in the OpenDevStack's Image Streams.

Hi @filex , we will make the update in the following changes, once we do so it will be announced in the public company channels

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
5 participants