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/01/04 23:04:43 UTC

[GitHub] rabbah closed pull request #138: controller/invoker configuration cleanup

rabbah closed pull request #138: controller/invoker configuration cleanup
URL: https://github.com/apache/incubator-openwhisk-deploy-kube/pull/138
 
 
   

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/README.md b/README.md
index 770bc7e..8c61783 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,7 @@ Several requirements must be met for OpenWhisk to deploy on Kubernetes.
 ## Using Minikube
 
 For local development and testing, we recommend using Minikube version 0.23+
-with the docker network in promiscuous mode. Our Travis CI testing using Minikube 0.23.0.
+with the docker network in promiscuous mode. Our Travis CI testing uses Minikube 0.23.0.
 Take a look at these [instructions](/docs/setting_up_minikube/README.md).
 
 ## Using a Kubernetes cluster from a cloud provider
diff --git a/kubernetes/cluster-setup/README.md b/kubernetes/cluster-setup/README.md
index d44adbf..45d27e9 100644
--- a/kubernetes/cluster-setup/README.md
+++ b/kubernetes/cluster-setup/README.md
@@ -20,6 +20,35 @@ kubectl apply -f namespace.yml
 kubectl apply -f services.yml
 ```
 
+### Configure system-wide version information and settings
+
+Edit whisk.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
diff --git a/kubernetes/cluster-setup/config.env b/kubernetes/cluster-setup/config.env
new file mode 100644
index 0000000..1de7a56
--- /dev/null
+++ b/kubernetes/cluster-setup/config.env
@@ -0,0 +1,5 @@
+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
new file mode 100644
index 0000000..87f319f
--- /dev/null
+++ b/kubernetes/cluster-setup/limits.env
@@ -0,0 +1,5 @@
+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/runtimes.json b/kubernetes/cluster-setup/runtimes.json
new file mode 100644
index 0000000..8030fa2
--- /dev/null
+++ b/kubernetes/cluster-setup/runtimes.json
@@ -0,0 +1,111 @@
+{
+    "bypassPullForLocalImages": false,
+    "defaultImagePrefix": "openwhisk",
+    "defaultImageTag": "latest",
+    "runtimes": {
+        "nodejs": [
+            {
+                "kind": "nodejs",
+                "image": {
+                    "name": "nodejsaction"
+                },
+                "deprecated": true
+            },
+            {
+                "kind": "nodejs:6",
+                "default": true,
+                "image": {
+                    "name": "nodejs6action"
+                },
+                "deprecated": false
+            },
+            {
+                "kind": "nodejs:8",
+                "default": false,
+                "image": {
+                    "name": "action-nodejs-v8"
+                },
+                "deprecated": false
+            }
+        ],
+        "python": [
+            {
+                "kind": "python",
+                "image": {
+                    "name": "python2action"
+                },
+                "deprecated": false
+            },
+            {
+                "kind": "python:2",
+                "default": true,
+                "image": {
+                    "name": "python2action"
+                },
+                "deprecated": false
+            },
+            {
+                "kind": "python:3",
+                "image": {
+                    "name": "python3action"
+                },
+                "deprecated": false
+            }
+        ],
+        "swift": [
+            {
+                "kind": "swift",
+                "image": {
+                    "name": "swiftaction"
+                },
+                "deprecated": true
+            },
+            {
+                "kind": "swift:3",
+                "image": {
+                    "name": "swift3action"
+                },
+                "deprecated": true
+            },
+            {
+                "kind": "swift:3.1.1",
+                "default": true,
+                "image": {
+                    "name": "action-swift-v3.1.1"
+                },
+                "deprecated": false
+            }
+        ],
+        "java": [
+            {
+                "kind": "java",
+                "default": true,
+                "image": {
+                    "name": "java8action"
+                },
+                "deprecated": false,
+                "attached": {
+                    "attachmentName": "jarfile",
+                    "attachmentType": "application/java-archive"
+                },
+                "sentinelledLogs": false,
+                "requireMain": true
+            }
+        ],
+        "php": [
+            {
+                "kind": "php:7.1",
+                "default": true,
+                "deprecated": false,
+                "image": {
+                    "name": "action-php-v7.1"
+                }
+            }
+        ]
+    },
+    "blackboxes": [
+        {
+            "name": "dockerskeleton"
+        }
+    ]
+}
diff --git a/kubernetes/controller/README.md b/kubernetes/controller/README.md
index db0505c..c4a06e8 100644
--- a/kubernetes/controller/README.md
+++ b/kubernetes/controller/README.md
@@ -3,22 +3,35 @@ Controller
 
 # Deploying
 
-When deploying the Controller, it needs to be deployed via a
-[StatefulSet][StatefulSet]. This is because each Controller
-instance needs to know which index it is. The Controller
-can be deployed with:
+## 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
-## Increase Controller Count
+## Changing the Controller Count
 
-You will need to update the number of replicas for the
-Controllers [here](https://github.com/apache/incubator-openwhisk-deploy-kube/tree/master/kubernetes/controller/controller.yml#L10)
-and the value of CONTROLLER_INSTANCES [here](https://github.com/apache/incubator-openwhisk-deploy-kube/tree/master/kubernetes/controller/controller.yml#L60)
-and the value of AKKA_CLUSTER_SEED_NODES [here](https://github.com/apache/incubator-openwhisk-deploy-kube/tree/master/kubernetes/controller/controller.yml#L88)
-and redeploy.
+Changing the number of controllers 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
new file mode 100644
index 0000000..4f79daa
--- /dev/null
+++ b/kubernetes/controller/controller.env
@@ -0,0 +1,2 @@
+java_opts=-Xmx2g
+controller_opts=
diff --git a/kubernetes/controller/controller.yml b/kubernetes/controller/controller.yml
index e111f2e..48dd41e 100644
--- a/kubernetes/controller/controller.yml
+++ b/kubernetes/controller/controller.yml
@@ -24,71 +24,89 @@ spec:
         ports:
         - name: controller
           containerPort: 8080
-        livenessProbe:
-          httpGet:
-            path: "/ping"
-            port: 8080
-            scheme: "HTTP"
-          initialDelaySeconds: 5
-          periodSeconds: 10
-          timeoutSeconds: 1
         env:
-        - name: "PORT"
-          value: "8080"
+        # Properties for controller HA configuration
+        # Must change these if changing number of replicas
+        - name: "CONTROLLER_LOCALBOOKKEEPING"
+          value: "FALSE"
+        - name: "CONTROLLER_HA"
+          value: "TRUE"
+        - name: "CONTROLLER_INSTANCES"
+          value: "2"
+        - name: "AKKA_CLUSTER_SEED_NODES"
+          value: "controller-0.controller.openwhisk controller-1.controller.openwhisk"
+        - name: "CONFIG_akka_actor_provider"
+          value: "cluster"
 
-        # This needs to stay up to date with the lates runtime in Ansible Groupvars
+        # 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"
-          value: '{ "defaultImagePrefix": "openwhisk", "defaultImageTag": "latest", "runtimes": { "nodejs": [ { "kind": "nodejs", "image": { "name": "nodejsaction" }, "deprecated": true }, { "kind": "nodejs:6", "default": true, "image": { "name": "nodejs6action" }, "deprecated": false } ], "python": [ { "kind": "python", "image": { "name": "python2action" }, "deprecated": false }, { "kind": "python:2", "default": true, "image": { "name": "python2action" }, "deprecated": false }, { "kind": "python:3", "image": { "name": "python3action" }, "deprecated": false } ], "swift": [ { "kind": "swift", "image": { "name": "swiftaction" }, "deprecated": true }, { "kind": "swift:3", "image": { "name": "swift3action" }, "deprecated": true }, { "kind": "swift:3.1.1", "default": true, "image": { "name": "action-swift-v3.1.1" }, "deprecated": false } ], "java": [ { "kind": "java", "default": true, "image": { "name": "java8action" }, "deprecated": false, "attached": { "attachmentName": "jarfile", "att
 achmentType": "application/java-archive" }, "sentinelledLogs": false, "requireMain": true } ] }, "blackboxes": [ { "name": "dockerskeleton" } ] }'
+          valueFrom:
+            configMapKeyRef:
+              name: whisk.runtimes
+              key: runtimes
 
-        # this version is the day it is deployed and should be configured every time
+        # deployment version information
+        - name:  "WHISK_VERSION_NAME"
+          valueFrom:
+            configMapKeyRef:
+              name: whisk.config
+              key: whisk_version_name
         - name:  "WHISK_VERSION_DATE"
-          value: "2017-01-01T00:00:00Z"
-        # the buildno should be the docker image tag to use
+          valueFrom:
+            configMapKeyRef:
+              name: whisk.config
+              key: whisk_version_date
         - name: "WHISK_VERSION_BUILDNO"
-          value: "latest"
+          valueFrom:
+            configMapKeyRef:
+              name: whisk.config
+              key: whisk_version_tag
 
-        # Java options
-        - name: "JAVA_OPTS"
-          value: "-Xmx2g"
+        # 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
 
-        # Kafka properties
+        # properties for Kafka connection
         - name: "KAFKA_HOSTS"
           value: "$(KAFKA_SERVICE_HOST):$(KAFKA_SERVICE_PORT_KAFKA)"
 
-        # specific controller arguments
-        - name: "CONTROLLER_INSTANCES"
-          value: "2"
-        - name: "CONTROLLER_OPTS"
-          value: ""
-        - name: "DEFAULTLIMITS_ACTIONS_INVOKES_PERMINUTE"
-          value: "120"
-        - name: "DEFAULTLIMITS_ACTIONS_INVOKES_CONCURRENT"
-          value: "100"
-        - name: "DEFAULTLIMITS_ACTIONS_INVOKES_CONCURRENTINSYSTEM"
-          value: "500"
-        - name: "DEFAULTLIMITS_ACTIONS_SEQUENCE_MAXLENGTH"
-          value: "50"
-        - name: "DEFAULTLIMITS_TRIGGERS_FIRES_PERMINUTE"
-          value: "60"
-        - name: "LIMITS_ACTIONS_SEQUENCE_MAXLENGTH"
-          value: "50"
-        - name: "LIMITS_TRIGGERS_FIRES_PERMINUTE"
-          value: "60"
-        - name: "LIMITS_ACTIONS_INVOKES_PERMINUTE"
-          value: "60"
-        - name: "LIMITS_ACTIONS_INVOKES_CONCURRENTINSYSTEM"
-          value: "5000"
-        - name: "LIMITS_ACTIONS_INVOKES_CONCURRENT"
-          value: "30"
-        - name: "CONTROLLER_LOCALBOOKKEEPING"
-          value: "FALSE"
-        - name: "CONTROLLER_HA"
-          value: "TRUE"
-        - name: "AKKA_CLUSTER_SEED_NODES"
-          value: "controller-0.controller.openwhisk controller-1.controller.openwhisk"
-        - name: "CONFIG_akka_actor_provider"
-          value: "cluster"
-
         # properties for DB connection
         - name: "DB_USERNAME"
           valueFrom:
@@ -114,12 +132,6 @@ spec:
             configMapKeyRef:
               name: db.config
               key: db_provider
-        - name: "DB_WHISK_ACTIONS_DDOC"
-          value: "whisks.v2"
-        - name: "DB_WHISK_ACTIVATIONS_DDOC"
-          value: "whisks.v2"
-        - name: "DB_WHISK_ACTIVATIONS_FILTER_DDOC"
-          value: "whisks-filters.v2"
         - name: "DB_WHISK_ACTIVATIONS"
           valueFrom:
             configMapKeyRef:
@@ -135,3 +147,16 @@ spec:
             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
diff --git a/kubernetes/invoker/README.md b/kubernetes/invoker/README.md
index ee1c7a7..3632b84 100644
--- a/kubernetes/invoker/README.md
+++ b/kubernetes/invoker/README.md
@@ -3,6 +3,17 @@ Invoker
 
 # Deploying
 
+## Create config map
+
+Edit invoker.env as needed to set the appropriate values for your
+deployment, then create the configmap invoker.config:
+
+```
+kubectl -n openwhisk create cm invoker.config --from-env-file=invoker.env
+```
+
+## Deploy Invoker
+
 When deploying the Invoker, it needs to be deployed via a
 [DaemonSet](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/).
 This is because there should only ever be at most 1 Invoker
@@ -53,6 +64,6 @@ Error syncing pod, skipping: failed to "StartContainer" for "Invoker" with rpc e
 ```
 
 Then you might need to modify some of the volume mounts in the
