Closed hrishin closed 6 years ago
For a given node.js applications
Build
Deploy
To support these applications current build system need following capabilities.
[ ] Container(builder) image: node runtime and npm tool to build node applications
[ ] Build source code: build(compile, optional tests) npm package/node module from given package.json and source code
[ ] Publish build artifacts: Push build artifacts to the content repository or npmjs registry
[ ] Containerize build artifacts: package application into container image and push to the registry
[ ] Deploy application: Deploy an application to respective OpenShift namespace using all YAML's (deployment/deploymentconfig, service, route)
These are node.js booster applications
Rest HTTP
Health Check
Config Map
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?
Jenkinsfile templates
Fabirc8 pipeline library
nodeTeamplate
which is slave pod spec. Need to update container specs, configurations(git ssh, ssh-config, docker config) and few other things.OpenShift deployment resources
@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.
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
npmjs
registry/repo?Let me know your views.
@krishnapaparaju @pradeepto @sthaha
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:
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.
Investigate the efforts required to support node.js quickstart.