kpavel / openwhisk-light Goto Github PK
View Code? Open in Web Editor NEWLightweight OpenWhisk-compatible runtime to run OpenWhisk actions on a local Docker engine
License: Apache License 2.0
Lightweight OpenWhisk-compatible runtime to run OpenWhisk actions on a local Docker engine
License: Apache License 2.0
repo + individual files
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:
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 the deployment when deployed in a container on the same docker engine as the action containers, e.g.:
Also, need to document (in readme) behavior of all the commands (e.g., in a table specifying "local", "delegate to cloud", "not supported")
E.g., to invoke other actions
Seems that the only thing missing is proper env variables in the action containers
add option to config (file or ENV?) whether to retry or to burst
(eventually - should work for both blocking and non-blocking, but can start with one which is easier to implement)
See DESIGN.md for details
See DESIGN.md for details
avoid code duplication in actions._getAction and actions.getAction
Will be eventually removed by preemption logic
when logs returned by "wsk activation logs" the result is correct, while when activation returned by wsk activation get the result contains obsolete " characters
Make it possible to run basic operations without connection to centralized OpenWhisk
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):
actionproxy.run(actionContainer, api_key, params)
backend.getActionContainer(actionName, actionKind, actionImage)
backend.fetch()
backend.createContainer(actionName, actionImage)
actiovations.buildResponse [remove]
actions.buildResponse [remove]
e.g., 'wsk action invoke /whisk.system/utils/echo -r -p aaa bbb'
looks like a problem with routing logic in routes/index.js
logging, formatting, const vs var, file headers (license etc), function headers (comments)
Keep in mind that the catalog can be updated from a different endpoint, so we need the basic mechanism to update the local 'cache'. We can then add hooks to trigger the update by certain events (periodically, by 'invalidation' logic, etc).
See DESIGN.md for details
after action been updated, all running containers with all instance action should be deprecated (removed from pool)
Make it possible to contribute to the community a version without preemption
add headers to 'public' functions
See DESIGN.md for details
when action update/create invoked via openwhisk light need to support seamless update actions in cache
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
).
Encapsulate action-related properties and methods into a class
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.