-[invoker.yml](invoker.yml). For example,
-the error above is trying to find something from the apparmor mount which makes no
-sense to CoreOS. To fix the issue, you just need to remove the mount.
+[invoker.yml](invoker.yml). For example, the error above is trying to
+find something from the apparmor mount which makes no sense to
+CoreOS. To fix the issue, you just need to remove the mount.
diff --git a/kubernetes/invoker/invoker.env b/kubernetes/invoker/invoker.env
new file mode 100644
index 0000000..0616c19
--- /dev/null
+++ b/kubernetes/invoker/invoker.env
@@ -0,0 +1,8 @@
+java_opts=-Xmx2g
+invoker_opts=
+invoker_container_network=bridge
+invoker_use_runc=false
+docker_image_prefix=openwhisk
+docker_image_tag=latest
+docker_registry=
+invoker_logs_dir=
diff --git a/kubernetes/invoker/invoker.yml b/kubernetes/invoker/invoker.yml
index bbd1956..7241eb5 100644
--- a/kubernetes/invoker/invoker.yml
+++ b/kubernetes/invoker/invoker.yml
@@ -15,15 +15,6 @@ spec:
       restartPolicy: Always
       nodeSelector:
         openwhisk: "invoker"
-      tolerations:
-        - key: "dedicated"
-          value: "invoker"
-          effect: "NoSchedule"
-          operator: "Equal"
-        - key: "dedicated"
-          value: "invoker"
-          effect: "NoExecute"
-          operator: "Equal"
 
       volumes:
       - name: cgroup
