Kubernetes deployment has moved to a new repo (#37)

* New Repo: incubator-openwhisk-deploy-kube
diff --git a/.travis.yml b/.travis.yml
index c56e991..4b3fe9a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,7 +5,6 @@
     - DOCKER_COMPOSE_VERSION: 1.8.1
   matrix:
     - TOOL: docker-compose
-    - TOOL: kubernetes
 
 services:
   - docker
diff --git a/README.md b/README.md
index 29d5feb..16d6bc4 100644
--- a/README.md
+++ b/README.md
@@ -6,14 +6,13 @@
 ## Subprojects
 
 * [docker-compose](docker-compose/README.md) allows testing OpenWhisk locally, using Docker Compose. This is ideal if you are contributing to core development
-* [kubernetes](kubernetes/README.md) is a work in progress to allow local testing on a Kubernetes cluster.
 * [node-local](node-local/README.md) allows testing individual OpenWhisk functions locally, using only node.js. This is ideal if you are writing node.js functions to run in OpenWhisk, but need to emulate some of OpenWhisk's behavior in creating `params` and expecting promises.
 
 ## Travis builds
 
-Each tool in this repository has to provide travis build scripts inside a `.travis` folder. 
+Each tool in this repository has to provide travis build scripts inside a `.travis` folder.
 The folder should define 2 scripts:
-* `setup.sh` - invoked during `before_install` phase 
-* `build.sh` - invokes during `script` phase 
+* `setup.sh` - invoked during `before_install` phase
+* `build.sh` - invokes during `script` phase
 
 For an example check out [docker-compose/.travis](docker-compose/.travis) folder.
diff --git a/kubernetes/.travis/build.sh b/kubernetes/.travis/build.sh
deleted file mode 100755
index 2d7af55..0000000
--- a/kubernetes/.travis/build.sh
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/bin/bash
-
-set -ex
-
-SCRIPTDIR=$(cd $(dirname "$0") && pwd)
-ROOTDIR="$SCRIPTDIR/../"
-
-cd $ROOTDIR
-
-# TODO: need official repo
-# build openwhisk images
-# This way everything that is teset will use the lates openwhisk builds
-
-# run scripts to deploy using the new images.
-kubectl apply -f configure/openwhisk_kube_namespace.yml
-kubectl apply -f configure/configure_whisk.yml
-
-sleep 5
-
-CONFIGURE_POD=$(kubectl get pods --all-namespaces -o wide | grep configure | awk '{print $2}')
-
-PASSED=false
-TIMEOUT=0
-until $PASSED || [ $TIMEOUT -eq 25 ]; do
-  KUBE_DEPLOY_STATUS=$(kubectl -n openwhisk get jobs | grep configure-openwhisk | awk '{print $3}')
-  if [ $KUBE_DEPLOY_STATUS -eq 1 ]; then
-    PASSED=true
-    break
-  fi
-
-  kubectl get pods --all-namespaces -o wide --show-all
-
-  let TIMEOUT=TIMEOUT+1
-  sleep 30
-done
-
-if [ "$PASSED" = false ]; then
-  kubectl -n openwhisk logs $CONFIGURE_POD
-  kubectl get jobs --all-namespaces -o wide --show-all
-  kubectl get pods --all-namespaces -o wide --show-all
-
-  echo "The job to configure OpenWhisk did not finish with an exit code of 1"
-  exit 1
-fi
-
-echo "The job to configure OpenWhisk finished successfully"
-
-# Don't try and perform wsk actions the second it finishes deploying.
-# The CI ocassionaly fails if you perform actions to quickly.
-sleep 30
-
-AUTH_SECRET=$(kubectl -n openwhisk get secret openwhisk-auth-tokens -o yaml | grep 'auth_whisk_system:' | awk '{print $2}' | base64 --decode)
-WSK_PORT=$(kubectl -n openwhisk describe service nginx | grep https-api | grep NodePort| awk '{print $3}' | cut -d'/' -f1)
-
-# download the wsk cli from nginx
-wget --no-check-certificate https://127.0.0.1:$WSK_PORT/cli/go/download/linux/amd64/wsk
-chmod +x wsk
-
-# setup the wsk cli
-./wsk property set --auth $AUTH_SECRET --apihost https://127.0.0.1:$WSK_PORT
-
-# create wsk action
-cat > hello.js << EOL
-function main() {
-  return {payload: 'Hello world'};
-}
-EOL
-
-./wsk -i action create hello hello.js
-
-
-sleep 5
-
-# run the new hello world action
-RESULT=$(./wsk -i action invoke --blocking hello | grep "\"status\": \"success\"")
-
-if [ -z "$RESULT" ]; then
-  echo "FAILED! Could not invoked custom action"
-  exit 1
-fi
-
-echo "PASSED! Deployed openwhisk and invoked custom action"
-
-# push the images to an official repo
diff --git a/kubernetes/.travis/setup.sh b/kubernetes/.travis/setup.sh
deleted file mode 100755
index 96d5f4d..0000000
--- a/kubernetes/.travis/setup.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-# This script assumes Docker is already installed
-#!/bin/bash
-
-TAG=v1.5.5
-
-# set docker0 to promiscuous mode
-sudo ip link set docker0 promisc on
-
-# install etcd
-wget https://github.com/coreos/etcd/releases/download/v3.0.14/etcd-v3.0.14-linux-amd64.tar.gz
-tar xzf etcd-v3.0.14-linux-amd64.tar.gz
-sudo mv etcd-v3.0.14-linux-amd64/etcd /usr/local/bin/etcd
-rm etcd-v3.0.14-linux-amd64.tar.gz
-rm -rf etcd-v3.0.14-linux-amd64
-
-# download kubectl
-wget https://storage.googleapis.com/kubernetes-release/release/$TAG/bin/linux/amd64/kubectl
-chmod +x kubectl
-sudo mv kubectl /usr/local/bin/kubectl
-
-# download kubernetes
-git clone https://github.com/kubernetes/kubernetes $HOME/kubernetes
-
-pushd $HOME/kubernetes
-  git checkout $TAG
-  kubectl config set-credentials myself --username=admin --password=admin
-  kubectl config set-context local --cluster=local --user=myself
-  kubectl config set-cluster local --server=http://localhost:8080
-  kubectl config use-context local
-
-  # start kubernetes in the background
-  sudo PATH=$PATH:/home/travis/.gimme/versions/go1.7.linux.amd64/bin/go \
-       KUBE_ENABLE_CLUSTER_DNS=true \
-       hack/local-up-cluster.sh &
-popd
-
-# Wait untill kube is up and running
-TIMEOUT=0
-TIMEOUT_COUNT=30
-until $( curl --output /dev/null --silent http://localhost:8080 ) || [ $TIMEOUT -eq $TIMEOUT_COUNT ]; do
-  echo "Kube is not up yet"
-  let TIMEOUT=TIMEOUT+1
-  sleep 20
-done
-
-if [ $TIMEOUT -eq $TIMEOUT_COUNT ]; then
-  echo "Kubernetes is not up and running"
-  exit 1
-fi
-
-echo "Kubernetes is deployed and reachable"
-
-sudo chown -R $USER:$USER $HOME/.kube
diff --git a/kubernetes/Dockerfile b/kubernetes/Dockerfile
deleted file mode 100644
index e4671b8..0000000
--- a/kubernetes/Dockerfile
+++ /dev/null
@@ -1,43 +0,0 @@
-FROM ubuntu:trusty
-ENV DEBIAN_FRONTEND noninteractive
-ENV UCF_FORCE_CONFFNEW YES
-RUN ucf --purge /boot/grub/menu.lst
-
-# install openwhisk
-RUN apt-get -y update && \
-    apt-get -y upgrade && \
-    apt-get install -y \
-      git \
-      curl \
-      wget \
-      apt-transport-https \
-      ca-certificates \
-      python-pip \
-      python-dev \
-      libffi-dev \
-      libssl-dev \
-      libxml2-dev \
-      libxslt1-dev \
-      libjpeg8-dev \
-      zlib1g-dev \
-      vim
-
-# clone OpenWhisk and install dependencies
-# Note that we are not running the install all script since we do not care about Docker.
-RUN git clone https://github.com/openwhisk/openwhisk && \
-    /openwhisk/tools/ubuntu-setup/misc.sh && \
-    /openwhisk/tools/ubuntu-setup/pip.sh && \
-    /openwhisk/tools/ubuntu-setup/java8.sh && \
-    /openwhisk/tools/ubuntu-setup/scala.sh && \
-    /openwhisk/tools/ubuntu-setup/ansible.sh
-
-# Change this to https://github.com/openwhisk/openwhisk-devtools when committing to master
-COPY ansible-kube /openwhisk-devtools/kubernetes/ansible-kube
-COPY configure /openwhisk-devtools/kubernetes/configure
-COPY wsk /openwhisk/bin/wsk
-
-# install kube dependencies
-# Kubernetes assumes that the version is 1.5.0+
-RUN wget https://storage.googleapis.com/kubernetes-release/release/v1.5.0/bin/linux/amd64/kubectl && \
-    chmod +x kubectl && \
-    mv kubectl /usr/local/bin/kubectl
diff --git a/kubernetes/README.md b/kubernetes/README.md
deleted file mode 100644
index 0ce66bc..0000000
--- a/kubernetes/README.md
+++ /dev/null
@@ -1,225 +0,0 @@
-# Deploying OpenWhisk on Kubernetes (work in progress)
-
-[![Build Status](https://travis-ci.org/openwhisk/openwhisk-devtools.svg?branch=master)](https://travis-ci.org/openwhisk/openwhisk-devtools)
-
-This repo can be used to deploy OpenWhisk to a Kubernetes cluster.
-To accomplish this, we have created a Kubernetes job responsible for
-deploying OpenWhisk from inside of Kubernetes. This job runs through
-the OpenWhisk Ansible playbooks with some modifications to "Kube-ify"
-specific actions. The reason for this approach is to try and streamline
-a one size fits all way of deploying OpenWhisk.
-
-Currently, the OpenWhisk deployment is going to be a static set of
-Kube yaml files. It should be easy to use the tools from this
-repo to build your own OpenWhisk deployment job, allowing you to
-set up your own configurations if need be.
-
-The scripts and Docker images should be able to:
-
-1. Build the Docker image used for deploying OpenWhisk.
-2. Uses a Kubernetes job to deploy OpenWhisk.
-
-## Requirements and Limitations
-#### Limitations
-
-As part of the deployment process, OpenWhisk needs to generate a CA-cert
-for Nginx and currently it has a static dns entry. Because of this, you
-will need to connect to OpenWhisk using the insecure mode (e.g. `wsk -i`).
-There is future work to make this CA-cert configurable.
-
-For now, OpenWhisk relies on part of the underlying infrastructure that Kube
-is running on. When deploying the Invoker for OpenWhisk, it mounts the hosts
-Docker socket. This way OpenWhisk can quickly provision actions and does not
-have to run Docker inside of Docker.
-
-A couple of components for OpenWhisk on Kube deployment strategy requires custom
-built Docker images. One such component is Nginx and currently resides at
-[danlavine/whisk_nginx](https://hub.docker.com/r/danlavine/whisk_nginx/). There
-is currently and open [issue](https://github.com/openwhisk/openwhisk/issues/2152)
-to make a public image and once it is resolved, then we can switch to the public image.
-
-The second Docker image this deployment strategy relies on is the OpenWhisk
-configuration image. For now, it is hosted at
-[danlavine/whisk_config](https://hub.docker.com/r/danlavine/whisk_config/),
-but ideally an official images can be built an maintained at some point.
-If you would like to build your own deployment image, see
-[Manually Build Custom Docker Files](#manually-building-custom-docker-files)
-
-Lastly, since OpenWhisk is configured/deployed via a Kubernetes Pod it requires
-the correct kubectl version to be built into `danlavine/whisk_config`. For now,
-there is only a version for Kube 1.5, and one can be built for 1.6, but there
-is no CI to test it against at the moment.
-
-#### Requirements
-
-Because of the limitations mentioned above, all requirments to deploy OpenWhisk
-on Kubernetes need to be met.
-
-**Kubernetes**
-* Kube version 1.5.0-1.5.5
-* Kubernetes has [KubeDNS](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/) deployed
-* (Optional) Kubernetes Pods can receive public addresses.
-  This will be required if you wish to reach Nginx from outside
-  of the Kubernetes cluster's network.
-
-**OpenWhisk**
-* Docker version 1.12+
-
-## Quick Start
-
-To deploy OpenWhisk on Kubernetes, you will need to target a Kubernetes
-environment. If you do not have one up and running, then you can look
-at the [Local Kube Development](#local-kube-development) section
-for setting one up. Once you are successfully targeted, you will need to create a
-create a namespace called `openwhisk`. To do this, you can just run the
-following command.
-
-```
-kubectl apply -f configure/openwhisk_kube_namespace.yml
-```
-
-From here, you should just need to run the Kubernetes job to
-setup the OpenWhisk environment.
-
-```
-kubectl apply -f configure/configure_whisk.yml
-```
-
-To see what is happening during the deployment process,
-you should be able to see the logs from the configuration VM.
-
-```
-kubectl -n openwhisk logs configure-openwhisk-XXXXX
-```
-
-Once the configuration job sucessfuly finishes, you should will need to
-get the auth tokens used to setup OpenWhisk. As part of the deployment
-process, we store these tokens in Kubernetes
-[secrets](https://kubernetes.io/docs/concepts/configuration/secret/).
-To get these tokens, you can run the following command:
-
-```
-kubectl -n openwhisk get secret openwhisk-auth-tokens -o yaml
-```
-
-To use the secrets you will need to base64 decode them. E.g:
-
-```
-export AUTH_SECRET=$(kubectl -n openwhisk get secret openwhisk-auth-tokens -o yaml | grep 'auth_whisk_system:' | awk '{print $2}' | base64 --decode)
-```
-
-From here, you will now need to get the publicly available address
-of Nginx.
- 1. Obtain the IP address of the Kubernetes nodes.
-
- ```
- kubectl get nodes
- ```
-
- 2. Obtain the public port for the Kubernetes Nginx Service
-
- ```
- kubectl -n openwhisk describe service nginx
- ```
-
- From here you should note the port used for the api endpoint. E.g:
-
- ```
- export WSK_PORT=$(kubectl -n openwhisk describe service nginx | grep https-api | grep NodePort| awk '{print $3}' | cut -d'/' -f1)
- ```
-
-Now you should be able to setup the wsk cli like normal and interact with
-Openwhisk.
-
-```
-wsk property set --auth $AUTH_SECRET --apihost https://[nginx_ip]:$WSK_PORT
-```
-
-## Manually Building Custom Docker Files
-
-There are two images that are required when deploying OpenWhisk on Kube,
-Nginx and the OpenWhisk configuration image.
-
-To build these images, there is a helper script to build the
-required dependencies and build the docker images itself. For example,
-the wsk cli is built locally and then coppied into these images.
-
-The script takes in 2 arguments:
-1. (Required) The first argument is the Docker account to push the built images
-   to. For Nginx, it will tag the image as `account_name/whisk_nginx:latest`
-   and the OpenWhisk configuration image will be tagged `account_name/whisk_config:dev`.
-
-   NOTE:  **log into Docker** before running the script or it will
-   fail to properly upload the docker images.
-
-2. (Optional) The second argument is the location of where the
-   [OpenWhisk](https://github.com/openwhisk/openwhisk) repo is installed
-   locally. By default it assumes that this repo exists at
-   `$HOME/workspace/openwhisk`.
-
-If you plan on building your own images and would like to change from `danlavine's`,
-then make sure to update the
-[configure_whisk.yml](configure/configure_whisk.yml) and
-[nginx](ansible-kube/environments/kube/files/nginx.yml) with your images.
-
-To run the script, use the command:
-
-```
-docker/build <username> <(optional) openwhisk dir>
-```
-
-## Editing the Openwhisk Kube Deployment
-#### Kubernetes Deployments and Services
-
-The current Kube Deployment and Services files that define the OpenWhisk
-cluster can be found [here](ansible-kube/environments/kube/files). Only one
-instance of each OpenWhisk process is created, but if you would like
-to increase that number, then this would be the place to do it. Simply edit
-the appropriate file and
-[Manually Build Custom Docker Files](#manually-building-custom-docker-files)
-
-## Development
-#### Local Kube Development
-
-There are a couple ways to bring up Kubernetes locally and currently we
-are using the common `local-up-cluster.sh` script. Take a look at what
-[travis](.travis/setup.sh) does to bring everything up with KubeDNS support.
-
-[Kubeadm](https://kubernetes.io/docs/getting-started-guides/kubeadm/)
-can be deployed with [Callico](https://www.projectcalico.org/) for the
-[network](http://docs.projectcalico.org/v2.1/getting-started/kubernetes/installation/hosted/kubeadm/).
-By default kubeadm runs with KubeDNS already enabled, but please make sure
-to install Kubeadm for Kube version 1.5.
-
-**Minikube is not supported** at this time because it uses an old version
-of docker (1.11.x). See the the [Requirements and Limitations](#requirements-and-limitations)
-section for more info.
-
-#### Deploying OpenWhisk on Kubernetes
-
-When in the process of creating a new deployment, it is nice to
-run things by hand to see what is going on inside the container and
-not have it be removed as soon as it finishes or fails. For this,
-you can change the command of [configure_whisk.yml](configure/configure_whisk.yml)
-to `command: [ "tail", "-f", "/dev/null" ]`. Then just run the
-original command from inside the Pod's container.
-
-#### Cleanup
-
-As part of the development process, you might need to cleanup the Kubernetes
-environment at some point. For this, we want to delete all the Kube deployments,
-services and jobs. For this, you can run the following script:
-
-```
-./kube_environment/cleanup.sh
-```
-## Troubleshooting
-#### Kafka
-
-When deploying Kubernetes on Ubuntu 14.04 with the `local_up_cluster.sh` scripts,
-you might need to allow kube pods to communicate with themselves over KubeDNS.
-To enable this on the Docker network, you will need to run the following command:
-
-```
-ip link set docker0 promisc on
-```
diff --git a/kubernetes/ansible-kube/edge.yml b/kubernetes/ansible-kube/edge.yml
deleted file mode 100644
index 5a0a387..0000000
--- a/kubernetes/ansible-kube/edge.yml
+++ /dev/null
@@ -1,9 +0,0 @@
----
-# This playbook deploys Openwhisk Edge servers.
-# The edge is usually populated with NGINX serving as proxy.
-# The CLI also gets built and published for downloading from NGINX.
-# SDKs for blackbox and iOS get published to NGINX also.
-
-- hosts: edge
-  roles:
-  - nginx
diff --git a/kubernetes/ansible-kube/environments/kube/files/consul-service.yml b/kubernetes/ansible-kube/environments/kube/files/consul-service.yml
deleted file mode 100644
index 9bfceb6..0000000
--- a/kubernetes/ansible-kube/environments/kube/files/consul-service.yml
+++ /dev/null
@@ -1,48 +0,0 @@
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: consul
-  namespace: openwhisk
-  labels:
-    name: consul
-spec:
-  selector:
-    name: consul
-  ports:
-  - name: server
-    protocol: TCP
-    port: 8300
-    targetPort: 8300
-  - name: serflan-tcp
-    protocol: TCP
-    port: 8301
-    targetPort: 8301
-  - name: serflan-udp
-    protocol: UDP
-    port: 8301
-    targetPort: 8301
-  - name: serfwan-tcp
-    protocol: TCP
-    port: 8302
-    targetPort: 8302
-  - name: serfwan-udp
-    protocol: UDP
-    port: 8302
-    targetPort: 8302
-  - name: rpc
-    protocol: TCP
-    port: 8400
-    targetPort: 8400
-  - name: http
-    protocol: TCP
-    port: 8500
-    targetPort: 8500
-  - name: consuldns-tcp
-    protocol: TCP
-    port: 8600
-    targetPort: 8600
-  - name: consuldns-udp
-    protocol: UDP
-    port: 8600
-    targetPort: 8600
diff --git a/kubernetes/ansible-kube/environments/kube/files/consul.yml b/kubernetes/ansible-kube/environments/kube/files/consul.yml
deleted file mode 100644
index 7dfef00..0000000
--- a/kubernetes/ansible-kube/environments/kube/files/consul.yml
+++ /dev/null
@@ -1,79 +0,0 @@
----
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: consul
-  namespace: openwhisk
-  labels:
-    name: consul
-spec:
-  replicas: 1
-  template:
-    metadata:
-      labels:
-        name: consul
-    spec:
-      restartPolicy: Always
-      volumes:
-      - name: dockersock
-        hostPath:
-          path: /var/run/docker.sock
-      - name: consulconf
-        configMap:
-          name: consul
-      containers:
-      - name: consul
-        imagePullPolicy: IfNotPresent
-        image: consul:v0.7.0
-        ports:
-        - name: server
-          protocol: TCP
-          containerPort: 8300
-          hostPort: 8300
-        - name: serflan-tcp
-          protocol: TCP
-          containerPort: 8301
-          hostPort: 8301
-        - name: serflan-udp
-          protocol: UDP
-          containerPort: 8301
-          hostPort: 8301
-        - name: serfwan-tcp
-          protocol: TCP
-          containerPort: 8302
-          hostPort: 8302
-        - name: serfwan-udp
-          protocol: UDP
-          containerPort: 8302
-          hostPort: 8302
-        - name: rpc
-          protocol: TCP
-          containerPort: 8400
-          hostPort: 8400
-        - name: http
-          protocol: TCP
-          containerPort: 8500
-          hostPort: 8500
-        - name: consuldns-tcp
-          protocol: TCP
-          containerPort: 8600
-          hostPort: 8600
-        - name: consuldns-udp
-          protocol: UDP
-          containerPort: 8600
-          hostPort: 8600
-        volumeMounts:
-        - name: consulconf
-          mountPath: "/consul/config/config.json"
-
-      - name: registrator
-        image: gliderlabs/registrator
-        env:
-        - name: MY_POD_IP
-          valueFrom:
-            fieldRef:
-              fieldPath: status.podIP
-        args: [ "-ip", "$(MY_POD_IP)", "-resync", "2", "consul://$(MY_POD_IP):8500" ]
-        volumeMounts:
-        - name: dockersock
-          mountPath: "/tmp/docker.sock"
diff --git a/kubernetes/ansible-kube/environments/kube/files/controller-service.yml b/kubernetes/ansible-kube/environments/kube/files/controller-service.yml
deleted file mode 100644
index 1ef39dc..0000000
--- a/kubernetes/ansible-kube/environments/kube/files/controller-service.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: controller
-  namespace: openwhisk
-  labels:
-    name: controller
-spec:
-  selector:
-    name: controller
-  ports:
-    - port: 10001
-      targetPort: 8080
-      name: controller
diff --git a/kubernetes/ansible-kube/environments/kube/files/controller.yml b/kubernetes/ansible-kube/environments/kube/files/controller.yml
deleted file mode 100644
index 4b27d74..0000000
--- a/kubernetes/ansible-kube/environments/kube/files/controller.yml
+++ /dev/null
@@ -1,67 +0,0 @@
----
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: controller
-  namespace: openwhisk
-  labels:
-    name: controller
-spec:
-  replicas: 1
-  template:
-    metadata:
-      labels:
-        name: controller
-    spec:
-      restartPolicy: Always
-
-      containers:
-      - name: controller
-        imagePullPolicy: Always
-        image: openwhisk/controller
-        command: ["/bin/bash", "-c", "/controller/bin/controller"]
-        ports:
-        - name: controller
-          containerPort: 8080
-        env:
-        - name: "COMPONENT_NAME"
-          value: "controller"
-        - name: "CONSULSERVER_HOST"
-          value: "consul.openwhisk"
-        - name: "CONSUL_HOST_PORT4"
-          value: "8500"
-        - name: "KAFKA_NUMPARTITIONS"
-          value: "2"
-        - name: "SERVICE_CHECK_HTTP"
-          value: "/ping"
-        - name: "SERVICE_CHECK_TIMEOUT"
-          value: "2s"
-        - name: "SERVICE_CHECK_INTERVAL"
-          value: "15s"
-        - name: "PORT"
-          value: "8080"
-        - name: "WHISK_VERSION_NAME"
-          valueFrom:
-            configMapKeyRef:
-              name: controller
-              key: whisk.version.name
-        - name: "WHISK_VERSION_DATE"
-          valueFrom:
-            configMapKeyRef:
-              name: controller
-              key: whisk.version.date
-        - name: "WHISK_VERSION_BUILDNO"
-          valueFrom:
-            configMapKeyRef:
-              name: controller
-              key: whisk.version.buildno
-        - name: "JAVA_OPTS"
-          valueFrom:
-            configMapKeyRef:
-              name: controller
-              key: java.opts
-        - name: "CONTROLLER_OPTS"
-          valueFrom:
-            configMapKeyRef:
-              name: controller
-              key: controller.opts
diff --git a/kubernetes/ansible-kube/environments/kube/files/db-service.yml b/kubernetes/ansible-kube/environments/kube/files/db-service.yml
deleted file mode 100644
index ee1ed05..0000000
--- a/kubernetes/ansible-kube/environments/kube/files/db-service.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: couchdb
-  namespace: openwhisk
-  labels:
-    name: couchdb
-spec:
-  selector:
-    name: couchdb
-  ports:
-    - port: 5984
-      targetPort: 5984
-      name: couchdb
diff --git a/kubernetes/ansible-kube/environments/kube/files/db.yml b/kubernetes/ansible-kube/environments/kube/files/db.yml
deleted file mode 100644
index 78de1af..0000000
--- a/kubernetes/ansible-kube/environments/kube/files/db.yml
+++ /dev/null
@@ -1,24 +0,0 @@
----
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: couchdb
-  namespace: openwhisk
-  labels:
-    name: couchdb
-spec:
-  replicas: 1
-  template:
-    metadata:
-      labels:
-        name: couchdb
-    spec:
-      restartPolicy: Always
-
-      containers:
-      - name: couchdb
-        imagePullPolicy: IfNotPresent
-        image: couchdb:1.6
-        ports:
-        - name: couchdb
-          containerPort: 5984
diff --git a/kubernetes/ansible-kube/environments/kube/files/invoker-service.yml b/kubernetes/ansible-kube/environments/kube/files/invoker-service.yml
deleted file mode 100644
index 9c0e093..0000000
--- a/kubernetes/ansible-kube/environments/kube/files/invoker-service.yml
+++ /dev/null
@@ -1,16 +0,0 @@
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: invoker
-  namespace: openwhisk
-  labels:
-    name: invoker
-spec:
-  selector:
-    name: invoker
-  clusterIP: None
-  ports:
-    - port: 8080
-      targetPort: 8080
-      name: invoker
diff --git a/kubernetes/ansible-kube/environments/kube/files/invoker.yml b/kubernetes/ansible-kube/environments/kube/files/invoker.yml
deleted file mode 100644
index 7ae579e..0000000
--- a/kubernetes/ansible-kube/environments/kube/files/invoker.yml
+++ /dev/null
@@ -1,76 +0,0 @@
----
-apiVersion: apps/v1beta1
-kind: StatefulSet
-metadata:
-  name: invoker
-  namespace: openwhisk
-  labels:
-    name: invoker
-spec:
-  replicas: 1
-  serviceName: "invoker"
-  template:
-    metadata:
-      labels:
-        name: invoker
-    spec:
-      restartPolicy: Always
-
-      volumes:
-      - name: cgroup
-        hostPath:
-          path: "/sys/fs/cgroup"
-      - name: runc
-        hostPath:
-          path: "/run/runc"
-      - name: dockerrootdir
-        hostPath:
-          path: "/var/lib/docker/containers"
-      - name: dockersock
-        hostPath:
-          path: "/var/run/docker.sock"
-      - name: apparmor
-        hostPath:
-          path: "/usr/lib/x86_64-linux-gnu/libapparmor.so.1"
-
-      containers:
-      - name: invoker
-        imagePullPolicy: Always
-        image: openwhisk/invoker
-        command: [ "/bin/bash", "-c", "COMPONENT_NAME=$(hostname | cut -d'-' -f2) /invoker/bin/invoker `hostname | cut -d'-' -f2`" ]
-        env:
-          - name: "CONSULSERVER_HOST"
-            value: "consul.openwhisk"
-          - name: "CONSUL_HOST_PORT4"
-            value: "8500"
-          - name: "PORT"
-            value: "8080"
-          - name: "SELF_DOCKER_ENDPOINT"
-            value: "localhost"
-          - name: "SERVICE_CHECK_HTTP"
-            value: "/ping"
-          - name: "SERVICE_CHECK_TIMEOUT"
-            value: "2s"
-          - name: "SERVICE_CHECK_INTERVAL"
-            value: "15s"
-        ports:
-        - name: invoker
-          containerPort: 8080
-        volumeMounts:
-        - name: cgroup
-          mountPath: "/sys/fs/cgroup"
-        - name: runc
-          mountPath: "/run/runc"
-        - name: dockersock
-          mountPath: "/var/run/docker.sock"
-        - name: dockerrootdir
-          mountPath: "/containers"
-        - name: apparmor
-          mountPath: "/usr/lib/x86_64-linux-gnu/libapparmor.so.1"
-        lifecycle:
-          postStart:
-            exec:
-              command:
-              - "/bin/bash"
-              - "-c"
-              - "docker pull openwhisk/nodejs6action && docker pull openwhisk/dockerskeleton && docker pull openwhisk/python2action && docker pull openwhisk/python3action && docker pull openwhisk/swift3action && docker pull openwhisk/java8action"
diff --git a/kubernetes/ansible-kube/environments/kube/files/kafka-service.yml b/kubernetes/ansible-kube/environments/kube/files/kafka-service.yml
deleted file mode 100644
index 093ed76..0000000
--- a/kubernetes/ansible-kube/environments/kube/files/kafka-service.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: kafka
-  namespace: openwhisk
-  labels:
-    name: kafka
-spec:
-  selector:
-    name: kafka
-  ports:
-    - port: 9092
-      targetPort: 9092
-      name: kafka
diff --git a/kubernetes/ansible-kube/environments/kube/files/kafka.yml b/kubernetes/ansible-kube/environments/kube/files/kafka.yml
deleted file mode 100644
index 02785ec..0000000
--- a/kubernetes/ansible-kube/environments/kube/files/kafka.yml
+++ /dev/null
@@ -1,29 +0,0 @@
----
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: kafka
-  namespace: openwhisk
-  labels:
-    name: kafka
-spec:
-  replicas: 1
-  template:
-    metadata:
-      labels:
-        name: kafka
-    spec:
-      restartPolicy: Always
-
-      containers:
-      - name: kafka
-        image: ches/kafka:0.10.0.1
-        imagePullPolicy: IfNotPresent
-        env:
-        - name: "KAFKA_ADVERTISED_HOST_NAME"
-          value: kafka.openwhisk
-        - name: "KAFKA_PORT"
-          value: "9092"
-        ports:
-        - name: kafka
-          containerPort: 9092
diff --git a/kubernetes/ansible-kube/environments/kube/files/nginx-service.yml b/kubernetes/ansible-kube/environments/kube/files/nginx-service.yml
deleted file mode 100644
index c1758d3..0000000
--- a/kubernetes/ansible-kube/environments/kube/files/nginx-service.yml
+++ /dev/null
@@ -1,22 +0,0 @@
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: nginx
-  namespace: openwhisk
-  labels:
-    name: nginx
-spec:
-  type: NodePort
-  selector:
-    name: nginx
-  ports:
-    - port: 80
-      targetPort: 80
-      name: http
-    - port: 443
-      targetPort: 443
-      name: https-api
-    - port: 8443
-      targetPort: 8443
-      name: https-admin
diff --git a/kubernetes/ansible-kube/environments/kube/files/nginx.yml b/kubernetes/ansible-kube/environments/kube/files/nginx.yml
deleted file mode 100644
index d9780b2..0000000
--- a/kubernetes/ansible-kube/environments/kube/files/nginx.yml
+++ /dev/null
@@ -1,52 +0,0 @@
----
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: nginx
-  namespace: openwhisk
-  labels:
-    name: nginx
-spec:
-  replicas: 1
-  template:
-    metadata:
-      labels:
-        name: nginx
-    spec:
-      restartPolicy: Always
-      volumes:
-      - name: nginx-certs
-        configMap:
-          name: nginx
-          items:
-          - key: "openwhisk-cert.pem"
-            path: openwhisk-cert.pem
-          - key: "openwhisk-key.pem"
-            path: openwhisk-key.pem
-      - name: nginx-conf
-        configMap:
-          name: nginx
-          items:
-          - key: "nginx.conf"
-            path: nginx.conf
-      - name: logs
-        emptyDir: {}
-      containers:
-      - name: nginx
-        imagePullPolicy: Always
-        image: danlavine/whisk_nginx
-        ports:
-        - name: http
-          containerPort: 80
-        - name: http-api
-          containerPort: 443
-        - name: https-admin
-          containerPort: 8443
-        volumeMounts:
-        - name: nginx-conf
-          mountPath: "/etc/nginx/nginx.conf"
-          subPath: "nginx.conf"
-        - name: nginx-certs
-          mountPath: "/etc/nginx/certs"
-        - name: logs
-          mountPath: "/logs"
diff --git a/kubernetes/ansible-kube/environments/kube/files/zookeeper-service.yml b/kubernetes/ansible-kube/environments/kube/files/zookeeper-service.yml
deleted file mode 100644
index f48773c..0000000
--- a/kubernetes/ansible-kube/environments/kube/files/zookeeper-service.yml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: zookeeper
-  namespace: openwhisk
-  labels:
-    name: zookeeper
-spec:
-  selector:
-    name: zookeeper
-  ports:
-    - port: 2181
-      targetPort: 2181
-      name: zookeeper
-    - port: 2888
-      targetPort: 2888
-      name: server
-    - port: 3888
-      targetPort: 3888
-      name: leader-election
diff --git a/kubernetes/ansible-kube/environments/kube/files/zookeeper.yml b/kubernetes/ansible-kube/environments/kube/files/zookeeper.yml
deleted file mode 100644
index cd292c5..0000000
--- a/kubernetes/ansible-kube/environments/kube/files/zookeeper.yml
+++ /dev/null
@@ -1,28 +0,0 @@
----
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: zookeeper
-  namespace: openwhisk
-  labels:
-    name: zookeeper
-spec:
-  replicas: 1
-  template:
-    metadata:
-      labels:
-        name: zookeeper
-    spec:
-      restartPolicy: Always
-
-      containers:
-      - name: zookeeper
-        image: zookeeper:3.4
-        imagePullPolicy: IfNotPresent
-        ports:
-        - name: zookeeper
-          containerPort: 2181
-        - name: server
-          containerPort: 2888
-        - name: leader-election
-          containerPort: 3888
diff --git a/kubernetes/ansible-kube/environments/kube/group_vars/all b/kubernetes/ansible-kube/environments/kube/group_vars/all
deleted file mode 100644
index 80dee7e..0000000
--- a/kubernetes/ansible-kube/environments/kube/group_vars/all
+++ /dev/null
@@ -1,63 +0,0 @@
----
-# general properties
-kube_pod_dir: "{{ playbook_dir }}/environments/kube/files"
-whisk_version_name: kube
-whisk_logs_dir: /tmp/wsklogs
-
-# docker properties
-docker_dns: ""
-docker_registry: ""
-docker_image_prefix: "openwhisk"
-
-# CouchDB properties
-db_host: couchdb.openwhisk
-db_provider: CouchDB
-db_port: 5984
-db_protocol: http
-db_username: couch_user
-db_password: couch_password
-db_auth: "subjects"
-db_prefix: "ubuntu_kube-1-4-1_"
-db_split_actions_and_activations: true
-
-# apigw db credentials minimum read/write
-db_apigw_username: "couch_user"
-db_apigw_password: "couch_password"
-db_apigw: "ubuntu_kube-1-4-1_gwapis"
-apigw_initdb: true
-
-# API GW connection configuration
-apigw_auth_user: ""
-apigw_auth_pwd: ""
-apigw_host: "nginx.openwhisk"
-apigw_host_v2: "nginx.openwhisk"
-whisk_api_host_name: "nginx.openwhisk"
-
-
-# consul properties
-consul_host: consul.openwhisk
-consul_conf_dir: /tmp/consul
-
-# nginx properties
-nginx_conf_dir: /tmp/nginx
-cli_nginx_dir: "/tmp/nginx/cli/go/download"
-nginx_host: nginx.openwhisk
-
-# controller properties
-controller_host: controller.openwhisk
-
-# kafka properties
-kafka_host: kafka.openwhisk
-zookeeper_host: zookeeper.openwhisk
-
-# invoker properties
-# The invoker_count property is overwritten by the (kubernetes/configure/configure.sh)
-# script. This way the source of truth for the number of Invoker instances is kept
-# in the Kubernetes Invoker deployment file. The configure.sh script will read the
-# Kube file and replace this one to keep everything in sync.
-invoker_count: REPLACE_INVOKER_COUNT
-invoker_port: 8080
-
-# registry
-registry_conf_dir: /tmp/registry
-registry_storage_dir: "/"
diff --git a/kubernetes/ansible-kube/environments/kube/hosts b/kubernetes/ansible-kube/environments/kube/hosts
deleted file mode 100644
index a3e1d30..0000000
--- a/kubernetes/ansible-kube/environments/kube/hosts
+++ /dev/null
@@ -1,26 +0,0 @@
-; the first parameter in a host is the inventory_hostname which has to be
-; either an ip
-; or a resolvable hostname
-
-; used for local actions only
-ansible ansible_connection=local
-[edge]
-127.0.0.1 ansible_connection=local
-
-[controllers]
-127.0.0.1 ansible_connection=local
-
-[kafka]
-127.0.0.1 ansible_connection=local
-
-[consul_servers]
-127.0.0.1 ansible_connection=local
-
-[db]
-127.0.0.1 ansible_connection=local
-
-[invokers]
-127.0.0.1 ansible_connection=local
-
-[registry]
-127.0.0.1 ansible_connection=local
diff --git a/kubernetes/ansible-kube/openwhisk.yml b/kubernetes/ansible-kube/openwhisk.yml
deleted file mode 100644
index 94dfcfe..0000000
--- a/kubernetes/ansible-kube/openwhisk.yml
+++ /dev/null
@@ -1,16 +0,0 @@
----
-# This playbook deploys an Openwhisk stack.
-# It assumes you have already set up your database with the respective db provider playbook (currently cloudant.yml or couchdb.yml)
-# It assumes that wipe.yml have being deployed at least once
-
-- include: consul.yml
-
-- include: kafka.yml
-
-- include: controller.yml
-
-- include: invoker.yml
-
-- include: edge.yml
-
-- include: routemgmt.yml
diff --git a/kubernetes/ansible-kube/roles/consul/tasks/deploy.yml b/kubernetes/ansible-kube/roles/consul/tasks/deploy.yml
deleted file mode 100644
index c7f61e4..0000000
--- a/kubernetes/ansible-kube/roles/consul/tasks/deploy.yml
+++ /dev/null
@@ -1,50 +0,0 @@
----
-# This role will install Consul Servers/Agents in all machines. After that it installs the Registrators.
-# There is a group of machines in the corresponding environment inventory called 'consul_servers' where the Consul Servers are installed
-# In this way they build up a Consul Cluster
-# Other machines that are not in the 'consul_servers' group, have the Consul Agents
-# The template 'config.json.j2' will look at the environment inventory to decide to generate a config file for booting a server or an agent
-
-- name: ensure consul config directory exists
-  file:
-    path: "{{ consul_conf_dir }}"
-    state: directory
-  when: "'consul_servers' in group_names"
-
-- name: copy template from local to remote (which is really local) and fill in templates
-  template:
-    src: config.json.j2
-    dest: "{{ consul_conf_dir }}/config.json"
-  when: "'consul_servers' in group_names"
-
-- name: create configmap
-  shell: "kubectl create configmap consul --from-file={{ consul_conf_dir }}/config.json"
-
-- name: create consul deployment
-  shell: "kubectl apply -f {{kube_pod_dir}}/consul.yml"
-
-- name: wait until the Consul Server/Agent in this host is up and running
-  uri:
-    method: PUT
-    url: "http://{{ consul_host }}:{{ consul.port.http }}/v1/kv/consulIsAlive"
-    body: 'true'
-  register: result
-  until: result.status == 200
-  retries: 20
-  delay: 10
-  when: "'consul_servers' in group_names"
-
-- name: delete is alive token from Consul Server/Agent
-  uri:
-    method: DELETE
-    url: "http://{{ consul_host }}:{{ consul.port.http }}/v1/kv/consulIsAlive"
-  register: result
-  until: result.status == 200
-  retries: 10
-  delay: 1
-  when: "'consul_servers' in group_names"
-
-- name: notify handler to fill in Consul KV store with parameters in whisk.properties
-  command: "true"
-  notify: fill consul kv
-  when: "'consul_servers' in group_names"
diff --git a/kubernetes/ansible-kube/roles/consul/templates/config.json.j2 b/kubernetes/ansible-kube/roles/consul/templates/config.json.j2
deleted file mode 100644
index e64cb5f..0000000
--- a/kubernetes/ansible-kube/roles/consul/templates/config.json.j2
+++ /dev/null
@@ -1,14 +0,0 @@
-{# this template is used to generate a config.json for booting a consul server #}
-{
-    "server": true,
-    "data_dir": "/consul/data",
-    "ui": true,
-    "log_level": "WARN",
-    "client_addr": "0.0.0.0",
-    "advertise_addr": "{{ consul_host }}",
-    "ports": {
-        "dns": 8600
-    },
-    "bootstrap": true,
-    "disable_update_check": true
-}
diff --git a/kubernetes/ansible-kube/roles/controller/tasks/deploy.yml b/kubernetes/ansible-kube/roles/controller/tasks/deploy.yml
deleted file mode 100644
index 43c7407..0000000
--- a/kubernetes/ansible-kube/roles/controller/tasks/deploy.yml
+++ /dev/null
@@ -1,27 +0,0 @@
----
-# This role will install Controller in group 'controllers' in the environment inventory
-- name: create controller config map
-  shell: "kubectl create configmap controller --from-literal=whisk.version.name={{whisk_version_name}} --from-literal=whisk.version.date={{whisk.version.date}} --from-literal=whisk.version.buildno={{docker_image_tag}} --from-literal=java.opts=-Xmx{{controller.heap}} --from-literal=controller.opts={{controller.arguments}}"
-
-- name: create controller deployment
-  shell: "kubectl apply -f {{kube_pod_dir}}/controller.yml"
-
-- name: get controller pods
-  shell: "kubectl -n openwhisk get pods --show-all | grep controller | awk '{print $1}'"
-  register: pods
-  until: pods.stdout != ""
-  retries: 5
-  delay: 2
-
-- name: set controller pods
-  set_fact:
-    controller_pods: "{{ pods.stdout_lines }}"
-
-- name: wait until the Controller in this host is up and running
-  shell: "kubectl -n openwhisk exec {{ item[0] }} -- bash -c 'curl -I http://0.0.0.0:8080/ping'"
-  register: result
-  until: (result.rc == 0) and (result.stdout.find("200 OK") != -1)
-  retries: 20
-  delay: 10
-  with_items:
-    - ["{{ controller_pods }}"]
diff --git a/kubernetes/ansible-kube/roles/couchdb/tasks/deploy.yml b/kubernetes/ansible-kube/roles/couchdb/tasks/deploy.yml
deleted file mode 100644
index c26c084..0000000
--- a/kubernetes/ansible-kube/roles/couchdb/tasks/deploy.yml
+++ /dev/null
@@ -1,37 +0,0 @@
----
-# This role will run a CouchDB server on the db group
-
-- name: check if db credentials are valid for CouchDB
-  fail: msg="The db provider in your {{ inventory_dir }}/group_vars/all is {{ db_provider }}, it has to be CouchDB, pls double check"
-  when: db_provider != "CouchDB"
-
-- name: create db pod
-  shell: "kubectl apply -f {{kube_pod_dir}}/db.yml"
-
-- name: wait until the CouchDB in this host is up and running
-  wait_for:
-    delay: 2
-    host: "{{ db_host }}"
-    port: "{{ db_port }}"
-    timeout: 60
-
-- name: create admin user
-  uri:
-    url: "{{ db_protocol }}://{{ db_host }}:{{ db_port }}/_config/admins/{{ db_username }}"
-    method: PUT
-    body: >
-        "{{ db_password }}"
-    body_format: json
-    status_code: 200
-
-- name: disable reduce limit on views
-  uri:
-    url: "{{ db_protocol }}://{{ db_host }}:{{ db_port }}/_config/query_server_config/reduce_limit"
-    method: PUT
-    body: >
-        "false"
-    body_format: json
-    status_code: 200
-    user: "{{ db_username }}"
-    password: "{{ db_password }}"
-    force_basic_auth: yes
diff --git a/kubernetes/ansible-kube/roles/couchdb/tasks/main.yml b/kubernetes/ansible-kube/roles/couchdb/tasks/main.yml
deleted file mode 100644
index 5169f94..0000000
--- a/kubernetes/ansible-kube/roles/couchdb/tasks/main.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-# This role will deploy a database server. Use the role if you want to use CouchCB locally.
-# In deploy mode it will start the CouchDB container.
-
-- include: deploy.yml
-  when: mode == "deploy"
diff --git a/kubernetes/ansible-kube/roles/invoker/tasks/deploy.yml b/kubernetes/ansible-kube/roles/invoker/tasks/deploy.yml
deleted file mode 100644
index aea853b..0000000
--- a/kubernetes/ansible-kube/roles/invoker/tasks/deploy.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-# This role installs invokers.
-- name: create invoker deployment
-  shell: "kubectl apply -f {{kube_pod_dir}}/invoker.yml"
-
-# The invoker image has a long pull timout since it needs to pull
-# all of the Docker images whisk depends on.
-- name: wait until Invoker is up and running
-  uri:
-    url: "http://invoker-{{ item }}.invoker.openwhisk:{{ invoker_port }}/ping"
-  register: result
-  until: result.status == 200
-  retries: 50
-  delay: 20
-  with_sequence: start=0 count={{ invoker_count }}
diff --git a/kubernetes/ansible-kube/roles/kafka/tasks/deploy.yml b/kubernetes/ansible-kube/roles/kafka/tasks/deploy.yml
deleted file mode 100644
index 4b46c37..0000000
--- a/kubernetes/ansible-kube/roles/kafka/tasks/deploy.yml
+++ /dev/null
@@ -1,72 +0,0 @@
----
-# This role will install Kafka with Zookeeper in group 'kafka' in the environment inventory
-- name: create zookeeper deployment
-  shell: "kubectl apply -f {{kube_pod_dir}}/zookeeper.yml"
-
-- name: create kafka deployment
-  shell: "kubectl apply -f {{kube_pod_dir}}/kafka.yml"
-
-- name: get zookeeper pods
-  shell: "kubectl -n openwhisk get pods --show-all | grep zookeeper | awk '{print $1}'"
-  register: zookeeperPods
-  until: zookeeperPods.stdout != ""
-  retries: 5
-  delay: 2
-
-- name: set zookeeper pods
-  set_fact:
-    zookeeper_pods: "{{ zookeeperPods.stdout_lines }}"
-
-- name: get kafka pods
-  shell: "kubectl -n openwhisk get pods --show-all | grep kafka | awk '{print $1}'"
-  register: kafkaPods
-  until: kafkaPods.stdout != ""
-  retries: 5
-  delay: 2
-
-- name: set kafka pods
-  set_fact:
-    kafka_pods: "{{ kafkaPods.stdout_lines }}"
-
-- name: wait until the Zookeeper in this host is up and running
-  shell: "kubectl -n openwhisk exec {{ item[0] }} -c zookeeper -- bash -c 'echo ruok | nc -w 3 0.0.0.0:{{ zookeeper.port }}'"
-  register: result
-  until: (result.rc == 0) and (result.stdout == 'imok')
-  retries: 36
-  delay: 5
-  with_nested:
-    - ["{{ zookeeper_pods }}"]
-
-- name: wait until the kafka server started up
-  shell: "kubectl -n openwhisk logs {{ item[0] }} -c kafka"
-  register: result
-  until: ('[Kafka Server 0], started' in result.stdout)
-  retries: 10
-  delay: 5
-  with_nested:
-    - ["{{ kafka_pods }}"]
-
-- name: create the active-ack and health topic
-  shell: "kubectl exec {{ item[0] }} -c kafka -- bash -c 'unset JMX_PORT; kafka-topics.sh --create --topic {{ item[1] }} --replication-factor 1 --partitions 1 --zookeeper {{ zookeeper_host }}:{{ zookeeper.port }}'"
-  register: command_result
-  failed_when: "not ('Created topic' in command_result.stdout or 'already exists' in command_result.stdout)"
-  with_nested:
-  - "{{ kafka_pods }}"
-  - [ 'command', 'health' ]
-
-- name: define invoker list
-  set_fact:
-    invoker_list: []
-
-- name: create the invoker list
-  set_fact:
-    invoker_list: "{{invoker_list}} + [{{item}}]"
-  with_sequence: start=0 count={{ invoker_count }}
-
-- name: create the invoker topics
-  shell: " kubectl exec {{ item[0] }} -c kafka -- bash -c 'unset JMX_PORT; kafka-topics.sh --create --topic invoker{{ item[1] }} --replication-factor 1 --partitions 1 --zookeeper {{ zookeeper_host }}:{{ zookeeper.port }}'"
-  register: command_result
-  failed_when: "not ('Created topic' in command_result.stdout or 'already exists' in command_result.stdout)"
-  with_nested:
-  - "{{ kafka_pods }}"
-  - "{{ invoker_list }}"
diff --git a/kubernetes/ansible-kube/roles/nginx/tasks/deploy.yml b/kubernetes/ansible-kube/roles/nginx/tasks/deploy.yml
deleted file mode 100644
index f70934d..0000000
--- a/kubernetes/ansible-kube/roles/nginx/tasks/deploy.yml
+++ /dev/null
@@ -1,53 +0,0 @@
----
-# This role starts a nginx component
-
-- name: ensure nginx config directory exists
-  file:
-    path: "{{ nginx_conf_dir }}"
-    state: directory
-
-- name: copy template from local to remote in nginx config directory
-  template:
-    src: nginx.conf.j2
-    dest: "{{ nginx_conf_dir }}/nginx.conf"
-
-- name: copy cert files from local to remote in nginx config directory
-  copy:
-    src: "files/"
-    dest: "{{ nginx_conf_dir }}"
-
-- name: create configmap
-  shell: "kubectl create configmap nginx --from-file={{ nginx_conf_dir }}/nginx.conf --from-file={{ nginx_conf_dir }}/genssl.sh --from-file={{ nginx_conf_dir }}/openwhisk-key.pem --from-file={{ nginx_conf_dir }}/openwhisk-cert.pem --from-file={{ nginx_conf_dir }}/openwhisk-request.csr"
-
-- name: create nginx pod
-  shell: "kubectl create -f {{kube_pod_dir}}/nginx.yml"
-
-# TODO Rebplace this with a proper uri request once certs have been configured correctly
-- name: wait until nginx is up and running
-  shell: "curl -k https://{{ nginx_host }}:{{ nginx.port.api }}"
-  register: result
-  until: (result.rc == 0) and (result.stdout != "")
-  retries: 20
-  delay: 10
-
-- name: get whisk system key
-  shell: "cat {{ playbook_dir }}/files/auth.whisk.system | base64 --wrap=0"
-  register: auth_whisk_system_var
-
-- name: get whisk system key
-  shell: "cat {{ playbook_dir }}/files/auth.guest | base64 --wrap=0"
-  register: auth_guest_var
-
-- name: set facts
-  set_fact:
-    auth_whisk_system: "{{ auth_whisk_system_var.stdout }}"
-    auth_guest: "{{ auth_guest_var.stdout }}"
-
-- name: fill secret template
-  template:
-    src: secrets.conf.j2
-    dest: "{{ nginx_conf_dir }}/secrets.yml"
-
-- name: create the secrets yaml
-  shell: "kubectl apply -f {{ nginx_conf_dir }}/secrets.yml"
-
diff --git a/kubernetes/ansible-kube/roles/nginx/templates/nginx.conf.j2 b/kubernetes/ansible-kube/roles/nginx/templates/nginx.conf.j2
deleted file mode 100644
index ddd1fc1..0000000
--- a/kubernetes/ansible-kube/roles/nginx/templates/nginx.conf.j2
+++ /dev/null
@@ -1,68 +0,0 @@
-{# this template is used to generate a nginx.conf for booting a nginx server based on the given environment inventory #}
-
-events {
-{# default: 1024 #}
-    worker_connections  4096;
-}
-
-http {
-{# allow large uploads, need to thread proper limit into here #}
-    client_max_body_size 50M;
-
-    rewrite_log on;
-{# change log format to display the upstream information #}
-    log_format combined-upstream '$remote_addr - $remote_user [$time_local] '
-        '$request $status $body_bytes_sent '
-        '$http_referer $http_user_agent $upstream_addr';
-    access_log /logs/nginx_access.log combined-upstream;
-
-    server {
-        listen 443 default ssl;
-
-        # match namespace, note while OpenWhisk allows a richer character set for a
-        # namespace, not all those characters are permitted in the (sub)domain name;
-        # if namespace does not match, no vanity URL rewriting takes place.
-        server_name ~^(?<namespace>[0-9a-zA-Z-]+)\.{{ whisk_api_localhost_name | default(whisk_api_host_name) | default(whisk_api_localhost_name_default) }}$;
-
-        ssl_session_cache    shared:SSL:1m;
-        ssl_session_timeout  10m;
-        ssl_certificate      /etc/nginx/certs/openwhisk-cert.pem;
-        ssl_certificate_key  /etc/nginx/certs/openwhisk-key.pem;
-        ssl_verify_client off;
-        ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;
-        ssl_ciphers RC4:HIGH:!aNULL:!MD5;
-        ssl_prefer_server_ciphers on;
-        proxy_ssl_session_reuse off;
-
-        # proxy to the web action path
-        location / {
-            if ($namespace) {
-              rewrite    /(.*) /api/v1/web/${namespace}/$1 break;
-            }
-            proxy_pass http://{{ controller_host }}:{{ controller.port }};
-            proxy_read_timeout 70s; # 60+10 additional seconds to allow controller to terminate request
-        }
-
-        # proxy to 'public/html' web action by convention
-        location = / {
-            if ($namespace) {
-              rewrite    ^ /api/v1/web/${namespace}/public/index.html break;
-            }
-            proxy_pass http://{{ controller_host }}:{{ controller.port }};
-            proxy_read_timeout 70s; # 60+10 additional seconds to allow controller to terminate request
-        }
-
-        location /blackbox-0.1.0.tar.gz {
-            root /etc/nginx;
-        }
-
-        location /OpenWhiskIOSStarterApp.zip {
-            return 301 https://github.com/openwhisk/openwhisk-client-swift/releases/download/0.2.3/starterapp-0.2.3.zip;
-        }
-
-        location /cli/go/download {
-            autoindex on;
-            root /etc/nginx;
-        }
-    }
-}
diff --git a/kubernetes/ansible-kube/roles/nginx/templates/secrets.conf.j2 b/kubernetes/ansible-kube/roles/nginx/templates/secrets.conf.j2
deleted file mode 100644
index ab252c3..0000000
--- a/kubernetes/ansible-kube/roles/nginx/templates/secrets.conf.j2
+++ /dev/null
@@ -1,8 +0,0 @@
-apiVersion: v1
-kind: Secret
-metadata:
-  name: openwhisk-auth-tokens
-type: Opaque
-data:
-  auth_whisk_system: {{ auth_whisk_system }}
-  auth_guest: {{ auth_guest }}
diff --git a/kubernetes/ansible-kube/roles/routemgmt/tasks/deploy.yml b/kubernetes/ansible-kube/roles/routemgmt/tasks/deploy.yml
deleted file mode 100644
index a797e7b..0000000
--- a/kubernetes/ansible-kube/roles/routemgmt/tasks/deploy.yml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-# Install the API Gateway route management actions.
-- name: install route management actions
-  shell: ./installRouteMgmt.sh {{ catalog_auth_key }} {{ nginx_host }} {{ catalog_namespace }} {{ cli_path }} chdir="{{ openwhisk_home }}/ansible/roles/routemgmt/files"
-  environment:
-    OPENWHISK_HOME: "{{ openwhisk_home }}"
diff --git a/kubernetes/ansible-kube/tasks/initdb.yml b/kubernetes/ansible-kube/tasks/initdb.yml
deleted file mode 100644
index f20356d..0000000
--- a/kubernetes/ansible-kube/tasks/initdb.yml
+++ /dev/null
@@ -1,31 +0,0 @@
----
-# This task will initialize the immortal DBs in the database account.
-# This step is usually done only once per deployment.
-
-- include: db/recreateDb.yml
-  vars:
-    dbName: "{{ db.whisk.auth }}"
-    forceRecreation: False
-
-- include: db/recreateDoc.yml
-  vars:
-    dbName: "{{ db.whisk.auth }}"
-    doc: "{{ lookup('file', '{{ item }}') }}"
-  with_items:
-    - "{{ openwhisk_home }}/ansible/files/auth_index.json"
-    - "{{ openwhisk_home }}/ansible/files/filter_design_document.json"
-
-- name: create necessary "auth" keys
-  include: db/recreateDoc.yml
-  vars:
-    key: "{{ lookup('file', 'files/auth.{{ item }}') }}"
-    dbName: "{{ db.whisk.auth }}"
-    doc: >
-      {
-        "_id": "{{ item }}",
-        "subject": "{{ item }}",
-        "uuid": "{{ key.split(":")[0] }}",
-        "key": "{{ key.split(":")[1] }}",
-        "namespaces": []
-      }
-  with_items: "{{ db.authkeys }}"
diff --git a/kubernetes/ansible-kube/tasks/installOpenwhiskCatalog.yml b/kubernetes/ansible-kube/tasks/installOpenwhiskCatalog.yml
deleted file mode 100644
index 7064e27..0000000
--- a/kubernetes/ansible-kube/tasks/installOpenwhiskCatalog.yml
+++ /dev/null
@@ -1,34 +0,0 @@
----
-# This task will install the standard actions and packages available in openwhisk-catalog repos.
-
-- set_fact:
-    catalog_location={{ item.value.location }}
-    catalog_repo_url={{ item.value.url }}
-    api_host={{ nginx_host }}
-    version="HEAD"
-    repo_update="yes"
-
-- set_fact:
-    version={{ item.value.version }}
-  when: item.value.version is defined
-
-- set_fact:
-    repo_update={{ item.value.repo_update }}
-  when: item.value.repo_update is defined
-
-- name: "ensure catalog_location directory exists"
-  file:
-    path: "{{ catalog_location }}"
-    state: directory
-
-- name: download the catalog repository to the catalog location if necessary
-  git:
-    repo: "{{ catalog_repo_url }}"
-    dest: "{{ catalog_location }}"
-    update: "{{ repo_update }}"
-    version: "{{ version }}"
-
-- name: install the catalog from the catalog location
-  shell: ./installCatalog.sh {{ catalog_auth_key }} {{ api_host }} {{ catalog_namespace }} {{ cli_path }} chdir="{{ catalog_location }}/packages"
-  environment:
-    OPENWHISK_HOME: "{{ openwhisk_home }}"
diff --git a/kubernetes/ansible-kube/tasks/writeWhiskProperties.yml b/kubernetes/ansible-kube/tasks/writeWhiskProperties.yml
deleted file mode 100644
index d066c86..0000000
--- a/kubernetes/ansible-kube/tasks/writeWhiskProperties.yml
+++ /dev/null
@@ -1,17 +0,0 @@
----
-# This task will write whisk.properties to the openwhisk_home.
-# Currently whisk.properties is still needed for consul and tests.
-
-- name: define invoker domains
-  set_fact:
-    invoker_hosts: []
-
-- name: update the invoker domains
-  set_fact:
-    invoker_hosts: "{{ invoker_hosts }} + [ 'invoker-{{item}}.invoker.openwhisk' ]"
-  with_sequence: start=0 count={{ invoker_count }}
-
-- name: write whisk.properties template to openwhisk_home
-  template:
-    src: whisk.properties.j2
-    dest: "{{ openwhisk_home }}/whisk.properties"
diff --git a/kubernetes/ansible-kube/templates/whisk.properties.j2 b/kubernetes/ansible-kube/templates/whisk.properties.j2
deleted file mode 100644
index 1ab149d..0000000
--- a/kubernetes/ansible-kube/templates/whisk.properties.j2
+++ /dev/null
@@ -1,135 +0,0 @@
-openwhisk.home={{ openwhisk_home }}
-
-python.27=python
-use.cli.download=false
-nginx.conf.dir={{ nginx_conf_dir }}
-testing.auth={{ openwhisk_home }}/ansible/files/auth.guest
-vcap.services.file=
-
-whisk.logs.dir={{ whisk_logs_dir }}
-whisk.version.name={{ whisk_version_name }}
-whisk.version.date={{ whisk.version.date }}
-whisk.version.buildno={{ docker_image_tag }}
-whisk.ssl.cert={{ openwhisk_home }}/ansible/roles/nginx/files/openwhisk-cert.pem
-whisk.ssl.key={{ openwhisk_home }}/ansible/roles/nginx/files/openwhisk-key.pem
-whisk.ssl.challenge=openwhisk
-
-{#
- # the whisk.api.host.name must be a name that can resolve form inside an action container,
- # or an ip address reachable from inside the action container.
- #
- # the whisk.api.localhost.name must be a name that resolves from the client; it is either the
- # whisk_api_host_name if it is defined, an environment specific localhost name, or the default
- # localhost name.
- #
- # the whisk.api.vanity.subdomain.parts indicates how many conforming parts the router is configured to
- # match in the subdomain, which it rewrites into a namespace; each part must match ([a-zA-Z0-9]+)
- # with parts separated by a single dash.
- #}
-whisk.api.host.proto={{ whisk_api_host_proto | default('https') }}
-whisk.api.host.port={{ whisk_api_host_port | default('443') }}
-whisk.api.host.name={{ whisk_api_host_name | default(groups['edge'] | first) }}
-whisk.api.localhost.name={{ whisk_api_localhost_name | default(whisk_api_host_name) | default(whisk_api_localhost_name_default) }}
-whisk.api.vanity.subdomain.parts=1
-
-runtimes.manifest={{ runtimesManifest | to_json }}
-defaultLimits.actions.invokes.perMinute={{ defaultLimits.actions.invokes.perMinute }}
-defaultLimits.actions.invokes.concurrent={{ defaultLimits.actions.invokes.concurrent }}
-defaultLimits.triggers.fires.perMinute={{ defaultLimits.triggers.fires.perMinute }}
-defaultLimits.actions.invokes.concurrentInSystem={{ defaultLimits.actions.invokes.concurrentInSystem }}
-defaultLimits.actions.sequence.maxLength={{ defaultLimits.actions.sequence.maxLength }}
-
-{% if limits is defined %}
-limits.actions.invokes.perMinute={{ limits.actions.invokes.perMinute }}
-limits.actions.invokes.concurrent={{ limits.actions.invokes.concurrent }}
-limits.actions.invokes.concurrentInSystem={{ limits.actions.invokes.concurrentInSystem }}
-limits.triggers.fires.perMinute={{ limits.triggers.fires.perMinute }}
-{% endif %}
-
-# DNS host resolution
-consulserver.host={{ consul_host }}
-invoker.hosts={{ invoker_hosts | join(",") }}
-controller.host={{ controller_host }}
-kafka.host={{ kafka_host }}
-zookeeper.host={{ zookeeper_host }}
-edge.host={{ nginx_host }}
-loadbalancer.host={{ controller_host }}
-router.host={{ nginx_host }}
-
-{#
- # replaced host entries
- #
- # consulserver.host={{ groups["consul_servers"]|first }}
- # invoker.hosts={{ groups["invokers"] | join(",") }}
- # controller.host={{ groups["controllers"]|first }}
- # kafka.host={{ groups["kafka"]|first }}
- # zookeeper.host={{ groups["kafka"]|first }}
- # edge.host={{ groups["edge"]|first }}
- # loadbalancer.host={{ groups["controllers"]|first }}
- # router.host={{ groups["edge"]|first }}
- #}
-
-edge.host.apiport=443
-zookeeper.host.port={{ zookeeper.port }}
-kafka.host.port={{ kafka.port }}
-kafkaras.host.port={{ kafka.ras.port }}
-controller.host.port={{ controller.port }}
-loadbalancer.host.port={{ controller.port }}
-consul.host.port4={{ consul.port.http }}
-consul.host.port5={{ consul.port.server }}
-invoker.hosts.baseport={{ invoker_port }}
-
-{#
- # ports that are replaced
- # using Kube stateful sets, we are able to get
- # one DNS entry per IP address. Unlike the usual
- # Kube DNS entries, we are unable to do port mappings.
- # So we need to use the port of the invoker instance.
- #
- #invoker.hosts.baseport={{ invoker.port }}
- #}
-
-invoker.container.network=bridge
-invoker.container.policy={{ invoker_container_policy_name | default()}}
-invoker.numcore={{ invoker.numcore }}
-invoker.coreshare={{ invoker.coreshare }}
-invoker.serializeDockerOp={{ invoker.serializeDockerOp }}
-invoker.serializeDockerPull={{ invoker.serializeDockerPull }}
-invoker.useRunc={{ invoker_use_runc | default(invoker.useRunc) }}
-
-consulserver.docker.endpoint={{ groups["consul_servers"]|first }}:{{ docker.port }}
-edge.docker.endpoint={{ groups["edge"]|first }}:{{ docker.port }}
-kafka.docker.endpoint={{ groups["kafka"]|first }}:{{ docker.port }}
-main.docker.endpoint={{ groups["controllers"]|first }}:{{ docker.port }}
-
-# configure to use the public docker images
-docker.image.prefix=openwhisk
-
-docker.registry={{ docker_registry }}
-#docker.image.prefix={{ docker_image_prefix }}
-#use.docker.registry=false
-docker.port={{ docker.port }}
-docker.timezone.mount=
-docker.image.tag={{ docker_image_tag }}
-docker.tls.cmd=
-docker.addHost.cmd=
-docker.dns.cmd={{ docker_dns }}
-docker.restart.opts={{ docker.restart.policy }}
-
-db.provider={{ db_provider }}
-db.protocol={{ db_protocol }}
-db.host={{ db_host }}
-db.port={{ db_port }}
-db.username={{ db_username }}
-db.password={{ db_password }}
-db.prefix={{ db_prefix }}
-db.whisk.actions={{ db.whisk.actions }}
-db.whisk.activations={{ db.whisk.activations }}
-db.whisk.auths={{ db.whisk.auth }}
-
-apigw.auth.user={{apigw_auth_user}}
-apigw.auth.pwd={{apigw_auth_pwd}}
-apigw.host={{apigw_host}}
-apigw.host.v2={{apigw_host_v2}}
-
-loadbalancer.activationCountBeforeNextInvoker={{ loadbalancer_activation_count_before_next_invoker | default(10) }}
diff --git a/kubernetes/configure/cleanup.sh b/kubernetes/configure/cleanup.sh
deleted file mode 100755
index 581d859..0000000
--- a/kubernetes/configure/cleanup.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env bash
-
-# this script is used to cleanup the OpenWhisk deployment
-
-set -x
-
-# delete OpenWhisk configure job
-kubectl -n openwhisk delete job configure-openwhisk
-
-# delete deployments
-kubectl -n openwhisk delete deployment couchdb
-kubectl -n openwhisk delete deployment consul
-kubectl -n openwhisk delete deployment zookeeper
-kubectl -n openwhisk delete deployment kafka
-kubectl -n openwhisk delete deployment controller
-kubectl -n openwhisk delete statefulsets invoker
-kubectl -n openwhisk delete deployment nginx
-
-# delete configmaps
-kubectl -n openwhisk delete cm consul
-kubectl -n openwhisk delete cm controller
-kubectl -n openwhisk delete cm nginx
-
-# delete services
-kubectl -n openwhisk delete service couchdb
-kubectl -n openwhisk delete service consul
-kubectl -n openwhisk delete service zookeeper
-kubectl -n openwhisk delete service kafka
-kubectl -n openwhisk delete service controller
-kubectl -n openwhisk delete service invoker
-kubectl -n openwhisk delete service nginx
-
-# delete secrets
-kubectl -n openwhisk delete secret openwhisk-auth-tokens
diff --git a/kubernetes/configure/configure.sh b/kubernetes/configure/configure.sh
deleted file mode 100755
index a1e72bf..0000000
--- a/kubernetes/configure/configure.sh
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/usr/bin/env bash
-
-# this script is used to deploy OpenWhisk from a pod already running in
-# kubernetes.
-#
-# Note: This pod assumes that there is an openwhisk namespace and the pod
-# running this script has been created in that namespace.
-
-deployCouchDB() {
-  COUCH_DEPLOYED=$(kubectl -n openwhisk get pods --show-all | grep couchdb | grep "1/1")
-
-  if [ -z "$COUCH_DEPLOYED" ]; then
-   return 0;
-  else
-   return 1;
-  fi
-}
-
-set -ex
-
-# Currently, Consul needs to be seeded with the proper Invoker name to DNS address. To account for
-# this, we need to use StatefulSets(https://kubernetes.io/stutorials/stateful-application/basic-stateful-set/)
-# to generate the Invoker addresses in a guranteed pattern. We can then use properties from the
-# StatefulSet yaml file for OpenWhisk deployment configuration options.
-
-INVOKER_REP_COUNT=$(cat /openwhisk-devtools/kubernetes/ansible-kube/environments/kube/files/invoker.yml | grep 'replicas:' | awk '{print $2}')
-INVOKER_COUNT=${INVOKER_REP_COUNT:-1}
-sed -ie "s/REPLACE_INVOKER_COUNT/$INVOKER_COUNT/g" /openwhisk-devtools/kubernetes/ansible-kube/environments/kube/group_vars/all
-
-# copy the ansible playbooks and tools to this repo
-cp -R /openwhisk/ansible/ /openwhisk-devtools/kubernetes/ansible
-cp -R /openwhisk/tools/ /openwhisk-devtools/kubernetes/tools
-cp -R /openwhisk/bin/ /openwhisk-devtools/kubernetes/bin
-
-mkdir -p /openwhisk-devtools/kubernetes/core
-cp -R /openwhisk/core/routemgmt /openwhisk-devtools/kubernetes/core/routemgmt
-
-# overwrite the default openwhisk ansible with the kube ones.
-cp -R /openwhisk-devtools/kubernetes/ansible-kube/. /openwhisk-devtools/kubernetes/ansible/
-
-# start kubectl in proxy mode so we can talk to the Kube Api server
-kubectl proxy -p 8001 &
-
-pushd /openwhisk-devtools/kubernetes/ansible
-  ansible-playbook -i environments/kube setup.yml
-
-  # Create all of the necessary services
-  kubectl apply -f environments/kube/files/db-service.yml
-  kubectl apply -f environments/kube/files/consul-service.yml
-  kubectl apply -f environments/kube/files/zookeeper-service.yml
-  kubectl apply -f environments/kube/files/kafka-service.yml
-  kubectl apply -f environments/kube/files/controller-service.yml
-  kubectl apply -f environments/kube/files/invoker-service.yml
-  kubectl apply -f environments/kube/files/nginx-service.yml
-
-  if deployCouchDB; then
-    # Create and configure the CouchDB deployment
-    ansible-playbook -i environments/kube couchdb.yml
-    ansible-playbook -i environments/kube initdb.yml
-    ansible-playbook -i environments/kube wipe.yml
-  fi
-
-  # Run through the openwhisk deployment
-  ansible-playbook -i environments/kube openwhisk.yml
-
-  # Post deploy step
-  ansible-playbook -i environments/kube postdeploy.yml
-popd
diff --git a/kubernetes/configure/configure_whisk.yml b/kubernetes/configure/configure_whisk.yml
deleted file mode 100644
index acc7262..0000000
--- a/kubernetes/configure/configure_whisk.yml
+++ /dev/null
@@ -1,21 +0,0 @@
----
-apiVersion: batch/v1
-kind: Job
-metadata:
-  name: configure-openwhisk
-  namespace: openwhisk
-  labels:
-    name: configure-openwhisk
-spec:
-  completions: 1
-  template:
-    metadata:
-      labels:
-        name: config
-    spec:
-      restartPolicy: Never
-      containers:
-      - name: configure-openwhisk
-        image: danlavine/whisk_config:latest
-        imagePullPolicy: Always
-        command: [ "/openwhisk-devtools/kubernetes/configure/configure.sh" ]
diff --git a/kubernetes/configure/openwhisk_kube_namespace.yml b/kubernetes/configure/openwhisk_kube_namespace.yml
deleted file mode 100644
index fbb5f1b..0000000
--- a/kubernetes/configure/openwhisk_kube_namespace.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-kind: Namespace
-apiVersion: v1
-metadata:
-  name: openwhisk
-  labels:
-    name: openwhisk
diff --git a/kubernetes/docker/build.sh b/kubernetes/docker/build.sh
deleted file mode 100755
index f1dc30e..0000000
--- a/kubernetes/docker/build.sh
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/env bash
-
-# This script can be used to build the custom docker images required
-# for deploying openwhisk on Kubernetes.
-
-set -ex
-
-if [ -z "$1" ]; then
-cat <<- EndOfMessage
-  First argument should be location of which docker repo to push all
-  of the built OpenWhisk docker images. This way, Kubernetes can pull
-  any images it needs to.
-EndOfMessage
-
-exit 1
-fi
-
-
-OPENWHISK_DIR=""
-if [ -z "$2" ]; then
-cat <<- EndOfMessage
-  Second argument should be location of the OpenWhisk repo on the local
-  file system. By default, it is assumed to be at $HOME/workspace/openwhisk.
-EndOfMessage
-  OPENWHISK_DIR=$HOME/workspace/openwhisk
-else
-  OPENWHISK_DIR="$2"
-exit 1
-fi
-
-
-SOURCE="${BASH_SOURCE[0]}"
-SCRIPTDIR="$( dirname "$SOURCE" )"
-
-# build nginx
-pushd $SCRIPTDIR/nginx
- pushd $OPENWHISK_DIR
-   ./gradlew tools:cli:distDocker
- popd
-
- # copy whisk cli to nginx directory
- cp $OPENWHISK_DIR/bin/wsk .
-
- mkdir -p blackbox
- pushd blackbox
-   # copy docker sdk to dockerSkeleton in scratch space
-   cp $OPENWHISK_DIR/sdk/docker/buildAndPush.sh .
-   cp $OPENWHISK_DIR/sdk/docker/Dockerfile .
-   cp $OPENWHISK_DIR/sdk/docker/example.c .
-   cp $OPENWHISK_DIR/sdk/docker/README.md .
-
-   # rename base image in Dockerfile
-   sed -i "s|FROM dockerskeleton|FROM openwhisk/dockerskeleton|g" Dockerfile
-
-   # fix file permissions
-   chmod 0755 buildAndPush.sh
-
-   # build blackbox container artifact
-   tar -czf ../blackbox-0.1.0.tar.gz .
- popd
-
- NGINX_IMAGE=$(docker build . | grep "Successfully built" | awk '{print $3}')
- docker tag $NGINX_IMAGE "$1"/whisk_nginx
- docker push "$1"/whisk_nginx
-
- # cleanup
- rm wsk
- rm blackbox-0.1.0.tar.gz
- rm -rf blackbox
-popd
-
-# build the OpenWhisk deploy image
-pushd $SCRIPTDIR/..
- # copy whisk cli
- cp $OPENWHISK_DIR/bin/wsk .
-
- WHISK_DEPLOY_IMAGE=$(docker build . | grep "Successfully built" | awk '{print $3}')
- docker tag $WHISK_DEPLOY_IMAGE "$1"/whisk_config:dev
- docker push "$1"/whisk_config:dev
-
- # rm the whisk cli to keep things clean
- rm wsk
-popd
diff --git a/kubernetes/docker/nginx/Dockerfile b/kubernetes/docker/nginx/Dockerfile
deleted file mode 100644
index 3a4e47b..0000000
--- a/kubernetes/docker/nginx/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM nginx:1.11
-
-COPY wsk /etc/nginx/cli/go/download/linux/amd64/wsk
-COPY blackbox-0.1.0.tar.gz /etc/nginx/blackbox-0.1.0.tar.gz