tree: 2e969ab3d1973fdf462095f19210a216485b9bf3 [path history] [tgz]
  1. .github/
  2. ansible/
  3. bin/
  4. common/
  5. core/
  6. docs/
  7. gradle/
  8. licenses/
  9. proposals/
  10. tests/
  11. tools/
  12. .asf.yaml
  13. .gitattributes
  14. .gitignore
  15. .pydevproject
  16. .scalafmt.conf
  17. build.gradle
  18. CHANGELOG.md
  19. CODE_OF_CONDUCT.md
  20. CONTRIBUTING.md
  21. CREDITS.txt
  22. gradlew
  23. gradlew.bat
  24. Jenkinsfile
  25. LICENSE.txt
  26. NOTICE.txt
  27. README.md
  28. settings.gradle
README.md

OpenWhisk

License Join Slack Twitter

Unit Tests System Tests MultiRuntime Tests Standalone Tests Scheduler Tests Performance Tests codecov

OpenWhisk is a serverless functions platform for building cloud applications. OpenWhisk offers a rich programming model for creating serverless APIs from functions, composing functions into serverless workflows, and connecting events to functions using rules and triggers. Learn more at http://openwhisk.apache.org.

Quick Start

The easiest way to start using OpenWhisk is to install the “Standalone” OpenWhisk stack. This is a full-featured OpenWhisk stack running as a Java process for convenience. Serverless functions run within Docker containers. You will need Docker, Java and Node.js available on your machine.

To get started:

git clone https://github.com/apache/openwhisk.git
cd openwhisk
./gradlew core:standalone:bootRun
  • When the OpenWhisk stack is up, it will open your browser to a functions Playground, typically served from http://localhost:3232. The Playground allows you create and run functions directly from your browser.

  • To make use of all OpenWhisk features, you will need the OpenWhisk command line tool called wsk which you can download from https://s.apache.org/openwhisk-cli-download. Please refer to the CLI configuration for additional details. Typically you configure the CLI for Standalone OpenWhisk as follows:

wsk property set \
  --apihost 'http://localhost:3233' \
  --auth '23bc46b1-71f6-4ed5-8c54-816aa4f8c502:123zO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP'
  • Standalone OpenWhisk can be configured to deploy additional capabilities when that is desirable. Additional resources are available here.

Deploy to Kubernetes

OpenWhisk can also be installed on a Kubernetes cluster. You can use a managed Kubernetes cluster provisioned from a public cloud provider (e.g., AKS, EKS, IKS, GKE), or a cluster you manage yourself. Additionally for local development, OpenWhisk is compatible with Minikube, and Kubernetes for Mac using the support built into Docker 18.06 (or higher).

To get started:

git clone https://github.com/apache/openwhisk-deploy-kube.git

Then follow the instructions in the OpenWhisk on Kubernetes README.md.

Learn Concepts and Commands

Browse the documentation to learn more. Here are some topics you may be interested in:

OpenWhisk Community and Support

Report bugs, ask questions and request features here on GitHub.

You can also join the OpenWhisk Team on Slack https://openwhisk-team.slack.com and chat with developers. To get access to our public Slack team, request an invite https://openwhisk.apache.org/slack.html.

Project Repository Structure

The OpenWhisk system is built from a number of components. The picture below groups the components by their GitHub repos. Please open issues for a component against the appropriate repo (if in doubt just open against the main openwhisk repo).

component/repo mapping

What happens on an invocation?

This diagram depicts the steps which take place within Openwhisk when an action is invoked by the user:

component/repo mapping