@@ -47,65 +38,106 @@ spec:
         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"
+        - name: apparmor
+          mountPath: "/usr/lib/x86_64-linux-gnu/libapparmor.so.1"
+        lifecycle:
+          postStart:
+            exec:
+              command:
+              - "/bin/bash"
+              - "-c"
+              - "docker pull openwhisk/nodejsactionbase && docker pull openwhisk/nodejs6action && docker pull openwhisk/dockerskeleton && docker pull openwhisk/python2action && docker pull openwhisk/python3action && docker pull openwhisk/action-swift-v3.1.1 && docker pull openwhisk/swift3action && docker pull openwhisk/java8action"
         env:
           - name: "PORT"
             value: "8080"
-          - name: "SELF_DOCKER_ENDPOINT"
-            value: "localhost"
-          - name: "SERVICE_CHECK_HTTP"
-            value: "/ping"
-          - name: "SERVICE_CHECK_TIMEOUT"
-            value: "2s"
-          - name: "SERVICE_CHECK_INTERVAL"
-            value: "15s"
+
+          # 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
-          - name: "WHISK_VERSION_BUILDNO"
-            value: "latest"
+
+          # Docker-related options
           - name: "INVOKER_CONTAINER_NETWORK"
-            value: "bridge"
+            valueFrom:
+              configMapKeyRef:
+                name: invoker.config
+                key: invoker_container_network
           - name: "INVOKER_USE_RUNC"
