GithubHelp home page GithubHelp logo

kpavel / openwhisk-light Goto Github PK

View Code? Open in Web Editor NEW
15.0 15.0 4.0 1.92 MB

Lightweight OpenWhisk-compatible runtime to run OpenWhisk actions on a local Docker engine

License: Apache License 2.0

JavaScript 81.14% Shell 18.86%

openwhisk-light's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

openwhisk-light's Issues

can not retrieve API build info

Seems that 'GET' is missing. Need to decide whether to implement or proxy (can start with either of the two).

$ wsk -v --apihost http://xxx:3000 property get --apibuild
whisk API host http://xxx:3000
REQUEST:
[GET] http://xxx:3000/api/v1
RESPONSE:Got response with code 404
Resp Headers
{
"Connection": [
"keep-alive"
],
"Content-Length": [
"145"
],
"Content-Security-Policy": [
"default-src 'self'"
],
"Content-Type": [
"text/html; charset=utf-8"
],
"Date": [
"Sun, 21 May 2017 13:53:12 GMT"
],
"X-Content-Type-Options": [
"nosniff"
],
"X-Powered-By": [
"Express"
]
}
Response body size is 145 bytes
Response body received:

<title>Error</title>
Cannot GET /api/v1

whisk API build Unknown
error: Unable to obtain API build information: The connection failed, or timed out. (HTTP status code 404)

simplify deployment in a docker container

Simplify the deployment when deployed in a container on the same docker engine as the action containers, e.g.:

  • make the 'docker host' parameter optional (use socket interface or find docker URL automatically)
  • don't require surfacing docker remote API (by using socket interface)
  • find network, ports automatically

add basic support for activations

  • keep activation details in a local Pouch (?) DB
  • use same schema (if possible) as the one in Bluemix, to make it easy to add replication later on
  • implement 'get', 'result' CLI
  • implement 'list' without pagination/limits (return all)

make it work with wsk cli

Also, need to document (in readme) behavior of all the commands (e.g., in a table specifying "local", "delegate to cloud", "not supported")

revisit DESIGN.md

  • update according to actual impl
  • if there are important design enahncements that haven't been implemented yet -- add issues

activation logs contains \"

when logs returned by "wsk activation logs" the result is correct, while when activation returned by wsk activation get the result contains obsolete " characters

basic support for disconnected mode

Make it possible to run basic operations without connection to centralized OpenWhisk

  • 'action create'
  • 'action invoke'
  • 'action delete'
  • activations
    (other?)

make db config more flexible

At the moment activations are persisted in pouchdb, on disk (using leveldb).
It would be useful to enable the following modes (at configuration time, config.js + ENV):

  1. pouchdb with leveldb backend (current)
  2. pouchdb with memory-only backend (https://github.com/pouchdb/pouchdb/tree/master/packages/node_modules/pouchdb-adapter-memory)
  3. no pouchdb at all
    We should also check the memory footprint of each option (e.g., docker stats) - in particular, to verify whether option 3 is much more memory efficient.

interfaces cleanup

actionproxy.run(actionContainer, api_key, params)
backend.getActionContainer(actionName, actionKind, actionImage)
backend.fetch()
backend.createContainer(actionName, actionImage)
actiovations.buildResponse [remove]
actions.buildResponse [remove]

code cleanup

logging, formatting, const vs var, file headers (license etc), function headers (comments)

implement cross-arch image naming convention for 'blackbox' actions

For blackbox actions, we need to pull the image from docker hub as specified in the action metadata. This is not going to work if the hardware architecture of the Docker host is different than the one that the particular image was built for (e.g., ARM vs x86_64).
Given that Docker doesn't seem to have a proper support for this (yet?), we can use tags or suffixes to enable maintaining different versions of the image for difference kinds of architecture (e.g., "myappimage-x86_64" vs "myappimage-arm"), and dynamically pull the one matching the target architecture (e.g., based on uname -i).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.