openshiftio / openshift.io

Red Hat OpenShift.io is an end-to-end development environment for planning, building and deploying modern applications.
https://openshift.io
97 stars 66 forks source link

[build] Investigate what is needed to support node.js boosters for osio #3675

Closed hrishin closed 6 years ago

hrishin commented 6 years ago

Investigate the efforts required to support node.js quickstart.

hrishin commented 6 years ago

Assumption:

For a given node.js applications

Build

Deploy

To support these applications current build system need following capabilities.

hrishin commented 6 years ago

These are node.js booster applications

Rest HTTP

Health Check

Config Map

hrishin commented 6 years ago

In order to support node.js deployment, current build system has most of the pieces are in place. Most of these components require some amount of work to make it functional.

What components are already in place to support node.js deployments?

What addition/changes/fixes are required in existing components?

GeorgeActon commented 6 years ago

@pradeepto Is this in a planner work item? Getting Started (GS) team is dependent on it so I would like to be able to see it in planner to link the dependency into the GS plan for execution.

hrishin commented 6 years ago

Team, please note that we have done this investigation to the best possible extent by observing and trying booster applications, fabric8-pipeline-library and Jenkinsfiles. However, there are some unknowns(how) which can't be known upfront or during execution. There are things which could impact to the amount of work we have to do based on option/path we choose (e.g. deployment resource, using nodeshift in below unknowns). Above mentioned points captures the most of details at the macro level.

Here are some unknowns

Let me know your views.

@krishnapaparaju @pradeepto @sthaha

hrishin commented 6 years ago

Finding around unknowns

specific node version to use/support?

The recommended version is 10 but it can also work with 8+ version, for node boosters.

any systems libraries needed ( are there npms that require compiling - native node modules?) for building node applications?

No.

preinstalled npm's (node packages)?

No as such.

how to integrate node builds with analytics?

Unlike maven(Java) builds, npm build doesn't require preprocessing for package.json. From integration standpoint build need to invoke bayesian Jenkins step that will post manifest file (package.json) to fabric8 analytics service.

deployment resource for application

Still, need to evaluate it. It could be done using ./openshift/application.yaml for few reasons:

sthaha commented 6 years ago

Closing this in favour of #3896 which is POC/Spike that @chmouel is working on. We will reopen this if that POC fails but so far it seems promising.