-            value: "false"
-
-          # Properties for invoker image
+            valueFrom:
+              configMapKeyRef:
+                name: invoker.config
+                key: invoker_use_runc
           - name: "DOCKER_IMAGE_PREFIX"
-            value: "openwhisk"
+            valueFrom:
+              configMapKeyRef:
+                name: invoker.config
+                key: docker_image_prefix
           - name: "DOCKER_IMAGE_TAG"
-            value: "latest"
+            valueFrom:
+              configMapKeyRef:
+                name: invoker.config
+                key: docker_image_tag
           - name: "DOCKER_REGISTRY"
-            value: ""
+            valueFrom:
+              configMapKeyRef:
+                name: invoker.config
+                key: docker_registry
 
-          # Java options
+          # action runtimes
+          - name: "RUNTIMES_MANIFEST"
+            valueFrom:
+              configMapKeyRef:
+                name: whisk.runtimes
+                key: runtimes
+
+          # extra JVM arguments
           - name: "JAVA_OPTS"
-            value: "-Xmx2g"
+            valueFrom:
+              configMapKeyRef:
+                name: invoker.config
+                key: java_opts
 
-          # Invoker options
+          # extra Invoker arguments
           - name: "INVOKER_OPTS"
-            value: ""
+            valueFrom:
+              configMapKeyRef:
+                name: invoker.config
+                key: invoker_opts
 
