Deploying OpenWhisk on Google GKE

Overview

Initial setup

Creating the Kubernetes Cluster

Follow Google's instructions to provision your cluster.

Configuring OpenWhisk

We recommend using an nginx ingress when running OpenWhisk on GKE.

According to your nginx ingress settings you can define a value of your choice. Check the official Google Cloud documentation here: https://cloud.google.com/kubernetes-engine/docs/tutorials/configuring-domain-name-static-ip. As stated you can create a domain of the type: openwhisk.<your-chosen-dns-name>.com

You can choose to create a tls secret for that and provide values for and in base64.

To generate the values for and you can use the openssl tool:

openssl req -newkey rsa:2048 -nodes -keyout tls.key -x509 -days 365 -out tls.crt
cat tls.key | base64
cat tls.crt | base64

Now define mycluster.yaml as below:

whisk:
  ingress:
    apiHostName: <domain>
    apiHostPort: 443
    apiHostProto: https
    type: Standard
    domain: <domain>
    tls:
      enabled: true
      secretenabled: true
      createsecret: true
      secretname: openwhisk-ingress-tls-secret
      secrettype: kubernetes.io/tls
      crt: <tlscrt>
      key: <tlskey>
    annotations:
      kubernetes.io/ingress.class: nginx
      kubernetes.io/tls-acme: true
      nginx.ingress.kubernetes.io/proxy-body-size: 0

Hints and Tips

Limitations