/incubator-openwhisk-deploy-kube

This project can be used to deploy Apache OpenWhisk to a Kubernetes cluster

Primary LanguageShellApache License 2.0Apache-2.0

OpenWhisk Deployment for Kubernetes

License Build Status

This repository can be used to deploy OpenWhisk to a Kubernetes cluster.

Table of Contents

Requirements

Several requirements must be met for OpenWhisk to deploy on Kubernetes.

Kubernetes

  • Kubernetes version 1.6+. However, avoid Kubernetes 1.6.3 due to an issue with volume mount subpaths. Our Travis CI testing uses Kubernetes version 1.7.4.
  • The ability to create Ingresses to make a Kubernetes service available outside of the cluster so you can actually use OpenWhisk.
  • Endpoints of Kubernetes services must be able to loopback to themselves ("hairpin mode").

OpenWhisk

  • Docker version 1.12+

Setting up Kubernetes

Using Minikube

For local development and testing, we recommend using Minikube version 0.23+ with the docker network in promiscuous mode. Our Travis CI testing uses Minikube 0.23.0. Take a look at these instructions.

Using a Kubernetes cluster from a cloud provider

You can also provision a Kubernetes cluster from a cloud provider, subject to the cluster meeting the requirements above.

Configuring OpenWhisk

The first time you deploy OpenWhisk on Kubernetes, we recommend following the steps below manually so you can inspect the results and debug your setup. After you are confident that OpenWhisk deploys smoothly on your cluster, you might find it useful to drive your deployments using the script build.sh that we use to deploy OpenWhisk on Kubernetes for our Travis CI testing.

Initial Cluster Configuration

Configure or Deploy CouchDB

Do one of the following:

Deploy Remaining Components

To deploy OpenWhisk on Kubernetes, you must deploy its components in an order that respects their dependencies. Detailed instructions and the supporting configuration files can be found in the kubernetes directory tree. Follow the instructions for each step in order.

Install system actions and the openwhisk catalog

Verify

Your OpenWhisk installation should now be usable. You can test it by following these instructions to define and invoke a sample OpenWhisk action in your favorite programming language.

Note: if you installed self-signed certificates when you configured Nginx, you will need to use wsk -i to suppress certificate checking. This works around cannot validate certificate errors from the wsk CLI.

Cleanup

At some point there might be a need to cleanup the Kubernetes environment. For this, we want to delete all the OpenWhisk deployments, services, jobs and whatever else might be there. This is easily accomplished by deleting the openwhisk namespace:

kubectl delete namespace openwhisk

Issues

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

You can also join our slack channel and chat with developers. To get access to our slack channel, request an invite here.