-          # Kafka properties
+          # 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)"
 
-          # zookeeper info
+          # properties for zookeeper connection
           - name: "ZOOKEEPER_HOSTS"
             value: "$(ZOOKEEPER_SERVICE_HOST):$(ZOOKEEPER_SERVICE_PORT_ZOOKEEPER)"
 
-          # This property can change since it is generated via Ansible GroupVars
-          - name: "RUNTIMES_MANIFEST"
-            value: '{ "defaultImagePrefix": "openwhisk", "defaultImageTag": "latest", "runtimes": { "nodejs": [ { "kind": "nodejs", "image": { "name": "nodejsaction" }, "deprecated": true }, { "kind": "nodejs:6", "default": true, "image": { "name": "nodejs6action" }, "deprecated": false } ], "python": [ { "kind": "python", "image": { "name": "python2action" }, "deprecated": false }, { "kind": "python:2", "default": true, "image": { "name": "python2action" }, "deprecated": false }, { "kind": "python:3", "image": { "name": "python3action" }, "deprecated": false } ], "swift": [ { "kind": "swift", "image": { "name": "swiftaction" }, "deprecated": true }, { "kind": "swift:3", "image": { "name": "swift3action" }, "deprecated": true }, { "kind": "swift:3.1.1", "default": true, "image": { "name": "action-swift-v3.1.1" }, "deprecated": false } ], "java": [ { "kind": "java", "default": true, "image": { "name": "java8action" }, "deprecated": false, "attached": { "attachmentName": "jarfile", "a
 ttachmentType": "application/java-archive" }, "sentinelledLogs": false, "requireMain": true } ] }, "blackboxes": [ { "name": "dockerskeleton" } ] }'
-
-          # Default to empty logs dir. This is because logs should go to stdout on kube
-          - name: "WHISK_LOGS_DIR"
-            value: ""
-
-          # this version is the day it is deployed,
-          - name:  "WHISK_VERSION_DATE"
-            value: "2017-01-01T00:00:00Z"
-
           # properties for DB connection
           - name: "DB_USERNAME"
             valueFrom:
@@ -131,12 +163,6 @@ spec:
               configMapKeyRef:
                 name: db.config
                 key: db_provider
-          - name: "DB_WHISK_ACTIONS_DDOC"
-            value: "whisks.v2"
-          - name: "DB_WHISK_ACTIVATIONS_DDOC"
-            value: "whisks.v2"
-          - name: "DB_WHISK_ACTIVATIONS_FILTER_DDOC"
-            value: "whisks-filters.v2"
           - name: "DB_WHISK_ACTIVATIONS"
             valueFrom:
               configMapKeyRef:
@@ -152,31 +178,3 @@ spec:
               configMapKeyRef:
                 name: db.config
                 key: db_whisk_auths
