The following describes the process of deploying Apache OpenWhisk on Red Hat Container Development Kit using an installation of RHEL/CentOS.


  1. Set Up the KVM Driver.

     sudo /bin/bash -c '# Install Docker Machine v0.15.0
                        curl -L '' -o /usr/local/bin/docker-machine \
                        && chmod +x /usr/local/bin/docker-machine
                        # Install Docker Machine KVM driver for Docker Machine
                        curl -L '' -o /usr/local/bin/docker-machine-driver-kvm \
                        && chmod +x /usr/local/bin/docker-machine-driver-kvm
                        # Install libvirt and qemu-kvm on your system
                        yum install libvirt qemu-kvm
                        # Add yourself to the libvirt group
                        usermod -a -G libvirt $USER
                        # Start the libvirtd service
                        systemctl start libvirtd
                        systemctl enable libvirtd'
  2. Install CDK (minishift).

  3. Configure minishift with ample resources.

     minishift config set cpus 2
     minishift config set memory 8GB
  4. Configure components needed to run minishift.

     minishift setup-cdk
  5. Start minishift.

     minishift start
  6. Make the oc command available in your PATH.

     eval $(minishift oc-env)
  7. Create a new project for OpenWhisk.

     oc new-project openwhisk
  8. Deploy OpenWhisk in your project using the latest ephemeral template.

     && oc process -f $TEMPLATE_PARAMS | oc create -f -
  9. Install OpenWhisk CLI (wsk).

     sudo /bin/bash -c 'curl -L '' | tar -xvzf - -C /bin wsk &>/dev/null'
  10. Config wsk CLI Authentication

    AUTH_SECRET=$(oc get secret whisk.auth -o yaml | grep "system:" | awk '{print $2}' | base64 --decode) \
    && wsk property set --auth $AUTH_SECRET --apihost $(oc get route/openwhisk -o jsonpath='https://{}')
  11. Optionally, install Whisk Deploy (wskdeploy) to help deploy and manage all your OpenWhisk Packages, Actions, APIs, Triggers and Rules using a single command.

    sudo /bin/bash -c 'curl -L '' | tar -xvzf - -C /bin wskdeploy &>/dev/null'
  12. Verify your OpenWhisk environment.

    wsk --insecure list
    wsk --insecure action invoke /whisk.system/utils/echo --param message hello --blocking

    Note that the --insecure option avoids the validation error triggered by the self-signed cert in the nginx service.

  13. Check out Getting started with OpenWhisk.


OpenWhisk is largely credited to IBM for seeding. It is an open source implementation of a cloud-first distributed event-based programming service that allows calling of a specific function in response to an event without requiring any resource management from the developer.

Click here to see a curated list of awesome OpenWhisk things!