commit | 33928f5bd5cfc4785e73a5f76fba6aeaa59f7e5e | [log] [tgz] |
---|---|---|
author | Priti Desai <pdesai@us.ibm.com> | Wed Apr 17 13:30:36 2019 -0700 |
committer | GitHub <noreply@github.com> | Wed Apr 17 13:30:36 2019 -0700 |
tree | 8027d01ee2d18c2e770067995335496e0f98fb4a | |
parent | c173d64cba124aeccc5c2c7f5db10bd18f5a03a9 [diff] |
An ability to run on Knative along with OpenWhisk (#119) * changes to app.js to support knative and openwhisk runtimes * changes to service.js * adding debug and utitilies * adding platform files * adding build template * updating nodejs 10 runtime to include platform * updating nodejs 10 runtime to include platform * updating nodejs 10 runtime to include platform * adding docker secret and service account yaml * adding knative README * adding presentation deck and demo gif * combining READMEs * adding tests * fixing link to gif * fixing links to build and service yaml * updating git repo * commenting log in app.js * adding platform to nodejs 8 * init once and run multiple times * fixing init once and run many * updating README * dropping tests/doc additions, will create a seperate PR * dropping debug utility * dropping duplicate functions * addressing rr's comments - dropping cfg, console errors * adding console errors which was deleted * addressing dragos's suggestion, avoid using else block
To use as a docker action for Node.js 6
wsk action update myAction myAction.js --docker openwhisk/nodejs6action
To use as a docker action for Node.js 8
wsk action update myAction myAction.js --docker openwhisk/action-nodejs-v8
This works on any deployment of Apache OpenWhisk
To use as a kind action using Node.js 6
wsk action update myAction myAction.js --kind nodejs:6
To use as a kind action using Node.js 8
wsk action update myAction myAction.js --kind nodejs:8
For Node.js 6
./gradlew core:nodejs6Action:distDocker
This will produce the image whisk/nodejs6action
For Node.js 8
./gradlew core:nodejs8Action:distDocker
This will produce the image whisk/action-nodejs-v8
For Node.js 10
./gradlew core:nodejs10Action:distDocker
This will produce the image whisk/action-nodejs-v10
Build and Push image for Node.js 6
docker login ./gradlew core:nodejs6Action:distDocker -PdockerImagePrefix=$prefix-user -PdockerRegistry=docker.io
Build and Push image for Node.js 8
docker login ./gradlew core:nodejs8Action:distDocker -PdockerImagePrefix=$prefix-user -PdockerRegistry=docker.io
Then create the action using your image from dockerhub
wsk action update myAction myAction.js --docker $user_prefix/nodejs6action
The $user_prefix
is usually your dockerhub user id.
Deploy OpenWhisk using ansible environment that contains the kind nodejs:6
and nodejs:8
Assuming you have OpenWhisk already deployed locally and OPENWHISK_HOME
pointing to root directory of OpenWhisk core repository.
Set ROOTDIR
to the root directory of this repository.
Redeploy OpenWhisk
cd $OPENWHISK_HOME/ansible ANSIBLE_CMD="ansible-playbook -i ${ROOTDIR}/ansible/environments/local" $ANSIBLE_CMD setup.yml $ANSIBLE_CMD couchdb.yml $ANSIBLE_CMD initdb.yml $ANSIBLE_CMD wipe.yml $ANSIBLE_CMD openwhisk.yml
Or you can use wskdev
and create a soft link to the target ansible environment, for example:
ln -s ${ROOTDIR}/ansible/environments/local ${OPENWHISK_HOME}/ansible/environments/local-nodejs wskdev fresh -t local-nodejs
Install dependencies from the root directory on $OPENWHISK_HOME repository
./gradlew install
Using gradle for the ActionContainer tests you need to use a proxy if running on Mac, if Linux then don't use proxy options You can pass the flags -Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128
directly in gradle command. Or save in your $HOME/.gradle/gradle.properties
systemProp.http.proxyHost=localhost systemProp.http.proxyPort=3128
Using gradle to run all tests
./gradlew :tests:test
Using gradle to run some tests
./gradlew :tests:test --tests *ActionContainerTests*
Using IntelliJ:
-Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128
Apache OpenWhisk Runtime Node.js is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.