-
-          # Name for the pod can be the hostname of the Kube node
-          - name: "INVOKER_NAME"
-            valueFrom:
-              fieldRef:
-                fieldPath: spec.nodeName
-        ports:
-        - name: invoker
-          containerPort: 8080
-        volumeMounts:
-        - name: cgroup
-          mountPath: "/sys/fs/cgroup"
-        - name: runc
-          mountPath: "/run/runc"
-        - name: dockersock
-          mountPath: "/var/run/docker.sock"
-        - name: dockerrootdir
-          mountPath: "/containers"
-        - name: apparmor
-          mountPath: "/usr/lib/x86_64-linux-gnu/libapparmor.so.1"
-        lifecycle:
-          postStart:
-            exec:
-              command:
-              - "/bin/bash"
-              - "-c"
-              - "docker pull openwhisk/nodejsactionbase && docker pull openwhisk/nodejs6action && docker pull openwhisk/dockerskeleton && docker pull openwhisk/python2action && docker pull openwhisk/python3action && docker pull openwhisk/action-swift-v3.1.1 && docker pull openwhisk/swift3action && docker pull openwhisk/java8action"
-
diff --git a/kubernetes/openwhisk-catalog/install-catalog.yml b/kubernetes/openwhisk-catalog/install-catalog.yml
index c959aee..0037bd0 100644
--- a/kubernetes/openwhisk-catalog/install-catalog.yml
+++ b/kubernetes/openwhisk-catalog/install-catalog.yml
@@ -14,7 +14,10 @@ spec:
         image: openwhisk/kube-openwhisk-catalog
         env:
           - name: "WHISK_CLI_VERSION"
-            value: "latest"
+            valueFrom:
+              configMapKeyRef:
+                name: whisk.config
+                key: whisk_cli_version_tag
           - name: "WHISK_AUTH"
             valueFrom:
               secretKeyRef:
diff --git a/kubernetes/routemgmt/install-routemgmt.yml b/kubernetes/routemgmt/install-routemgmt.yml
index 8aebd2b..1ad9d87 100644
--- a/kubernetes/routemgmt/install-routemgmt.yml
+++ b/kubernetes/routemgmt/install-routemgmt.yml
@@ -14,7 +14,10 @@ spec:
         image: openwhisk/kube-routemgmt
         env:
           - name: "WHISK_CLI_VERSION"
-            value: "latest"
+            valueFrom:
+              configMapKeyRef:
+                name: whisk.config
+                key: whisk_cli_version_tag
           - name: "WHISK_AUTH"
             valueFrom:
               secretKeyRef:
@@ -26,7 +29,10 @@ spec:
                 name: whisk.ingress
                 key: api_host
           - name: "WHISK_NAMESPACE"
-            value: "/whisk.system"
+            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"
 
diff --git a/tools/travis/build.sh b/tools/travis/build.sh
index 4915fdb..0fb229d 100755
--- a/tools/travis/build.sh
+++ b/tools/travis/build.sh
@@ -147,6 +147,9 @@ echo "Performing steps from cluster-setup"
 pushd kubernetes/cluster-setup
   kubectl apply -f namespace.yml
   kubectl apply -f services.yml
+  kubectl -n openwhisk create cm whisk.config --from-env-file=config.env
+  kubectl -n openwhisk create cm whisk.runtimes --from-file=runtimes=runtimes.json
+  kubectl -n openwhisk create cm whisk.limits --from-env-file=limits.env
   kubectl -n openwhisk create secret generic whisk.auth --from-file=system=auth.whisk.system --from-file=guest=auth.guest
 popd
 
@@ -197,6 +200,7 @@ popd
 # setup the controller
 echo "Deploying controller"
 pushd kubernetes/controller
+  kubectl -n openwhisk create cm controller.config --from-env-file=controller.env
   kubectl apply -f controller.yml
 
   statefulsetHealthCheck "controller"
@@ -205,6 +209,7 @@ popd
 # setup the invoker
 echo "Deploying invoker"
 pushd kubernetes/invoker
+  kubectl -n openwhisk create cm invoker.config --from-env-file=invoker.env
   kubectl apply -f invoker.yml
 
   # wait until the invoker is ready


 

----------------------------------------------------------------
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