You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwhisk.apache.org by ra...@apache.org on 2018/01/04 23:04:40 UTC
[incubator-openwhisk-deploy-kube] branch master updated:
controller/invoker configuration cleanup (#138)
This is an automated email from the ASF dual-hosted git repository.
rabbah pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk-deploy-kube.git
The following commit(s) were added to refs/heads/master by this push:
new e7bd0b3 controller/invoker configuration cleanup (#138)
e7bd0b3 is described below
commit e7bd0b3e63c99dbb9e10f708c3b37480258808c3
Author: David Grove <dg...@users.noreply.github.com>
AuthorDate: Thu Jan 4 18:04:38 2018 -0500
controller/invoker configuration cleanup (#138)
1. get runtimesManifest from configmap
2. specify action/trigger limits in configmap
3. put all misc. deployment-configurable parameters
into configmaps
4. eliminate obsolete environment variables from invoker/controller.yml
---
README.md | 2 +-
kubernetes/cluster-setup/README.md | 29 +++++
kubernetes/cluster-setup/config.env | 5 +
kubernetes/cluster-setup/limits.env | 5 +
kubernetes/cluster-setup/runtimes.json | 111 ++++++++++++++++
kubernetes/controller/README.md | 33 +++--
kubernetes/controller/controller.env | 2 +
kubernetes/controller/controller.yml | 145 ++++++++++++---------
kubernetes/invoker/README.md | 17 ++-
kubernetes/invoker/invoker.env | 8 ++
kubernetes/invoker/invoker.yml | 154 +++++++++++------------
kubernetes/openwhisk-catalog/install-catalog.yml | 5 +-
kubernetes/routemgmt/install-routemgmt.yml | 10 +-
tools/travis/build.sh | 5 +
14 files changed, 376 insertions(+), 155 deletions(-)
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" [...]
+ 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 }, { "kin [...]
-
- # 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
--
To stop receiving notification emails like this one, please contact
['"commits@openwhisk.apache.org" <co...@openwhisk.apache.org>'].