You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@openwhisk.apache.org by GitBox <gi...@apache.org> on 2018/06/28 14:34:15 UTC

[GitHub] dgrove-oss closed pull request #237: Final removal of non-Helm based deployment

dgrove-oss closed pull request #237: Final removal of non-Helm based deployment
URL: https://github.com/apache/incubator-openwhisk-deploy-kube/pull/237
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/kubernetes/README.md b/kubernetes/README.md
deleted file mode 100644
index 4b5b355..0000000
--- a/kubernetes/README.md
+++ /dev/null
@@ -1,82 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-# Manual deployment of OpenWhisk on Kubernetes
-
-This file documents the pre-Helm procedures for deploying OpenWhisk on
-Kubernetes.  We no longer recommend using this process, but there are
-still a few configuration wrinkles that have not yet been ported to the
-Helm chart.
-
-## Initial Cluster Configuration
-
-* Follow the steps for initial [Cluster Setup](cluster-setup)
-* Configure your [Ingresses](ingress), including configuring the wsk CLI.
-
-## Configure or Deploy CouchDB
-
-Do one of the following:
-* For development and testing purposes, this repo includes a configuration
-  for deploying a [non-replicated CouchDB instance](couchdb)
-  within the Kubernetes cluster.
-* For a production level CouchDB instance, take a look at the main
-  OpenWhisk [documentation for configuring CouchDB](https://github.com/apache/incubator-openwhisk/blob/master/tools/db/README.md).
-  You will need to define the db.auth secret and db.config configmap as described in the [CouchDB README.md](couchdb/README.md)
-  to match your database deployment and create a CouchDB service instance
-  that forwards connections to your external database.
-
-## 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.
-
-* Deploy [ApiGateway](apigateway)
-* Deploy [Zookeeper](zookeeper)
-* Deploy [Kafka](kafka)
-* Deploy [Controller](controller)
-* Deploy [Invoker](invoker)
-* Deploy [Nginx](nginx)
-
-## Install system actions and the openwhisk catalog
-
-* Install [RouteMgmt](routemgmt)
-* Install [Package Catalog](openwhisk-catalog)
-
-## Verify
-
-Your OpenWhisk installation should now be usable.  You can test it by following
-[these instructions](https://github.com/apache/incubator-openwhisk/blob/master/docs/actions.md)
-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 and all persistent volumes labeled with
-pv-owner=openwhisk:
-
-```
-kubectl delete namespace openwhisk
-kubectl delete persistentvolume -lpv-owner=openwhisk
-```
diff --git a/kubernetes/apigateway/README.md b/kubernetes/apigateway/README.md
deleted file mode 100644
index 0cedf24..0000000
--- a/kubernetes/apigateway/README.md
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-ApiGateway
------
-
-# Deploying
-
-To deploy the ApiGateway, you only need to run the following command:
-
-```
-kubectl apply -f apigateway.yml
-```
diff --git a/kubernetes/apigateway/apigateway.yml b/kubernetes/apigateway/apigateway.yml
deleted file mode 100644
index b746759..0000000
--- a/kubernetes/apigateway/apigateway.yml
+++ /dev/null
@@ -1,94 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
----
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: apigateway
-  namespace: openwhisk
-  labels:
-    name: apigateway
-spec:
-  replicas: 1
-  template:
-    metadata:
-      labels:
-        name: apigateway
-    spec:
-      restartPolicy: Always
-
-      affinity:
-        # prefer to not run on an invoker node (only prefer because of single node clusters)
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 100
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: NotIn
-                values:
-                - invoker
-        # prefer to run on a control-plane node
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 50
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: In
-                values:
-                - control-plane
-        # do not allow more than 1 apigateway instance to run on a node
-        podAntiAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - labelSelector:
-              matchExpressions:
-                - key: name
-                  operator: In
-                  values:
-                  - apigateway
-            topologyKey: "kubernetes.io/hostname"
-      volumes:
-      - name: redis-data
-        persistentVolumeClaim:
-          claimName: pv-apigateway-01
-      initContainers:
-      - name: redis-init
-        image: busybox
-        command:
-          - chown
-          - -v
-          - -R
-          - 999:999
-          - /data
-        volumeMounts:
-        - mountPath: /data
-          name: redis-data
-          readOnly: false
-      containers:
-      - name: redis
-        imagePullPolicy: IfNotPresent
-        image: redis:3.2
-        volumeMounts:
-        - mountPath: /data
-          name: redis-data
-          readOnly: false
-      - name: apigateway
-        imagePullPolicy: Always
-        image: openwhisk/apigateway
-        ports:
-        - name: mgmt
-          containerPort: 8080
-        - name: api
-          containerPort: 9000
-        env:
-        - name: "REDIS_HOST"
-          value: "127.0.0.1"
-        - name: "REDIS_PORT"
-          value: "6379"
-        - name: "PUBLIC_GATEWAY_URL"
-          valueFrom:
-            configMapKeyRef:
-              name: whisk.ingress
-              key: apigw_url
diff --git a/kubernetes/cluster-setup/README.md b/kubernetes/cluster-setup/README.md
deleted file mode 100644
index fb3a730..0000000
--- a/kubernetes/cluster-setup/README.md
+++ /dev/null
@@ -1,102 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-Cluster Setup
--------------
-
-Before deploying the components of OpenWhisk to a Kubernetes cluster,
-some initial configuration must be done to create a namespace
-and authorization secrets that are used by the deployments and
-services that make up OpenWhisk.
-
-Perform the following steps to prepare your cluster for OpenWhisk.
-
-### Create the openwhisk namespace
-
-```
-kubectl apply -f namespace.yml
-```
-
-### Create services
-
-```
-kubectl apply -f services.yml
-```
-
-### Configure system-wide version information and settings
-
-Edit config.env as needed to set the appropriate values for your
-deployment, then create the configmap whisk.config:
-
-```
-kubectl -n openwhisk create cm whisk.config --from-env-file=config.env
-```
-
-### Configure the set of supported runtimes
-
-The file runtimes.json describes the supported action runtimes for
-this installation of OpenWhisk.  The default file is identical to the
-one found in the upstream ansible/files/runtime.json.  After making
-any desired changes, install it in a configmap with
-
-```
-kubectl -n openwhisk create cm whisk.runtimes --from-file=runtimes=runtimes.json
-```
-
-### Configure limits for actions and triggers
-
-Edit limits.env as needed to set the appropriate values for your
-deployment, then create the configmap whisk.limits:
-
-```
-kubectl -n openwhisk create cm whisk.limits --from-env-file=limits.env
-```
-
-### Create authorization secrets
-
-The command below installs the default guest and system authorization
-credentials from the upstream open source project. In production
-deployments, you should obviously use private credentials to create
-these secrets.  The whisk.auth secret is used in subsequent deployment
-steps to authorize pods to install actions and packages into the
-deployed OpenWhisk. If it is not defined those steps will fail.
-
-```
-kubectl -n openwhisk create secret generic whisk.auth --from-file=system=auth.whisk.system --from-file=guest=auth.guest
-
-```
-
-### Create persistent volumes
-
-Several of the OpenWhisk implementation components you will deploy in
-subsequent steps require persistent storage to maintain their state
-across crashes and restarts. The general mechanism in Kubernetes for
-specifying storage needs and binding available storage to pods is
-to match Persistent Volumes to Persistent Volume Claims.
-
-The file persistent-volumes.yml file lists the PersistentVolume
-resources you will need to create and defines them in a manner
-appropriate for running OpenWhisk on minikube.  If you are not
-deploying on minikube, you may need to edit this file to select
-PersistentVolume types provided by your cloud provider. After
-optionally editing the file, apply it with:
-
-```
-kubectl apply -f persistent-volumes.yml
-```
diff --git a/kubernetes/cluster-setup/auth.guest b/kubernetes/cluster-setup/auth.guest
deleted file mode 100644
index 3156274..0000000
--- a/kubernetes/cluster-setup/auth.guest
+++ /dev/null
@@ -1 +0,0 @@
-23bc46b1-71f6-4ed5-8c54-816aa4f8c502:123zO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP
diff --git a/kubernetes/cluster-setup/auth.whisk.system b/kubernetes/cluster-setup/auth.whisk.system
deleted file mode 100644
index e44545b..0000000
--- a/kubernetes/cluster-setup/auth.whisk.system
+++ /dev/null
@@ -1 +0,0 @@
-789c46b1-71f6-4ed5-8c54-816aa4f8c502:abczO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP
diff --git a/kubernetes/cluster-setup/config.env b/kubernetes/cluster-setup/config.env
deleted file mode 100644
index 1de7a56..0000000
--- a/kubernetes/cluster-setup/config.env
+++ /dev/null
@@ -1,5 +0,0 @@
-whisk_version_name=OpenWhisk
-whisk_version_date=2018-01-01T00:00:00Z
-whisk_version_tag=latest
-whisk_cli_version_tag=latest
-whisk_system_namespace=/whisk.system
diff --git a/kubernetes/cluster-setup/limits.env b/kubernetes/cluster-setup/limits.env
deleted file mode 100644
index 87f319f..0000000
--- a/kubernetes/cluster-setup/limits.env
+++ /dev/null
@@ -1,5 +0,0 @@
-actions_invokes_perMinute=60
-actions_invokes_concurrent=30
-actions_invokes_concurrentInSystem=5000
-actions_sequence_maxLength=50
-triggers_fires_perMinute=60
diff --git a/kubernetes/cluster-setup/namespace.yml b/kubernetes/cluster-setup/namespace.yml
deleted file mode 100644
index 75dfb80..0000000
--- a/kubernetes/cluster-setup/namespace.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
-kind: Namespace
-apiVersion: v1
-metadata:
-  name: openwhisk
-  labels:
-    name: openwhisk
diff --git a/kubernetes/cluster-setup/persistent-volumes.yml b/kubernetes/cluster-setup/persistent-volumes.yml
deleted file mode 100644
index 16fe723..0000000
--- a/kubernetes/cluster-setup/persistent-volumes.yml
+++ /dev/null
@@ -1,167 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: pv-apigateway-01
-  labels:
-    pv-owner: openwhisk
-    pv-usage: pv-apigateway
-spec:
-  storageClassName: manual
-  accessModes:
-    - ReadWriteOnce
-  capacity:
-    storage: 1Gi
-  hostPath:
-    path: /data/pv-apigateway-01/
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
-  name: pv-apigateway-01
-  namespace: openwhisk
-spec:
-  storageClassName: manual
-  accessModes:
-    - ReadWriteOnce
-  resources:
-    requests:
-      storage: 1Gi
-  selector:
-    matchLabels:
-      pv-usage: pv-apigateway
-
----
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: pv-couchdb-01
-  labels:
-    pv-owner: openwhisk
-    pv-usage: pv-couchdb
-spec:
-  storageClassName: manual
-  accessModes:
-    - ReadWriteOnce
-  capacity:
-    storage: 2Gi
-  hostPath:
-    path: /data/pv-couchdb-01/
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
-  name: pv-couchdb-01
-  namespace: openwhisk
-spec:
-  storageClassName: manual
-  accessModes:
-    - ReadWriteOnce
-  resources:
-    requests:
-      storage: 2Gi
-  selector:
-    matchLabels:
-      pv-usage: pv-couchdb
-
-
----
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: pv-kafka-01
-  labels:
-    pv-owner: openwhisk
-    pv-usage: pv-kafka
-spec:
-  storageClassName: manual
-  accessModes:
-    - ReadWriteOnce
-  capacity:
-    storage: 2Gi
-  hostPath:
-    path: /data/pv-kafka-01/
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
-  name: pv-kafka-01
-  namespace: openwhisk
-spec:
-  storageClassName: manual
-  accessModes:
-    - ReadWriteOnce
-  resources:
-    requests:
-      storage: 2Gi
-  selector:
-    matchLabels:
-      pv-usage: pv-kafka
-
-
----
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: pv-zookeeper-data-01
-  labels:
-    pv-owner: openwhisk
-    pv-usage: pv-zookeeper-data
-spec:
-  storageClassName: manual
-  accessModes:
-    - ReadWriteOnce
-  capacity:
-    storage: 1Gi
-  hostPath:
-    path: /data/pv-zookeeper-01/
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
-  name: pv-zookeeper-data-01
-  namespace: openwhisk
-spec:
-  storageClassName: manual
-  accessModes:
-    - ReadWriteOnce
-  resources:
-    requests:
-      storage: 1Gi
-  selector:
-    matchLabels:
-      pv-usage: pv-zookeeper-data
----
-apiVersion: v1
-kind: PersistentVolume
-metadata:
-  name: pv-zookeeper-datalog-01
-  labels:
-    pv-owner: openwhisk
-    pv-usage: pv-zookeeper-datalog
-spec:
-  storageClassName: manual
-  accessModes:
-    - ReadWriteOnce
-  capacity:
-    storage: 1Gi
-  hostPath:
-    path: /data/pv-zookeeper-01/
----
-apiVersion: v1
-kind: PersistentVolumeClaim
-metadata:
-  name: pv-zookeeper-datalog-01
-  namespace: openwhisk
-spec:
-  storageClassName: manual
-  accessModes:
-    - ReadWriteOnce
-  resources:
-    requests:
-      storage: 1Gi
-  selector:
-    matchLabels:
-      pv-usage: pv-zookeeper-datalog
diff --git a/kubernetes/cluster-setup/runtimes-minimal-travis.json b/kubernetes/cluster-setup/runtimes-minimal-travis.json
deleted file mode 100644
index f299044..0000000
--- a/kubernetes/cluster-setup/runtimes-minimal-travis.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
-    "runtimes": {
-        "nodejs": [
-            {
-                "kind": "nodejs:6",
-                "default": true,
-                "image": {
-                    "prefix": "openwhisk",
-                    "name": "nodejs6action",
-                    "tag": "latest"
-                },
-                "deprecated": false,
-                "stemCells": [{
-                    "count": 2,
-                    "memory": "256 MB"
-                }]
-            }
-        ],
-        "python": [
-            {
-                "kind": "python:3",
-                "image": {
-                    "prefix": "openwhisk",
-                    "name": "python3action",
-                    "tag": "latest"
-                },
-                "deprecated": false
-            }
-        ]
-    },
-    "blackboxes": [
-        {
-            "prefix": "openwhisk",
-            "name": "dockerskeleton",
-            "tag": "latest"
-        }
-    ]
-}
diff --git a/kubernetes/cluster-setup/runtimes.json b/kubernetes/cluster-setup/runtimes.json
deleted file mode 100644
index 17b9326..0000000
--- a/kubernetes/cluster-setup/runtimes.json
+++ /dev/null
@@ -1,127 +0,0 @@
-{
-    "runtimes": {
-        "nodejs": [
-            {
-                "kind": "nodejs",
-                "image": {
-                    "prefix": "openwhisk",
-                    "name": "nodejsaction",
-                    "tag": "latest"
-                },
-                "deprecated": true
-            },
-            {
-                "kind": "nodejs:6",
-                "default": true,
-                "image": {
-                    "prefix": "openwhisk",
-                    "name": "nodejs6action",
-                    "tag": "latest"
-                },
-                "deprecated": false,
-                "stemCells": [{
-                    "count": 2,
-                    "memory": "256 MB"
-                }]
-            },
-            {
-                "kind": "nodejs:8",
-                "default": false,
-                "image": {
-                    "prefix": "openwhisk",
-                    "name": "action-nodejs-v8",
-                    "tag": "latest"
-                },
-                "deprecated": false
-            }
-        ],
-        "python": [
-            {
-                "kind": "python",
-                "image": {
-                    "prefix": "openwhisk",
-                    "name": "python2action",
-                    "tag": "latest"
-                },
-                "deprecated": false
-            },
-            {
-                "kind": "python:2",
-                "default": true,
-                "image": {
-                    "prefix": "openwhisk",
-                    "name": "python2action",
-                    "tag": "latest"
-                },
-                "deprecated": false
-            },
-            {
-                "kind": "python:3",
-                "image": {
-                    "prefix": "openwhisk",
-                    "name": "python3action",
-                    "tag": "latest"
-                },
-                "deprecated": false
-            }
-        ],
-        "swift": [
-            {
-                "kind": "swift:3.1.1",
-                "image": {
-                    "prefix": "openwhisk",
-                    "name": "action-swift-v3.1.1",
-                    "tag": "latest"
-                },
-                "deprecated": false
-            },
-            {
-                "kind": "swift:4.1",
-                "default": true,
-                "image": {
-                    "prefix": "openwhisk",
-                    "name": "action-swift-v4.1",
-                    "tag": "latest"
-                },
-                "deprecated": false
-            }
-        ],
-        "java": [
-            {
-                "kind": "java",
-                "default": true,
-                "image": {
-                    "prefix": "openwhisk",
-                    "name": "java8action",
-                    "tag": "latest"
-                },
-                "deprecated": false,
-                "attached": {
-                    "attachmentName": "jarfile",
-                    "attachmentType": "application/java-archive"
-                },
-                "sentinelledLogs": false,
-                "requireMain": true
-            }
-        ],
-        "php": [
-            {
-                "kind": "php:7.1",
-                "default": true,
-                "deprecated": false,
-                "image": {
-                    "prefix": "openwhisk",
-                    "name": "action-php-v7.1",
-                    "tag": "latest"
-                }
-            }
-        ]
-    },
-    "blackboxes": [
-        {
-            "prefix": "openwhisk",
-            "name": "dockerskeleton",
-            "tag": "latest"
-        }
-    ]
-}
diff --git a/kubernetes/cluster-setup/services.yml b/kubernetes/cluster-setup/services.yml
deleted file mode 100644
index 2d82850..0000000
--- a/kubernetes/cluster-setup/services.yml
+++ /dev/null
@@ -1,102 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
-########
-# First define services that are exposed via Ingresses to the outside world
-########
----
-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
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: apigateway
-  namespace: openwhisk
-  labels:
-    name: apigateway
-spec:
-  type: NodePort
-  selector:
-    name: apigateway
-  ports:
-    - port: 8080
-      targetPort: 8080
-      name: mgmt
-    - port: 9000
-      targetPort: 9000
-      name: api
-
-########
-# Second define internal services used by the OpenWhisk implementation
-########
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: controller
-  namespace: openwhisk
-  labels:
-    name: controller
-spec:
-  selector:
-    name: controller
-  ports:
-    - port: 8080
-      targetPort: 8080
-      name: http
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: kafka
-  namespace: openwhisk
-  labels:
-    name: kafka
-spec:
-  selector:
-    name: kafka
-  ports:
-    - port: 9092
-      targetPort: 9092
-      name: kafka
----
-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/controller/README.md b/kubernetes/controller/README.md
deleted file mode 100644
index 56d58d7..0000000
--- a/kubernetes/controller/README.md
+++ /dev/null
@@ -1,58 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-Controller
-----------
-
-# Deploying
-
-## Create config map
-
-Edit controller.env as needed to set the appropriate values for your
-deployment, then create the configmap controller.config:
-
-```
-kubectl -n openwhisk create cm controller.config --from-env-file=controller.env
-```
-
-## Deploy Controller
-
-The Controller is deployed as a [StatefulSet][StatefulSet] because
-each instance needs to know which index it is and we need stable pod
-names to support Akka clustering. The Controller can be deployed with:
-
-```
-kubectl apply -f controller.yml
-```
-
-# Controller Deployment Changes
-## Changing the Controller Count
-
-By default, only a single controller is deployed (HA disabled).
-
-Changing the number of controllers and/or enabling HA currently requires a complete
-redeployment of the controller stateful set. You will need to update
-the number of replicas
-[here](https://github.com/apache/incubator-openwhisk-deploy-kube/tree/master/kubernetes/controller/controller.yml#L10)
-and the values of the various variables for controller HA and Akka
-clustering
-[here](https://github.com/apache/incubator-openwhisk-deploy-kube/tree/master/kubernetes/controller/controller.yml#L30-L39)
-and then redeploy.
-
-[StatefulSet]: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
diff --git a/kubernetes/controller/controller.env b/kubernetes/controller/controller.env
deleted file mode 100644
index 4f79daa..0000000
--- a/kubernetes/controller/controller.env
+++ /dev/null
@@ -1,2 +0,0 @@
-java_opts=-Xmx2g
-controller_opts=
diff --git a/kubernetes/controller/controller.yml b/kubernetes/controller/controller.yml
deleted file mode 100644
index 55d4ca2..0000000
--- a/kubernetes/controller/controller.yml
+++ /dev/null
@@ -1,233 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
----
-apiVersion: apps/v1beta1
-kind: StatefulSet
-metadata:
-  name: controller
-  namespace: openwhisk
-  labels:
-    name: controller
-spec:
-  replicas: 1
-  serviceName: "controller"
-  template:
-    metadata:
-      labels:
-        name: controller
-    spec:
-      restartPolicy: Always
-
-      affinity:
-        # prefer to not run on an invoker node (only prefer because of single node clusters)
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 100
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: NotIn
-                values:
-                - invoker
-        # prefer to run on a control-plane node
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 50
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: In
-                values:
-                - control-plane
-        # do not allow more than 1 controller instance to run on a node
-        podAntiAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - labelSelector:
-              matchExpressions:
-                - key: name
-                  operator: In
-                  values:
-                  - controller
-            topologyKey: "kubernetes.io/hostname"
-
-      containers:
-      - name: controller
-        imagePullPolicy: Always
-        image: openwhisk/controller
-        command: ["/bin/bash", "-c", "COMPONENT_NAME=$(hostname | cut -d'-' -f2) /init.sh `hostname | cut -d'-' -f2`"]
-        ports:
-        - name: controller
-          containerPort: 8080
-        env:
-        # Properties for controller HA configuration
-        # Must change these if changing number of replicas
-        - name: "CONTROLLER_LOCALBOOKKEEPING"
-          value: "TRUE"
-        - name: "CONTROLLER_HA"
-          value: "FALSE"
-        - name: "CONTROLLER_INSTANCES"
-          value: "1"
-        - name: "AKKA_CLUSTER_SEED_NODES"
-          value: "controller-0.controller.openwhisk"
-        - name: "CONFIG_akka_actor_provider"
-          value: "cluster"
-
-        # extra JVM arguments
-        - name: "JAVA_OPTS"
-          valueFrom:
-            configMapKeyRef:
-              name: controller.config
-              key: java_opts
-
-        # extra controller arguments
-        - name: "CONTROLLER_OPTS"
-          valueFrom:
-            configMapKeyRef:
-              name: controller.config
-              key: controller_opts
-
-        # action runtimes
-        - name: "RUNTIMES_MANIFEST"
-          valueFrom:
-            configMapKeyRef:
-              name: whisk.runtimes
-              key: runtimes
-
-        # deployment version information
-        - name:  "WHISK_VERSION_NAME"
-          valueFrom:
-            configMapKeyRef:
-              name: whisk.config
-              key: whisk_version_name
-        - name:  "WHISK_VERSION_DATE"
-          valueFrom:
-            configMapKeyRef:
-              name: whisk.config
-              key: whisk_version_date
-        - name: "WHISK_VERSION_BUILDNO"
-          valueFrom:
-            configMapKeyRef:
-              name: whisk.config
-              key: whisk_version_tag
-
-        # specify limits
-        - name: "LIMITS_ACTIONS_INVOKES_PERMINUTE"
-          valueFrom:
-            configMapKeyRef:
-              name: whisk.limits
-              key: actions_invokes_perMinute
-        - name: "LIMITS_ACTIONS_INVOKES_CONCURRENT"
-          valueFrom:
-            configMapKeyRef:
-              name: whisk.limits
-              key: actions_invokes_concurrent
-        - name: "LIMITS_ACTIONS_INVOKES_CONCURRENTINSYSTEM"
-          valueFrom:
-            configMapKeyRef:
-              name: whisk.limits
-              key: actions_invokes_concurrentInSystem
-        - name: "LIMITS_TRIGGERS_FIRES_PERMINUTE"
-          valueFrom:
-            configMapKeyRef:
-              name: whisk.limits
-              key: triggers_fires_perMinute
-        - name: "LIMITS_ACTIONS_SEQUENCE_MAXLENGTH"
-          valueFrom:
-            configMapKeyRef:
-              name: whisk.limits
-              key: actions_sequence_maxLength
-
-        # properties for Kafka connection
-        - name: "KAFKA_HOSTS"
-          value: "$(KAFKA_SERVICE_HOST):$(KAFKA_SERVICE_PORT_KAFKA)"
-
-        # properties for DB connection
-        - name: "CONFIG_whisk_couchdb_username"
-          valueFrom:
-            secretKeyRef:
-              name: db.auth
-              key: db_username
-        - name: "CONFIG_whisk_couchdb_password"
-          valueFrom:
-            secretKeyRef:
-              name: db.auth
-              key: db_password
-        - name:  "CONFIG_whisk_couchdb_protocol"
-          valueFrom:
-            configMapKeyRef:
-              name: db.config
-              key: db_protocol
-        - name: "CONFIG_whisk_couchdb_host"
-          valueFrom:
-            configMapKeyRef:
-              name: db.config
-              key: db_host
-        - name: "CONFIG_whisk_couchdb_port"
-          valueFrom:
-            configMapKeyRef:
-              name: db.config
-              key: db_port
-        - name: "CONFIG_whisk_couchdb_provider"
-          valueFrom:
-            configMapKeyRef:
-              name: db.config
-              key: db_provider
-        - name: "CONFIG_whisk_couchdb_databases_WhiskActivation"
-          valueFrom:
-            configMapKeyRef:
-              name: db.config
-              key: db_whisk_activations
-        - name: "CONFIG_whisk_couchdb_databases_WhiskEntity"
-          valueFrom:
-            configMapKeyRef:
-              name: db.config
-              key: db_whisk_actions
-        - name: "CONFIG_whisk_couchdb_databases_WhiskAuth"
-          valueFrom:
-            configMapKeyRef:
-              name: db.config
-              key: db_whisk_auths
-
-        # must match port used in livenessProbe below
-        - name: "PORT"
-          value: "8080"
-
-        livenessProbe:
-          httpGet:
-            path: "/ping"
-            port: 8080
-            scheme: "HTTP"
-          initialDelaySeconds: 5
-          periodSeconds: 10
-          timeoutSeconds: 1
-
----
-apiVersion: networking.k8s.io/v1
-kind: NetworkPolicy
-metadata:
-  name: controller-netpol
-  namespace: openwhisk
-spec:
-  podSelector:
-    matchLabels:
-      name: controller
-  ingress:
-  # Allow nginx and any pod with access=controller to connect to controller
-  - from:
-    - podSelector:
-        matchLabels:
-          name: nginx
-    - podSelector:
-        matchLabels:
-          access: controller
-    ports:
-     - port: 8080
-  # Controllers can connect to each other
-  - from:
-    - podSelector:
-        matchLabels:
-          name: controller
-    ports:
-     - port: 8080
-     - port: 2552
diff --git a/kubernetes/couchdb/README.md b/kubernetes/couchdb/README.md
deleted file mode 100644
index 4885bb2..0000000
--- a/kubernetes/couchdb/README.md
+++ /dev/null
@@ -1,77 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-CouchDB
------
-
-# Deploying
-
-## Create secret and configmap
-
-The db.auth secret and db.config configmap contain authorization and
-configuration information for the CouchDB instance being used for this
-OpenWhisk deployment.  The db.auth secret is expected to define two
-keys: db_username and db_password. The db.config configmap is expected
-to define the following keys: db_protocol, db_provider, db_host, db_port,
-db_prefix, db_whisk_activations, db_whisk_actions, and db_whisk_auths.
-The commands below create them with default values; adjust as needed for
-your deployment.
-
-```
-kubectl -n openwhisk create secret generic db.auth --from-literal=db_username=whisk_admin --from-literal=db_password=some_passw0rd
-```
-
-```
-kubectl -n openwhisk create configmap db.config --from-literal=db_protocol=http --from-literal=db_provider=CouchDB --from-literal=db_host=couchdb.openwhisk.svc.cluster.local --from-literal=db_port=5984 --from-literal=db_whisk_activations=test_activations --from-literal=db_whisk_actions=test_whisks --from-literal=db_whisk_auths=test_subjects --from-literal=db_prefix=test_
-```
-
-## Deploy the CouchDB pod
-
-To deploy CouchDB, you first need to create the CouchDB
-Pod. This can be done by running:
-
-```
-kubectl apply -f couchdb.yml
-```
-
-If the persistent volume mounted as /opt/couchdb/data in the
-pod already has been initialized with an OpenWhisk CouchDB
-database, then the pod will simply use it.  If an initialized
-database is not found, then the pod will go through the
-process of pulling the OpenWhisk git repo and running some of the
-ansible playbooks for configuring CouchDB.
-
-**NOTE** the pod will say running as soon as the start command runs,
-but that does not mean that CouchDB is really running and ready to
-use. If a new database actually needs to be created and initialized,
-it typically takes about a minute until setup has completed and
-the database is actually usable. Examine the pods logs with
-
-```
-kubectl -n openwhisk logs -lname=couchdb
-```
-
-and look for the line:
-
-```
-successfully setup and configured CouchDB for OpenWhisk
-```
-
-This indicates that the CouchDB instance is fully configured and ready to use.
-
diff --git a/kubernetes/couchdb/couchdb.yml b/kubernetes/couchdb/couchdb.yml
deleted file mode 100644
index 65a47de..0000000
--- a/kubernetes/couchdb/couchdb.yml
+++ /dev/null
@@ -1,143 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
-# The couchdb service is defined here instead of in cluster-config/services
-# because some deployments will not put the database within the kube cluster.
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: couchdb
-  namespace: openwhisk
-  labels:
-    name: couchdb
-spec:
-  selector:
-    name: couchdb
-  ports:
-    - port: 5984
-      targetPort: 5984
-      name: couchdb
-
----
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: couchdb
-  namespace: openwhisk
-  labels:
-    name: couchdb
-spec:
-  replicas: 1
-  template:
-    metadata:
-      labels:
-        name: couchdb
-    spec:
-      restartPolicy: Always
-
-      affinity:
-        # prefer to not run on an invoker node (only prefer because of single node clusters)
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 100
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: NotIn
-                values:
-                - invoker
-        # prefer to run on a control-plane node
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 50
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: In
-                values:
-                - control-plane
-        # do not allow more than 1 couchdb instance to run on a given node
-        podAntiAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - labelSelector:
-              matchExpressions:
-                - key: name
-                  operator: In
-                  values:
-                  - couchdb
-            topologyKey: "kubernetes.io/hostname"
-
-      volumes:
-      - name: couchdb-data
-        persistentVolumeClaim:
-          claimName: pv-couchdb-01
-
-      containers:
-      - name: couchdb
-        imagePullPolicy: Always
-        image: openwhisk/kube-couchdb
-        command: ["/init.sh"]
-        ports:
-        - name: couchdb
-          containerPort: 5984
-        volumeMounts:
-        - mountPath: /opt/couchdb/data
-          name: couchdb-data
-        env:
-        - name: "DB_PREFIX"
-          valueFrom:
-            configMapKeyRef:
-              name: db.config
-              key: db_prefix
-        - name: "DB_HOST"
-          value: "127.0.0.1"
-        - name: "COUCHDB_USER"
-          valueFrom:
-            secretKeyRef:
-              name: db.auth
-              key: db_username
-        - name: "COUCHDB_PASSWORD"
-          valueFrom:
-            secretKeyRef:
-              name: db.auth
-              key: db_password
-        - name: "DB_PORT"
-          value: "5984"
-        - name: "NODENAME"
-          value: "couchdb0"
-        readinessProbe:
-          httpGet:
-            port: 5984
-            # Tempting to say "/$(DB_PREFIX)_activations", but probe runs
-            # externally, therefore can't access the container environment...
-            path: "/test_activations"
-          initialDelaySeconds: 60
-          periodSeconds: 10
-          failureThreshold: 10
-          timeoutSeconds: 1
-
----
-apiVersion: networking.k8s.io/v1
-kind: NetworkPolicy
-metadata:
-  name: couchdb-netpol
-  namespace: openwhisk
-spec:
-  podSelector:
-    matchLabels:
-      name: couchdb
-  ingress:
-  # Allow controller, invoker, and any pod with access=db to connect to couchdb
-  - from:
-    - podSelector:
-        matchLabels:
-          name: controller
-    - podSelector:
-        matchLabels:
-          name: invoker
-    - podSelector:
-        matchLabels:
-          access: db
-    ports:
-     - port: 5984
diff --git a/kubernetes/ingress/README.md b/kubernetes/ingress/README.md
deleted file mode 100644
index db72342..0000000
--- a/kubernetes/ingress/README.md
+++ /dev/null
@@ -1,179 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-Ingress
--------
-
-The goal of this step is to define a Kubernetes Ingress that will make
-OpenWhisk available outside of your Kubernetes cluster. In the
-commands given in the Configuration Steps, replace API_HOST with the
-actual value for your Ingress as determined by the detailed
-instructions in the appropriate subsection of Possible Ingress Types.
-
-# Configuration Steps
-
-1. Create an Ingress, thus determining a value you should use for
-API_HOST.  If you are deploying on minikube, follow the instructions for
-the NodePort ingress. Unfortunately, the exact details of configuring
-an Ingress vary across cloud providers.  The detailed instructions
-[below](#possible-ingress-types) describe multiple possible Ingress
-configurations.  We welcome contributions from the community to
-describe how to configure Ingress for additional cloud providers.
-
-2. Record the value of API_HOST and APIGW_URL in a Kubernetes configmap
-for later use within the OpenWhisk deployment. Note that API_HOST is
-expected to be either a host or host:port pair, but APIGW_URL is
-expected to be a URL, including protocol (http or https depending on
-your ingress):
-```
-kubectl -n openwhisk create configmap whisk.ingress --from-literal=api_host=API_HOST --from-literal=apigw_url=APIGW_URL
-```
-
-3. Configure the OpenWhisk CLI, wsk, by setting the auth and apihost
-properties (if you don't already have the wsk cli, follow the
-instructions [here](https://github.com/apache/incubator-openwhisk-cli)
-to get it).
-
-```
-wsk property set --auth `cat ../cluster-setup/auth.guest` --apihost API_HOST
-```
-
-# Possible Ingress Types
-
-
-## NodePort
-
-When it was deployed, the apigateway and nginx services were
-configured to expose themselves via a NodePort
-[see](https://github.com/apache/incubator-openwhisk-deploy-kube/tree/master/kubernetes/cluster-setup/services.yml#L13) with a dynamically assigned port number. If you want
-a specific port number to be assigned to these services, you can cause
-this to happen by adding a `nodePort:` field to some or all of the [`port:`
-stanzas](https://github.com/apache/incubator-openwhisk-deploy-kube/tree/master/kubernetes/cluster-setup/services.yml#L17-L25) and redeploying the service.
-By determining the IP address of a worker node and the exposed port
-numbers, you can determine your API_HOST and APIGW_URL. There are no
-additional files to apply. TLS termination is handled by the nginx
-service.
-
- 1. Obtain the IP address of the Kubernetes nodes. If you are using minikube, use the command
-```
- minikube ip
- ```
- otherwise use
- ```
- kubectl get nodes
- ```
-
- 2. Obtain the public port for https port of the openwhisk.nginx Service
- ```
-kubectl -n openwhisk describe service nginx | grep https-api | grep NodePort| awk '{print $3}' | cut -d'/' -f1
- ```
-
-Use IP_ADDR:PUBLIC_PORT as your API_HOST
-
-3. Obtain the public port for https port of the openwhisk.apigateway Service
- ```
-kubectl -n openwhisk describe service apigateway | grep mgmt | grep NodePort| awk '{print $3}' | cut -d'/' -f1
- ```
-
-Use http://IP_ADDR:PUBLIC_PORT as your APIGW_URL
-
-
-## Simple Service Ingress
-
-A basic ingress that simply connects through to the nginx
-service. With this ingress, TLS termination will be handled by the
-OpenWhisk nginx service.
-
-```
-kubectl apply -f ingress-simple.yml
-````
-
-Use `kubectl get ingress` to determine the IP address and port to use
-to define API_HOST for a simple service ingress.
-
-## IBM Cloud
-
-### IBM Cloud Lite cluster
-
-The only available ingress method for a Lite cluster is to use a
-NodePort (see above).  By determining the IP address of a worker node
-and the exposed port number, you can determine your API_HOST. There
-are no additional files to apply. TLS termination is handled by the
-nginx service.
-
- 1. Obtain the Public IP address of the sole worker node.
-
- ```
-bx cs workers <my-cluster>
- ```
-
- 2. Obtain the public port for https port of the openwhisk.nginx Service
-
- ```
-kubectl -n openwhisk describe service nginx | grep https-api | grep NodePort| awk '{print $3}' | cut -d'/' -f1
- ```
-Use PublicIP:PORT as your API_HOST
-
-3. Obtain the public port for https port of the openwhisk.apigateway Service
-
- ```
-kubectl -n openwhisk describe service apigateway | grep mgmt | grep NodePort| awk '{print $3}' | cut -d'/' -f1
- ```
-
-Use http://IP_ADDR:PUBLIC_PORT as your APIGW_URL
-
-### IBM Cloud standard cluster
-
-A template file ingress-ibm.yml is provided.  You will need to edit
-this file to replace <ibmdomain> and <ibmtlssecret> with the correct
-values for your cluster. Note that <ibmdomain> appears twice in the
-template file.
-
-To determine this values, run the command
-```
-bx cs cluster-get <mycluster>
-```
-The CLI output will look something like
-```
-bx cs cluster-get <mycluster>
-Retrieving cluster <mycluster>...
-OK
-Name:    <mycluster>
-ID:    b9c6b00dc0aa487f97123440b4895f2d
-Created:  2017-04-26T19:47:08+0000
-State:    normal
-Master URL:  https://169.57.40.165:1931
-Ingress subdomain:  <ibmdomain>
-Ingress secret:  <ibmtlssecret>
-Workers:  3
-```
-You can see the IBM-provided domain in the Ingress subdomain and the
-IBM-provided certificate in the Ingress secret field.
-
-After editing the template file, deploy it.
-```
-kubectl apply -f ingress-ibm.yml
-```
-
-Your API_HOST will be <ibmdomain>/openwhisk
-Your APIGW_URL will be https://<ibmdomain>/apigateway
-
-## Other cloud providers
-
-Please submit Pull Requests with instructions for other cloud providers.
diff --git a/kubernetes/ingress/ingress-ibm.yml b/kubernetes/ingress/ingress-ibm.yml
deleted file mode 100644
index 959f8fe..0000000
--- a/kubernetes/ingress/ingress-ibm.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  name: ow-ingress
-  namespace: openwhisk
-  annotations:
-    ingress.bluemix.net/rewrite-path: "serviceName=nginx rewrite=/;serviceName=apigateway rewrite=/"
-spec:
-  tls:
-  - hosts:
-    - <ibmdomain>
-    secretName: <ibmtlssecret>
-  rules:
-  - host: <ibmdomain>
-    http:
-      paths:
-      - path: /openwhisk/
-        backend:
-          serviceName: nginx
-          servicePort: http
-      - path: /apigateway/
-        backend:
-          serviceName: apigateway
-          servicePort: mgmt
diff --git a/kubernetes/ingress/ingress-simple.yml b/kubernetes/ingress/ingress-simple.yml
deleted file mode 100644
index 14162eb..0000000
--- a/kubernetes/ingress/ingress-simple.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
-apiVersion: extensions/v1beta1
-kind: Ingress
-metadata:
-  name: ow-ingress
-  namespace: openwhisk
-spec:
-  backend:
-    serviceName: nginx
-    servicePort: https-api
-  backend:
-    serviceName: apigateway
-    servicePort: mgmt
diff --git a/kubernetes/invoker/README.md b/kubernetes/invoker/README.md
deleted file mode 100644
index c47361b..0000000
--- a/kubernetes/invoker/README.md
+++ /dev/null
@@ -1,141 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-Invoker
--------
-
-# Overview
-
-The Invoker is responsible for creating and managing the containers
-that OpenWhisk creates to execute the user defined functions.  A key
-function of the Invoker is to manage a cache of available warm
-containers to minimize cold starts of user functions.
-Architecturally, we support two options for deploying the Invoker
-component on Kubernetes (selected by picking a
-`ContainerFactoryProviderSPI` for your deployment).
-  1. `DockerContainerFactory` matches the architecture used by the
-      non-Kubernetes deployments of OpenWhisk.  In this approach, an
-      Invoker instance runs on every Kubernetes worker node that is
-      being used to execute user functions.  The Invoker directly
-      communicates with the docker daemon running on the worker node
-      to create and manage the user function containers.  The primary
-      advantages of this configuration are lower latency on container
-      management operations and robustness of the code paths being
-      used (since they are the same as in the default system).  The
-      primary disadvantage is that it does not leverage Kubernetes to
-      simplify resource management, security configuration, etc. for
-      user containers.
-  2. `KubernetesContainerFactory` is a truly Kubernetes-native design
-      where although the Invoker is still responsible for managing the
-      cache of available user containers, the Invoker relies on Kubernetes to
-      create, schedule, and manage the Pods that contain the user function
-      containers. The pros and cons of this design are roughly the
-      inverse of `DockerContainerFactory`.  Kubernetes pod management
-      operations have higher latency and exercise newer code paths in
-      the Invoker.  However, this design fully leverages Kubernetes to
-      manage the execution resources for user functions.
-
-# Deploying
-
-## Label the worker nodes
-
-In either approach, it is desirable to indicate which worker nodes
-should be used to execute user containers.  Do this by labeling each
-node with `openwhisk-role=invoker`.  For a single node cluster, simply do
-```
-kubectl label nodes --all openwhisk-role=invoker
-```
-If you have a multi-node cluster, for each node <INVOKER_NODE_NAME>
-you want to be an invoker, execute
-```
-$ kubectl label nodes <INVOKER_NODE_NAME> openwhisk-role=invoker
-```
-
-## Deploying using the DockerContainerFactory
-
-### Create the invoker.config config map
-
-Edit invoker-dcf.env to make any customizations needed for your
-deployment, create the config map:
-```
-kubectl -n openwhisk create cm invoker.config --from-env-file=invoker-dcf.env
-```
-
-### Deploy the Invoker as a DaemonSet
-
-This will deploy an Invoker instance on every Kubernetes worker node
-labeled with openwhisk-role=invoker.
-```
-kubectl apply -f invoker-dcf.yml
-```
-
-## Deploying using the KubernetesContainerFactory
-
-The KubernetesContainerFactory can be deployed with an additional
-invokerAgent that implements container suspend/resume operations on
-behalf of a remote Invoker.  The instructions here included deploying
-the invokerAgent.  If you do not want to do this, skip deploying the
-invokerAgent daemonset and edit invoker-k8scf.yml to set
-`CONFIG_whisk_kubernetes_invokerAgent_enabled` to `FALSE`.
-
-### Create the invoker.config config map
-
-Edit invoker-k8scf.env to make any customizations needed for your
-deployment, create the config map:
-```
-kubectl -n openwhisk create cm invoker.config --from-env-file=invoker-k8scf.env
-```
-
-### Deploy the invokerAgent Daemonset
-```
-kubectl apply -f invoker-agent.yml
-```
-Wait for all of the invoker-agent pods to be running.  This might take a
-couple of minutes because the invoker-agent also prefetches the docker images
-for the default set of user action runtimes by doing docker pulls as an
-init container.
-
-### Deploy the Invoker as a StatefulSet
-
-By default, this will deploy a single Invoker instance.  Optionally
-edit invoker-k8scf.yml to change the number of Invoker replicas and
-then do:
-```
-kubectl apply -f invoker-k8scf.yml
-```
-
-
-# Troubleshooting
-## No invokers are deployed with DockerContainerFactory
-
-Verify that you actually have at least one node with the label openwhisk-role=invoker.
-
-## Invokers containers fail to start with volume mounting problems
-
-To execute the containers for user actions, OpenWhisk relies on part
-of the underlying infrastructure that Kubernetes is running on. When
-deploying the Invoker for OpenWhisk, it mounts the host's Docker
-socket and several other system-specific directories related to
-Docker. This enables efficient container management, but it also also
-means that the default volume hostPath values assume that the Kubernetes worker
-node image is Ubuntu. If containers fail to start with errors related
-mounting`/sys/fs/cgroup`, `/run/runc`,`/var/lib/docker/containers`, or
-`/var/run/docker.sock`, then you will need to change the corresponding
-value in [invoker-dcf.yml](invoker-dcf.yml) to match the host operating system
-running on your Kubernetes worker node.
diff --git a/kubernetes/invoker/invoker-agent.yml b/kubernetes/invoker/invoker-agent.yml
deleted file mode 100644
index 32f958a..0000000
--- a/kubernetes/invoker/invoker-agent.yml
+++ /dev/null
@@ -1,107 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
----
-apiVersion: extensions/v1beta1
-kind: DaemonSet
-metadata:
-  name: invoker-agent
-  namespace: openwhisk
-  labels:
-    name: invoker-agent
-spec:
-  template:
-    metadata:
-      labels:
-        name: invoker-agent
-    spec:
-      restartPolicy: Always
-      hostNetwork: true
-
-      # run only on nodes labeled with openwhisk-role=invoker
-      # TODO: disabled affinity until user-action pods are
-      #       created with the same affinity rules.
-      #       Requires extension to upstream kube java client
-      # affinity:
-      #   nodeAffinity:
-      #     requiredDuringSchedulingIgnoredDuringExecution:
-      #       nodeSelectorTerms:
-      #       - matchExpressions:
-      #         - key: openwhisk-role
-      #           operator: In
-      #           values:
-      #           - invoker
-
-      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: userlogs
-        emptyDir: {}
-
-      initContainers:
-      - name: docker-pull-runtimes
-        imagePullPolicy: Always
-        image: openwhisk/kube-docker-pull
-        volumeMounts:
-        - name: dockersock
-          mountPath: "/var/run/docker.sock"
-        env:
-          # action runtimes
-          - name: "RUNTIMES_MANIFEST"
-            valueFrom:
-              configMapKeyRef:
-                name: whisk.runtimes
-                key: runtimes
-
-      containers:
-      - name: invoker-agent
-        imagePullPolicy: Always
-        image: openwhisk/kube-invoker-agent
-        securityContext:
-          privileged: true
-        ports:
-         # IANA port 3233 "whisker" for "WhiskerControl"  ;)
-        - name: agent
-          containerPort: 3233
-          hostPort: 3233
-        volumeMounts:
-        - name: cgroup
-          mountPath: "/sys/fs/cgroup"
-        - name: runc
-          mountPath: "/run/runc"
-        - name: dockersock
-          mountPath: "/var/run/docker.sock"
-        - name: dockerrootdir
-          mountPath: "/containers"
-        - name: userlogs
-          mountPath: "/action-logs"
-        env:
-
----
-apiVersion: networking.k8s.io/v1
-kind: NetworkPolicy
-metadata:
-  name: invoker-agent-netpol
-  namespace: openwhisk
-spec:
-  podSelector:
-    matchLabels:
-      name: invoker-agent
-  ingress:
-  # Allow invoker to connect to invoker-agent
-  - from:
-    - podSelector:
-        matchLabels:
-          name: invoker
-    ports:
-     - port: 3233
diff --git a/kubernetes/invoker/invoker-dcf.env b/kubernetes/invoker/invoker-dcf.env
deleted file mode 100644
index ac1346f..0000000
--- a/kubernetes/invoker/invoker-dcf.env
+++ /dev/null
@@ -1,9 +0,0 @@
-java_opts=-Xmx2g -Dwhisk.spi.ContainerFactoryProvider=whisk.core.containerpool.docker.DockerContainerFactoryProvider
-invoker_opts=
-invoker_container_network=bridge
-invoker_container_dns=
-invoker_use_runc=false
-docker_image_prefix=openwhisk
-docker_image_tag=latest
-docker_registry=
-invoker_logs_dir=
diff --git a/kubernetes/invoker/invoker-dcf.yml b/kubernetes/invoker/invoker-dcf.yml
deleted file mode 100644
index 28d8c98..0000000
--- a/kubernetes/invoker/invoker-dcf.yml
+++ /dev/null
@@ -1,206 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
----
-apiVersion: extensions/v1beta1
-kind: DaemonSet
-metadata:
-  name: invoker
-  namespace: openwhisk
-  labels:
-    name: invoker
-spec:
-  template:
-    metadata:
-      labels:
-        name: invoker
-    spec:
-      restartPolicy: Always
-
-      # run only on nodes labeled with openwhisk-role=invoker
-      affinity:
-        nodeAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-            nodeSelectorTerms:
-            - matchExpressions:
-              - key: openwhisk-role
-                operator: In
-                values:
-                - invoker
-
-      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"
-
-      initContainers:
-      - name: docker-pull-runtimes
-        imagePullPolicy: Always
-        image: openwhisk/kube-docker-pull
-        volumeMounts:
-        - name: dockersock
-          mountPath: "/var/run/docker.sock"
-        env:
-          # action runtimes
-          - name: "RUNTIMES_MANIFEST"
-            valueFrom:
-              configMapKeyRef:
-                name: whisk.runtimes
-                key: runtimes
-
-      containers:
-      - name: invoker
-        imagePullPolicy: Always
-        image: openwhisk/invoker
-        command: [ "/bin/bash", "-c", "COMPONENT_NAME=$(hostname | cut -d'-' -f2) /init.sh" ]
-        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"
-        env:
-          - name: "PORT"
-            value: "8080"
-
-          # Invoker name is name of the Kube node when using DaemonSet
-          - name: "INVOKER_NAME"
-            valueFrom:
-              fieldRef:
-                fieldPath: spec.nodeName
-
-          - name: "WHISK_API_HOST_NAME"
-            valueFrom:
-              configMapKeyRef:
-                name: whisk.ingress
-                key: api_host
-
-          # Docker-related options
-          - name: "INVOKER_CONTAINER_NETWORK"
-            valueFrom:
-              configMapKeyRef:
-                name: invoker.config
-                key: invoker_container_network
-          - name: "INVOKER_CONTAINER_DNS"
-            valueFrom:
-              configMapKeyRef:
-                name: invoker.config
-                key: invoker_container_dns
-          - name: "CONFIG_whisk_docker_containerFactory_useRunc"
-            valueFrom:
-              configMapKeyRef:
-                name: invoker.config
-                key: invoker_use_runc
-          - name: "DOCKER_IMAGE_PREFIX"
-            valueFrom:
-              configMapKeyRef:
-                name: invoker.config
-                key: docker_image_prefix
-          - name: "DOCKER_IMAGE_TAG"
-            valueFrom:
-              configMapKeyRef:
-                name: invoker.config
-                key: docker_image_tag
-          - name: "DOCKER_REGISTRY"
-            valueFrom:
-              configMapKeyRef:
-                name: invoker.config
-                key: docker_registry
-
-          # action runtimes
-          - name: "RUNTIMES_MANIFEST"
-            valueFrom:
-              configMapKeyRef:
-                name: whisk.runtimes
-                key: runtimes
-
-          # extra JVM arguments
-          - name: "JAVA_OPTS"
-            valueFrom:
-              configMapKeyRef:
-                name: invoker.config
-                key: java_opts
-
-          # extra Invoker arguments
-          - name: "INVOKER_OPTS"
-            valueFrom:
-              configMapKeyRef:
-                name: invoker.config
-                key: invoker_opts
-
-          # Recommend using "" because logs should go to stdout on kube
-          - name: "WHISK_LOGS_DIR"
-            valueFrom:
-              configMapKeyRef:
-                name: invoker.config
-                key: invoker_logs_dir
-
-          # properties for Kafka connection
-          - name: "KAFKA_HOSTS"
-            value: "$(KAFKA_SERVICE_HOST):$(KAFKA_SERVICE_PORT_KAFKA)"
-
-          # properties for zookeeper connection
-          - name: "ZOOKEEPER_HOSTS"
-            value: "$(ZOOKEEPER_SERVICE_HOST):$(ZOOKEEPER_SERVICE_PORT_ZOOKEEPER)"
-
-          # properties for DB connection
-          - name: "CONFIG_whisk_couchdb_username"
-            valueFrom:
-              secretKeyRef:
-                name: db.auth
-                key: db_username
-          - name: "CONFIG_whisk_couchdb_password"
-            valueFrom:
-              secretKeyRef:
-                name: db.auth
-                key: db_password
-          - name:  "CONFIG_whisk_couchdb_protocol"
-            valueFrom:
-              configMapKeyRef:
-                name: db.config
-                key: db_protocol
-          - name: "CONFIG_whisk_couchdb_host"
-            valueFrom:
-              configMapKeyRef:
-                name: db.config
-                key: db_host
-          - name: "CONFIG_whisk_couchdb_port"
-            valueFrom:
-              configMapKeyRef:
-                name: db.config
-                key: db_port
-          - name: "CONFIG_whisk_couchdb_provider"
-            valueFrom:
-              configMapKeyRef:
-                name: db.config
-                key: db_provider
-          - name: "CONFIG_whisk_couchdb_databases_WhiskActivation"
-            valueFrom:
-              configMapKeyRef:
-                name: db.config
-                key: db_whisk_activations
-          - name: "CONFIG_whisk_couchdb_databases_WhiskEntity"
-            valueFrom:
-              configMapKeyRef:
-                name: db.config
-                key: db_whisk_actions
-          - name: "CONFIG_whisk_couchdb_databases_WhiskAuth"
-            valueFrom:
-              configMapKeyRef:
-                name: db.config
-                key: db_whisk_auths
diff --git a/kubernetes/invoker/invoker-k8scf.env b/kubernetes/invoker/invoker-k8scf.env
deleted file mode 100644
index 2cd03bf..0000000
--- a/kubernetes/invoker/invoker-k8scf.env
+++ /dev/null
@@ -1,9 +0,0 @@
-java_opts=-Xmx2g -Dkubernetes.master=https://$KUBERNETES_SERVICE_HOST -Dwhisk.spi.ContainerFactoryProvider=whisk.core.containerpool.kubernetes.KubernetesContainerFactoryProvider
-invoker_opts=
-invoker_container_network=bridge
-invoker_container_dns=
-invoker_use_runc=false
-docker_image_prefix=openwhisk
-docker_image_tag=latest
-docker_registry=
-invoker_logs_dir=
diff --git a/kubernetes/invoker/invoker-k8scf.yml b/kubernetes/invoker/invoker-k8scf.yml
deleted file mode 100644
index 3ce7e1d..0000000
--- a/kubernetes/invoker/invoker-k8scf.yml
+++ /dev/null
@@ -1,211 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  namespace: openwhisk
-  name: invoker
-
----
-kind: Role
-apiVersion: rbac.authorization.k8s.io/v1beta1
-metadata:
-  namespace: openwhisk
-  name: invoker
-rules:
-- apiGroups: ["extensions"]
-  resources: ["deployments"]
-  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
-- apiGroups: [""]
-  resources: ["pods"]
-  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
-- apiGroups: [""]
-  resources: ["pods/log"]
-  verbs: ["get", "list"]
-
----
-kind: RoleBinding
-apiVersion: rbac.authorization.k8s.io/v1beta1
-metadata:
-  name: invoker-rbac
-  namespace: openwhisk
-subjects:
-- kind: ServiceAccount
-  name: invoker
-  namespace: openwhisk
-roleRef:
-  kind: Role
-  name: invoker
-  apiGroup: rbac.authorization.k8s.io
-
----
-apiVersion: apps/v1beta1
-kind: StatefulSet
-metadata:
-  name: invoker
-  namespace: openwhisk
-  labels:
-    name: invoker
-spec:
-  replicas: 1
-  serviceName: invoker
-  template:
-    metadata:
-      labels:
-        name: invoker
-    spec:
-      serviceAccountName: invoker
-      restartPolicy: Always
-
-      affinity:
-        # prefer to run on an invoker node (only prefer because of single node clusters)
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 100
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: In
-                values:
-                - invoker
-        # do not allow more than 1 invoker instance to run on a node
-        podAntiAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - labelSelector:
-              matchExpressions:
-                - key: name
-                  operator: In
-                  values:
-                  - invoker
-            topologyKey: "kubernetes.io/hostname"
-
-      containers:
-      - name: invoker
-        imagePullPolicy: Always
-        image: openwhisk/invoker
-        command: [ "/bin/bash", "-c", "COMPONENT_NAME=$(hostname | cut -d'-' -f2) /init.sh" ]
-        ports:
-        - name: invoker
-          containerPort: 8080
-        env:
-          - name: "PORT"
-            value: "8080"
-
-          # Invoker name is name of pod (invoker-0, invoker-1, etc).
-          - name: "INVOKER_NAME"
-            valueFrom:
-              fieldRef:
-                fieldPath: metadata.name
-
-          - name: "WHISK_API_HOST_NAME"
-            valueFrom:
-              configMapKeyRef:
-                name: whisk.ingress
-                key: api_host
-
-          # Enable invoker-agent
-          - name: "CONFIG_whisk_kubernetes_invokerAgent_enabled"
-            value: "TRUE"
-
-          # Docker-related options
-          - name: "CONFIG_whisk_docker_containerFactory_useRunc"
-            value: "FALSE"
-          - name: "DOCKER_IMAGE_PREFIX"
-            valueFrom:
-              configMapKeyRef:
-                name: invoker.config
-                key: docker_image_prefix
-          - name: "DOCKER_IMAGE_TAG"
-            valueFrom:
-              configMapKeyRef:
-                name: invoker.config
-                key: docker_image_tag
-          - name: "DOCKER_REGISTRY"
-            valueFrom:
-              configMapKeyRef:
-                name: invoker.config
-                key: docker_registry
-
-          # action runtimes
-          - name: "RUNTIMES_MANIFEST"
-            valueFrom:
-              configMapKeyRef:
-                name: whisk.runtimes
-                key: runtimes
-
-          # extra JVM arguments
-          - name: "JAVA_OPTS"
-            valueFrom:
-              configMapKeyRef:
-                name: invoker.config
-                key: java_opts
-
-          # extra Invoker arguments
-          - name: "INVOKER_OPTS"
-            valueFrom:
-              configMapKeyRef:
-                name: invoker.config
-                key: invoker_opts
-
-          # Recommend using "" because logs should go to stdout on kube
-          - name: "WHISK_LOGS_DIR"
-            valueFrom:
-              configMapKeyRef:
-                name: invoker.config
-                key: invoker_logs_dir
-
-          # properties for Kafka connection
-          - name: "KAFKA_HOSTS"
-            value: "$(KAFKA_SERVICE_HOST):$(KAFKA_SERVICE_PORT_KAFKA)"
-
-          # properties for zookeeper connection
-          - name: "ZOOKEEPER_HOSTS"
-            value: "$(ZOOKEEPER_SERVICE_HOST):$(ZOOKEEPER_SERVICE_PORT_ZOOKEEPER)"
-
-          # properties for DB connection
-          - name: "CONFIG_whisk_couchdb_username"
-            valueFrom:
-              secretKeyRef:
-                name: db.auth
-                key: db_username
-          - name: "CONFIG_whisk_couchdb_password"
-            valueFrom:
-              secretKeyRef:
-                name: db.auth
-                key: db_password
-          - name:  "CONFIG_whisk_couchdb_protocol"
-            valueFrom:
-              configMapKeyRef:
-                name: db.config
-                key: db_protocol
-          - name: "CONFIG_whisk_couchdb_host"
-            valueFrom:
-              configMapKeyRef:
-                name: db.config
-                key: db_host
-          - name: "CONFIG_whisk_couchdb_port"
-            valueFrom:
-              configMapKeyRef:
-                name: db.config
-                key: db_port
-          - name: "CONFIG_whisk_couchdb_provider"
-            valueFrom:
-              configMapKeyRef:
-                name: db.config
-                key: db_provider
-          - name: "CONFIG_whisk_couchdb_databases_WhiskActivation"
-            valueFrom:
-              configMapKeyRef:
-                name: db.config
-                key: db_whisk_activations
-          - name: "CONFIG_whisk_couchdb_databases_WhiskEntity"
-            valueFrom:
-              configMapKeyRef:
-                name: db.config
-                key: db_whisk_actions
-          - name: "CONFIG_whisk_couchdb_databases_WhiskAuth"
-            valueFrom:
-              configMapKeyRef:
-                name: db.config
-                key: db_whisk_auths
diff --git a/kubernetes/kafka/README.md b/kubernetes/kafka/README.md
deleted file mode 100644
index 3b22f0a..0000000
--- a/kubernetes/kafka/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-Kafka
------
-
-# Deploying
-
-To deploy Kafka, you will need to make sure that [Zookeeper](../zookeeper/README.md)
-is deployed. Otherwise Kafka will keep crashing since
-it cannot sync to a cluster. To actually deploy Kafka,
-just run:
-
-```
-kubectl apply -f kafka.yml
-```
-
-# Troubleshooting
-## Networking errors
-
-When inspecting kafka logs of various components and they are not able to
-send/receive message then Kafka is the usual problem.  There are issues
-when Kube Pods cannot communicate with themselves over a Kube Service.
-Setting a network to promiscous mode can be the solution will enable network
-traffic to route in a loop back to itself. E.g:
-
-```
-ip link set docker0 promisc on
-```
-
-**NOTE** The `docker0` network in the example above is the Pod network.
-If you were using a CNI, then you would need to upgrade the CNI netowrk.
-
-These fixes are of course only temporary fixes that can be used
-when developing OpenWhisk on Kube. To deploy Kubernetes without the
-need for for setting the network up with this manual fix, you need
-to setup the Kubelet with `--hairpin-mode`.
diff --git a/kubernetes/kafka/kafka.yml b/kubernetes/kafka/kafka.yml
deleted file mode 100644
index 535ed12..0000000
--- a/kubernetes/kafka/kafka.yml
+++ /dev/null
@@ -1,124 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.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
-      volumes:
-      - name: kafka-data
-        persistentVolumeClaim:
-          claimName: pv-kafka-01
-
-      affinity:
-        # prefer to not run on an invoker node (only prefer because of single node clusters)
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 100
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: NotIn
-                values:
-                - invoker
-        # prefer to run on a control-plane node
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 50
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: In
-                values:
-                - control-plane
-        # do not allow more than 1 kafka instance to run on a given node
-        podAntiAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - labelSelector:
-              matchExpressions:
-              - key: name
-                operator: In
-                values:
-                - kafka
-            topologyKey: "kubernetes.io/hostname"
-        # prefer to co-locate with a zookeeper pod since we communicate frequently
-        podAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 10
-            podAffinityTerm:
-              labelSelector:
-                matchExpressions:
-                  - key: name
-                    operator: In
-                    values:
-                    - zookeeper
-              topologyKey: "kubernetes.io/hostname"
-
-      containers:
-      - name: kafka
-        imagePullPolicy: IfNotPresent
-        image: wurstmeister/kafka:0.11.0.1
-        volumeMounts:
-        - mountPath: /kafka
-          name: kafka-data
-        ports:
-        - name: kafka
-          containerPort: 9092
-        env:
-        - name: "KAFKA_BROKER_ID"
-          value: "0"
-        - name: "KAFKA_ADVERTISED_HOST_NAME"
-          value: "$(KAFKA_SERVICE_HOST)"
-        - name: "KAFKA_ADVERTISED_PORT"
-          value: "$(KAFKA_SERVICE_PORT_KAFKA)"
-        - name: "KAFKA_HOST_NAME"
-          valueFrom:
-            fieldRef:
-              fieldPath: status.podIP
-        - name: "KAFKA_PORT"
-          value: "$(KAFKA_SERVICE_PORT_KAFKA)"
-
-        # zookeeper info
-        - name: "KAFKA_ZOOKEEPER_CONNECT"
-          value: "$(ZOOKEEPER_SERVICE_HOST):$(ZOOKEEPER_SERVICE_PORT_ZOOKEEPER)"
-
----
-apiVersion: networking.k8s.io/v1
-kind: NetworkPolicy
-metadata:
-  name: kafka-netpol
-  namespace: openwhisk
-spec:
-  podSelector:
-    matchLabels:
-      name: kafka
-  ingress:
-  # Allow invoker and controller to connect to kafka
-  - from:
-    - podSelector:
-        matchLabels:
-          name: controller
-    - podSelector:
-        matchLabels:
-          name: invoker
-    ports:
-     - port: 9092
-  # kafkas can connect to each other
-  - from:
-    - podSelector:
-        matchLabels:
-          name: kafka
-    ports:
-     - port: 9092
diff --git a/kubernetes/loadtest/README.md b/kubernetes/loadtest/README.md
deleted file mode 100644
index 81d71b0..0000000
--- a/kubernetes/loadtest/README.md
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-LoadTest
------
-
-A collection of jobs to do performance testing
-against openwhisk deployed on kube, based on
-the code in apache/incubator-openwhisk-performance.git.
-
-The jobs are intended to run in the openwhisk namespace in the same
-cluster as the system under test to eliminate external network
-latency.
-
-# Preparing
-
-The Jobs assume the noopLatency and noopThroughput actions are already
-created in the default namespace.  These actions are simple noops
-(for example a JavaScript action whose body is `function main(){return {};}`).
-
-# Runnning
-
-To run one of the Jobs, edit the yml to adjust test parameters and then
-
-```
-kubectl apply -f loadtest-latency.yml
-```
diff --git a/kubernetes/loadtest/loadtest-latency-internal.yml b/kubernetes/loadtest/loadtest-latency-internal.yml
deleted file mode 100644
index 0b77c16..0000000
--- a/kubernetes/loadtest/loadtest-latency-internal.yml
+++ /dev/null
@@ -1,60 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
-# This Job measures internal latency (no ingress, no TLS termination) by
-# hitting the controller service directly.
-
-apiVersion: batch/v1
-kind: Job
-metadata:
-  name: loadtest-latency-internal
-  namespace: openwhisk
-spec:
-  activeDeadlineSeconds: 3600
-  template:
-    metadata:
-      name: loadtest-latency-internal
-      labels:
-        access: controller
-    spec:
-      affinity:
-        # do not run on a node that openwhisk is actually using
-        nodeAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - weight: 100
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: NotIn
-                values:
-                - invoker
-                - control-plane
-                - edge
-        # prefer to run on a loadtest node
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 50
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: In
-                values:
-                - loadtest
-      containers:
-      - name: loadtest
-        image: markusthoemmes/loadtest
-        env:
-          # number of samples to gather
-          - name: "NUM_SAMPLES"
-            value: "10000"
-          # base64 encoding of default auth.guest credentials
-          - name: "ENCODED_AUTH"
-            value: "MjNiYzQ2YjEtNzFmNi00ZWQ1LThjNTQtODE2YWE0ZjhjNTAyOjEyM3pPM3haQ0xyTU42djJCS0sxZFhZRnBYbFBrY2NPRnFtMTJDZEFzTWdSVTRWck5aOWx5R1ZDR3VNREdJd1A="
-          - name: "WHISK_API_HOST_NAME"
-            valueFrom:
-              configMapKeyRef:
-                name: whisk.ingress
-                key: api_host
-        command: ["loadtest"]
-        args: ["-n", "$(NUM_SAMPLES)", "-k", "-m", "POST", "-H", "Authorization: basic $(ENCODED_AUTH)", "http://$(CONTROLLER_SERVICE_HOST):$(CONTROLLER_SERVICE_PORT)/api/v1/namespaces/_/actions/noopLatency?blocking=true"]
-      restartPolicy: Never
diff --git a/kubernetes/loadtest/loadtest-latency.yml b/kubernetes/loadtest/loadtest-latency.yml
deleted file mode 100644
index 213086c..0000000
--- a/kubernetes/loadtest/loadtest-latency.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
-# This Job measures end-to-end latency by hitting the public ingress.
-
-apiVersion: batch/v1
-kind: Job
-metadata:
-  name: loadtest-latency
-  namespace: openwhisk
-spec:
-  activeDeadlineSeconds: 3600
-  template:
-    metadata:
-      name: loadtest-latency
-    spec:
-      affinity:
-        # do not run on a node that openwhisk is actually using
-        nodeAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - weight: 100
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: NotIn
-                values:
-                - invoker
-                - control-plane
-                - edge
-        # prefer to run on a loadtest node
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 50
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: In
-                values:
-                - loadtest
-      containers:
-      - name: loadtest
-        image: markusthoemmes/loadtest
-        env:
-          # number of samples to gather
-          - name: "NUM_SAMPLES"
-            value: "10000"
-          # base64 encoding of default auth.guest credentials
-          - name: "ENCODED_AUTH"
-            value: "MjNiYzQ2YjEtNzFmNi00ZWQ1LThjNTQtODE2YWE0ZjhjNTAyOjEyM3pPM3haQ0xyTU42djJCS0sxZFhZRnBYbFBrY2NPRnFtMTJDZEFzTWdSVTRWck5aOWx5R1ZDR3VNREdJd1A="
-          - name: "WHISK_API_HOST_NAME"
-            valueFrom:
-              configMapKeyRef:
-                name: whisk.ingress
-                key: api_host
-        command: ["loadtest"]
-        args: ["-n", "$(NUM_SAMPLES)", "-k", "-m", "POST", "-H", "Authorization: basic $(ENCODED_AUTH)", "$(WHISK_API_HOST_NAME)/api/v1/namespaces/_/actions/noopLatency?blocking=true"]
-      restartPolicy: Never
diff --git a/kubernetes/loadtest/loadtest-throughput.yml b/kubernetes/loadtest/loadtest-throughput.yml
deleted file mode 100644
index 5a9ca11..0000000
--- a/kubernetes/loadtest/loadtest-throughput.yml
+++ /dev/null
@@ -1,61 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
-# This Job measures throughput obtainable by hitting the public ingress.
-
-apiVersion: batch/v1
-kind: Job
-metadata:
-  name: loadtest-throughput-512x1024x300sec
-  namespace: openwhisk
-spec:
-  activeDeadlineSeconds: 3600
-  template:
-    metadata:
-      name: loadtest-throughput-512x1024x300sec
-    spec:
-      affinity:
-        # do not run on a node that openwhisk is actually using
-        nodeAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - weight: 100
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: NotIn
-                values:
-                - invoker
-                - control-plane
-                - edge
-        # prefer to run on a loadtest node
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 50
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: In
-                values:
-                - loadtest
-      containers:
-      - name: loadtest
-        image: williamyeh/wrk
-        env:
-          # number of samples to gather
-          - name: "DURATION"
-            value: "300"
-          - name: "CONCURRENCY"
-            value: "1024"
-          - name: "NUM_CORES"
-            value: "512"
-          # base64 encoding of default auth.guest credentials
-          - name: "ENCODED_AUTH"
-            value: "MjNiYzQ2YjEtNzFmNi00ZWQ1LThjNTQtODE2YWE0ZjhjNTAyOjEyM3pPM3haQ0xyTU42djJCS0sxZFhZRnBYbFBrY2NPRnFtMTJDZEFzTWdSVTRWck5aOWx5R1ZDR3VNREdJd1A="
-          - name: "WHISK_API_HOST_NAME"
-            valueFrom:
-              configMapKeyRef:
-                name: whisk.ingress
-                key: api_host
-        command: ["/bin/sh"]
-        args: ["-c", "echo wrk.method = \\\"POST\\\" > post.lua; wrk --threads $(NUM_CORES) --connections $(CONCURRENCY) --duration $(DURATION) --header \"Authorization: basic $(ENCODED_AUTH)\" $(WHISK_API_HOST_NAME)/api/v1/namespaces/_/actions/noopThroughput?blocking=true --latency --timeout 10s --script post.lua"]
-      restartPolicy: Never
diff --git a/kubernetes/nginx/README.md b/kubernetes/nginx/README.md
deleted file mode 100644
index 0306585..0000000
--- a/kubernetes/nginx/README.md
+++ /dev/null
@@ -1,126 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-Nginx
------
-
-# Deploy Nginx
-
-Depending on how you are deploying OpenWhisk, the Nginx pod
-may or may not need to support handling TLS termination
-for incoming requests. In production deployments, TLS termination
-will be handled by an Ingress placed in front of the Nginx service.
-In dev/test scenarios or when deploying on a single node cluster, it
-is likely that you will use a basic Ingress that does not handle TLS
-termination and therefore will need Nginx to handle it.
-
-The instructions below configure Nginx with self-signed certificates
-to enable basic TLS termination for dev/test.  If TLS termination is
-being handled by the Ingress, you can optionally skip generating the
-certificate, chop the ssl configuration and port 443 from nginx.conf,
-and eliminate the secret from nginx.yml.  If you have real
-certificates, you can modify nginx.conf with the proper hostname and
-install them instead of the self-signed ones generated below.
-
-## Generate self-signed certificates
-
-* `certs.sh` can be used to generate self signed certs for OpenWhisk.
-   By default, the current `nginx.conf` file expects the server url
-   to use `localhost`. To generate a self signed cert with the same
-   hostname for testing purposes just run:
-
-   ```
-   certs.sh localhost
-   ```
-
-   If you want to modify the domain name, make sure to update the
-   [nginx.conf](nginx.conf) file appropriately.
-
-## Create Nginx Secrets
-
-With the generated certs for Nginx or your own certificates, you
-should now be able to create the nginx Secrets. To create the Secrets
-resource in the OpenWhisk namespace run the following command:
-
-```
-kubectl -n openwhisk create secret tls nginx --cert=certs/cert.pem --key=certs/key.pem
-```
-
-## Create Nginx ConfigMap
-
-To create the ConfigMap in the OpenWhisk namespace with the `nginx.conf`
-file, run the following command:
-
-```
-kubectl -n openwhisk create configmap nginx --from-file=nginx.conf
-```
-
-## Deploying Nginx
-
-After successfully [creating the nginx ConfigMap](#create-nginx-configmap)
-and [creating the Secrets](#create-nginx-secrets)
-you will be able to create the Nginx Service and Deployment.
-
-```
-kubectl apply -f nginx.yml
-```
-
-# Deployment Changes
-## Update Nginx ConfigMap
-
-To update the nginx ConfigMap:
-
-```
-kubectl -n openwhisk edit cm nginx -o yaml
-```
-
-Kubernetes will then go through and update any deployed Nginx
-instances. Updating all of the keys defined in the nginx
-ConfigMap.
-
-## Update Nginx Secrets
-
-When updating the nginx Secrets, you will need to have the
-actual yaml file. To obtain the generated YAML file run:
-
-```
-kubectl -n openwhisk get secrets nginx -o yaml > nginx_secrets.yml
-```
-
-Then you can manually edit the fields by hand. Remember that the
-values in a secrets file are base64 encoded values. Also, you
-will need to remove a couple of fields from the `metadata` section.
-
-```
-  creationTimestamp: 2017-06-21T15:39:56Z
-  resourceVersion: "2156"
-  selfLink: /api/v1/namespaces/openwhisk/configmaps/nginx
-  uid: e0585576-5697-11e7-aef9-080027a9c6c9
-```
-
-When you have finished editing the yaml file, run:
-
-```
-kubectl replace -f nginx_secrets.yml
-```
-
-Kubernetes will then go through an update any deployed Nginx
-instances. Updating all of the keys defined in the nginx
-Secrets.
-
diff --git a/kubernetes/nginx/certs.sh b/kubernetes/nginx/certs.sh
deleted file mode 100755
index 6d22070..0000000
--- a/kubernetes/nginx/certs.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
-set -ex
-
-if [ -z "$1" ]; then
-cat <<- EndOfMessage
-  First argument should be the domain for the OpenWhisk deployment.
-  Note: By default the Nginx config file assumes the pattern '*.openwhisk'.
-EndOfMessage
-
-exit 1
-fi
-
-mkdir -p certs
-
-openssl req -x509 -newkey rsa:2048 -keyout certs/key.pem -out certs/cert.pem -nodes -subj "/CN=$1" -days 365
diff --git a/kubernetes/nginx/nginx.conf b/kubernetes/nginx/nginx.conf
deleted file mode 100644
index 22ddcba..0000000
--- a/kubernetes/nginx/nginx.conf
+++ /dev/null
@@ -1,99 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
-worker_rlimit_nofile 4096;
-
-events {
-    worker_connections  4096;
-}
-
-http {
-    client_max_body_size 50M;
-
-    rewrite_log on;
-    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 80;
-        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-]+)\.localhost$;
-
-        ssl_session_cache    shared:SSL:1m;
-        ssl_session_timeout  10m;
-        ssl_certificate      /etc/nginx/certs/tls.crt;
-        ssl_certificate_key  /etc/nginx/certs/tls.key;
-        ssl_verify_client off;
-        ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;
-        ssl_ciphers RC4:HIGH:!aNULL:!MD5;
-        ssl_prefer_server_ciphers on;
-        proxy_ssl_verify off;
-        proxy_ssl_session_reuse on;
-
-        # Hack to convince nginx to dynamically resolve the dns entry.
-        # Required to get HA for controller to work. See issue #77.
-        resolver kube-dns.kube-system;
-        set $controller controller.openwhisk.svc.cluster.local;
-
-        # proxy to the web action path
-        location / {
-            if ($namespace) {
-              rewrite    /(.*) /api/v1/web/${namespace}/$1 break;
-            }
-            proxy_pass http://$controller:8080;
-            proxy_read_timeout 75s; # 70+5 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:8080;
-            proxy_read_timeout 75s; # 70+5 additional seconds to allow controller to terminate request
-        }
-
-        location /blackbox.tar.gz {
-            return 301 https://github.com/apache/incubator-openwhisk-runtime-docker/releases/download/sdk%400.1.0/blackbox-0.1.0.tar.gz;
-        }
-        # leaving this for a while for clients out there to update to the new endpoint
-        location /blackbox-0.1.0.tar.gz {
-            return 301 /blackbox.tar.gz;
-        }
-
-        location /OpenWhiskIOSStarterApp.zip {
-            return 301 https://github.com/openwhisk/openwhisk-client-swift/releases/download/0.2.3/starterapp-0.2.3.zip;
-        }
-
-        # redirect requests for specific binaries to the matching one from the latest openwhisk-cli release.
-        location /cli/go/download/linux/amd64 {
-            return 301 https://github.com/apache/incubator-openwhisk-cli/releases/download/latest/OpenWhisk_CLI-latest-linux-amd64.tgz;
-        }
-        location /cli/go/download/linux/386 {
-            return 301 https://github.com/apache/incubator-openwhisk-cli/releases/download/latest/OpenWhisk_CLI-latest-linux-386.tgz;
-        }
-        location /cli/go/download/mac/amd64 {
-            return 301 https://github.com/apache/incubator-openwhisk-cli/releases/download/latest/OpenWhisk_CLI-latest-mac-amd64.zip;
-        }
-        location /cli/go/download/mac/386 {
-            return 301 https://github.com/apache/incubator-openwhisk-cli/releases/download/latest/OpenWhisk_CLI-latest-mac-386.zip;
-        }
-        location /cli/go/download/windows/amd64 {
-            return 301 https://github.com/apache/incubator-openwhisk-cli/releases/download/latest/OpenWhisk_CLI-latest-windows-amd64.zip;
-        }
-        location /cli/go/download/windows/386 {
-            return 301 https://github.com/apache/incubator-openwhisk-cli/releases/download/latest/OpenWhisk_CLI-latest-windows-386.zip;
-        }
-
-        # redirect top-level cli downloads to the latest openwhisk-cli release.
-        location /cli/go/download {
-            return 301 https://github.com/apache/incubator-openwhisk-cli/releases/latest;
-         }
-    }
-}
diff --git a/kubernetes/nginx/nginx.yml b/kubernetes/nginx/nginx.yml
deleted file mode 100644
index db4cc66..0000000
--- a/kubernetes/nginx/nginx.yml
+++ /dev/null
@@ -1,81 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.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
-
-      affinity:
-        # prefer to not run on an invoker node (only prefer because of single node clusters)
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 100
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: NotIn
-                values:
-                - invoker
-        # prefer to run on an edge node
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 50
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: In
-                values:
-                - edge
-        # do not allow more than 1 nginx instance to run on a given node
-        podAntiAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - labelSelector:
-              matchExpressions:
-                - key: name
-                  operator: In
-                  values:
-                  - nginx
-            topologyKey: "kubernetes.io/hostname"
-
-      volumes:
-      - name: nginx-certs
-        secret:
-          secretName: nginx
-      - name: nginx-conf
-        configMap:
-          name: nginx
-      - name: logs
-        emptyDir: {}
-
-      containers:
-      - name: nginx
-        imagePullPolicy: IfNotPresent
-        image: nginx:1.11
-        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/openwhisk-catalog/README.md b/kubernetes/openwhisk-catalog/README.md
deleted file mode 100644
index b1cf30a..0000000
--- a/kubernetes/openwhisk-catalog/README.md
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-OpenWhisk Catalog
------
-
-Once the system is deployed, we need to run a Job to install all the
-standard package catalog from incubator-openwhisk-catalog into the
-/whisk.system namespace.
-
-# Deploying
-
-To run the Job, you just need to run:
-
-```
-kubectl apply -f install-catalog.yml
-```
diff --git a/kubernetes/openwhisk-catalog/install-catalog.yml b/kubernetes/openwhisk-catalog/install-catalog.yml
deleted file mode 100644
index b4c38f3..0000000
--- a/kubernetes/openwhisk-catalog/install-catalog.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
-apiVersion: batch/v1
-kind: Job
-metadata:
-  name: install-catalog
-  namespace: openwhisk
-spec:
-  activeDeadlineSeconds: 600
-  template:
-    metadata:
-      name: install-catalog
-    spec:
-      containers:
-      - name: catalog
-        image: openwhisk/kube-openwhisk-catalog
-        env:
-          - name: "WHISK_CLI_VERSION"
-            valueFrom:
-              configMapKeyRef:
-                name: whisk.config
-                key: whisk_cli_version_tag
-          - name: "WHISK_AUTH"
-            valueFrom:
-              secretKeyRef:
-                name: whisk.auth
-                key: system
-          - name: "WHISK_API_HOST_NAME"
-            valueFrom:
-              configMapKeyRef:
-                name: whisk.ingress
-                key: api_host
-      restartPolicy: Never
diff --git a/kubernetes/package-kafka/README.md b/kubernetes/package-kafka/README.md
deleted file mode 100644
index ce3eebe..0000000
--- a/kubernetes/package-kafka/README.md
+++ /dev/null
@@ -1,64 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-# Deploy kafka package to Apache OpenWhisk
-
-This project is to deploy kafka package to local Apache OpenWhisk on a K8s using YAML file.
-
-## Prerequisite
-Edit package-kafka.env as needed to set the appropriate values for your deployment, then create the configmap packages.kafkaprovider:
-```
-kubectl -n openwhisk create cm packages.kafkaprovider --from-literal=kafkapkg_db_prefix=mq
-```
-
-The deployment also has dependencies to secret `whisk.auth` and `db.auth`, and configmap `whisk.ingress`. Make sure you have these settings before you start the deployment.
-
-## Step 1. Install kafka provider
-Note, if you are using an external CouchDB or Cloudant database for your deployment, you will need to edit the definition of DB_URL in kafkaprovider.yml.
-
-```
-kubectl apply -f kafkaprovider.yml
-```
-
-## Step 2. Install messaging package to your local Apache OpenWhisk
-```
-kubectl apply -f kafkapkginstaller.yml
-```
-
-## Verify your Kafka package
-Get the description of your Kafka package by:
-```
-wsk package get /whisk.system/messaging --summary -i
-```
-Create a kafka package binding:
-```
-wsk package bind /whisk.system/messaging myKafkaPkg -p brokers "[\"kafka_host1:9093\", \"kafka_host2:9093\"]" -i
-```
-Create a trigger:
-```
-wsk trigger create MyKafkaTrigger -f myKafkaPkg/kafkaFeed -p topic in-topic -i
-```
-Send a message to kafka topic by invoking the action `kafkaProduce`:
-```
-wsk action invoke myKafkaPkg/kafkaProduce -p topic in-topic -p value "this is a message" -i
-```
-Check activation log to see `MyKafkaTrigger` is triggered when a new message is sent.
-```
-wsk activation poll -i
-```
diff --git a/kubernetes/package-kafka/kafkapkginstaller.yml b/kubernetes/package-kafka/kafkapkginstaller.yml
deleted file mode 100644
index 3ddf198..0000000
--- a/kubernetes/package-kafka/kafkapkginstaller.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
-apiVersion: batch/v1
-kind: Job
-metadata:
-  name: kafkapkginstaller
-  namespace: openwhisk
-  labels:
-    name: kafkapkginstaller
-spec:
-  template:
-    metadata:
-      labels:
-        name: kafkapkginstaller
-    spec:
-      restartPolicy: Never
-      containers:
-      - name: kafkapkginstaller
-        imagePullPolicy: IfNotPresent
-        image: openwhisk/kube-kafkapkginstaller
-        env:
-        - name: "APIHOST"
-          valueFrom:
-            configMapKeyRef:
-              name: whisk.ingress
-              key: api_host
-        - name: "DB_HOST"
-          valueFrom:
-            configMapKeyRef:
-              name: db.config
-              key: db_host
-        - name: "DB_PORT"
-          valueFrom:
-            configMapKeyRef:
-              name: db.config
-              key: db_port
-        - name: "DB_USERNAME"
-          valueFrom:
-            secretKeyRef:
-              name: db.auth
-              key: db_username
-        - name: "DB_PASSWORD"
-          valueFrom:
-            secretKeyRef:
-              name: db.auth
-              key: db_password
-        - name: "DB_PREFIX"
-          valueFrom:
-            configMapKeyRef:
-              name: packages.kafkaprovider
-              key: kafkapkg_db_prefix
-        - name: "AUTH"
-          valueFrom:
-            secretKeyRef:
-              name: whisk.auth
-              key: system
diff --git a/kubernetes/package-kafka/kafkaprovider.yml b/kubernetes/package-kafka/kafkaprovider.yml
deleted file mode 100644
index 9bc4cfc..0000000
--- a/kubernetes/package-kafka/kafkaprovider.yml
+++ /dev/null
@@ -1,57 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
----
-apiVersion: extensions/v1beta1
-kind: Deployment
-metadata:
-  name: kafkaprovider
-  namespace: openwhisk
-  labels:
-    name: kafkaprovider
-spec:
-  replicas: 1
-  template:
-    metadata:
-      labels:
-        name: kafkaprovider
-        access: db
-    spec:
-      restartPolicy: Always
-      containers:
-      - name: kafkaprovider
-        imagePullPolicy: IfNotPresent
-        image: openwhisk/kafkaprovider
-        ports:
-        - name: kafkaprovider
-          containerPort: 8080
-        env:
-        - name: "DB_URL"
-          value: "http://$(COUCHDB_SERVICE_HOST):$(COUCHDB_SERVICE_PORT_COUCHDB)"
-        - name: "DB_USER"
-          valueFrom:
-            secretKeyRef:
-              name: db.auth
-              key: db_username
-        - name: "DB_PASS"
-          valueFrom:
-            secretKeyRef:
-              name: db.auth
-              key: db_password
-        - name: "DB_PREFIX"
-          valueFrom:
-            configMapKeyRef:
-              name: packages.kafkaprovider
-              key: kafkapkg_db_prefix
-        - name: "LOCAL_DEV"
-          value: "true"
-        - name: "ROUTER_HOST"
-          valueFrom:
-            configMapKeyRef:
-              name: whisk.ingress
-              key: api_host
-        - name: "ENDPOINT_AUTH"
-          valueFrom:
-            secretKeyRef:
-              name: whisk.auth
-              key: system
diff --git a/kubernetes/routemgmt/README.md b/kubernetes/routemgmt/README.md
deleted file mode 100644
index 9d06c2f..0000000
--- a/kubernetes/routemgmt/README.md
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-Route Management
------
-
-Once the system is deployed, we need to run a job
-to install packages that support route management.
-
-# Deploying
-
-To run the Job, you just need to run:
-
-```
-kubectl apply -f install-routemgmt.yml
-```
diff --git a/kubernetes/routemgmt/install-routemgmt.yml b/kubernetes/routemgmt/install-routemgmt.yml
deleted file mode 100644
index 8bb0a5b..0000000
--- a/kubernetes/routemgmt/install-routemgmt.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.0.
-
-apiVersion: batch/v1
-kind: Job
-metadata:
-  name: install-routemgmt
-  namespace: openwhisk
-spec:
-  activeDeadlineSeconds: 600
-  template:
-    metadata:
-      name: install-routemgmt
-    spec:
-      containers:
-      - name: routemgmt
-        image: openwhisk/kube-routemgmt
-        env:
-          - name: "WHISK_CLI_VERSION"
-            valueFrom:
-              configMapKeyRef:
-                name: whisk.config
-                key: whisk_cli_version_tag
-          - name: "WHISK_AUTH"
-            valueFrom:
-              secretKeyRef:
-                name: whisk.auth
-                key: system
-          - name: "WHISK_API_HOST_NAME"
-            valueFrom:
-              configMapKeyRef:
-                name: whisk.ingress
-                key: api_host
-          - name: "WHISK_NAMESPACE"
-            valueFrom:
-              configMapKeyRef:
-                name: whisk.config
-                key: whisk_system_namespace
-          - name: "WHISK_API_GATEWAY_HOST_V2"
-            value: "http://$(APIGATEWAY_SERVICE_HOST):$(APIGATEWAY_SERVICE_PORT_API)/v2"
-
-      restartPolicy: Never
diff --git a/kubernetes/zookeeper/README.md b/kubernetes/zookeeper/README.md
deleted file mode 100644
index 1050765..0000000
--- a/kubernetes/zookeeper/README.md
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
--->
-
-Zookeeper
------
-
-# Deploying
-
-To deploy Zookeeper, you just need to run:
-
-```
-kubectl apply -f zookeeper.yml
-```
diff --git a/kubernetes/zookeeper/zookeeper.yml b/kubernetes/zookeeper/zookeeper.yml
deleted file mode 100644
index e91696c..0000000
--- a/kubernetes/zookeeper/zookeeper.yml
+++ /dev/null
@@ -1,109 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more contributor
-# license agreements; and to You under the Apache License, Version 2.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
-      volumes:
-      - name: zk-data
-        persistentVolumeClaim:
-          claimName: pv-zookeeper-data-01
-      - name: zk-datalog
-        persistentVolumeClaim:
-          claimName: pv-zookeeper-datalog-01
-
-      affinity:
-        # prefer to not run on an invoker node (only prefer because of single node clusters)
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 100
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: NotIn
-                values:
-                - invoker
-        # prefer to run on a control-plane node
-        nodeAffinity:
-          preferredDuringSchedulingIgnoredDuringExecution:
-          - weight: 50
-            preference:
-              matchExpressions:
-              - key: openwhisk-role
-                operator: In
-                values:
-                - control-plane
-        # do not allow more than 1 zookeeper instance to run on a given node
-        podAntiAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - labelSelector:
-              matchExpressions:
-                - key: name
-                  operator: In
-                  values:
-                  - zookeeper
-            topologyKey: "kubernetes.io/hostname"
-
-      containers:
-      - name: zookeeper
-        image: zookeeper:3.4
-        imagePullPolicy: IfNotPresent
-        ports:
-        - name: zookeeper
-          containerPort: 2181
-        - name: server
-          containerPort: 2888
-        - name: leader-election
-          containerPort: 3888
-        volumeMounts:
-        - mountPath: /data
-          name: zk-data
-        - mountPath: /datalog
-          name: zk-datalog
-        env:
-        - name: "ZOO_DATA_DIR"
-          value: /data
-        - name: "ZOO_DATA_LOG_DIR"
-          value: /datalog
----
-apiVersion: networking.k8s.io/v1
-kind: NetworkPolicy
-metadata:
-  name: zookeeper-netpol
-  namespace: openwhisk
-spec:
-  podSelector:
-    matchLabels:
-      name: zookeeper
-  ingress:
-  # Allow kafka and invoker to connect to zookeeper
-  - from:
-    - podSelector:
-        matchLabels:
-          name: kafka
-    - podSelector:
-        matchLabels:
-          name: invoker
-    ports:
-     - port: 2181
-  # zookeepers can connect to each other
-  - from:
-    - podSelector:
-        matchLabels:
-          name: zookeeper
-    ports:
-     - port: 2181
-     - port: 2888
-     - port: 3888
diff --git a/tools/travis/build-helm.sh b/tools/travis/build-helm.sh
index 7e6c42c..f1c2888 100755
--- a/tools/travis/build-helm.sh
+++ b/tools/travis/build-helm.sh
@@ -137,7 +137,8 @@ WSK_HOST=$(kubectl describe nodes | grep Hostname: | awk '{print $2}')
 if [ "$WSK_HOST" = "minikube" ]; then
     WSK_HOST=$(minikube ip)
 fi
-wsk property set --auth `cat $ROOTDIR/kubernetes/cluster-setup/auth.guest` --apihost $WSK_HOST:$WSK_PORT
+WSK_GUEST_AUTH=$(kubectl get secret whisk.auth -o jsonpath='{.data.guest}')
+wsk property set --auth $WSK_GUEST_AUTH --apihost $WSK_HOST:$WSK_PORT
 
 # Deploy OpenWhisk using Helm
 cd $ROOTDIR/helm


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services