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/07/07 17:20:24 UTC
[incubator-openwhisk-deploy-kube] branch master updated: Split Helm
chart for core OpenWhisk and providers (#248)
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 489ce8e Split Helm chart for core OpenWhisk and providers (#248)
489ce8e is described below
commit 489ce8e90abf3bc411f8dd7087d42916c8a004be
Author: David Grove <dg...@users.noreply.github.com>
AuthorDate: Sat Jul 7 13:20:22 2018 -0400
Split Helm chart for core OpenWhisk and providers (#248)
Split the current single Helm chart for deploying OpenWhisk and its
providers into multiple Helm charts. In both production and CI/CD
environments it may be desirable to separately deploy the core
OpenWhisk system and the associated providers.
Fixes #246.
---
README.md | 26 ++++++++++++++++++++--
helm/{ => openwhisk}/Chart.yaml | 0
helm/{ => openwhisk}/runtimes-minimal-travis.json | 0
helm/{ => openwhisk}/runtimes.json | 0
helm/{ => openwhisk}/templates/NOTES.txt | 0
helm/{ => openwhisk}/templates/_affinity.tpl | 0
helm/{ => openwhisk}/templates/_helpers.tpl | 0
helm/{ => openwhisk}/templates/_invokerHelpers.tpl | 0
helm/{ => openwhisk}/templates/_readiness.tpl | 0
helm/{ => openwhisk}/templates/apigateway.yaml | 0
helm/{ => openwhisk}/templates/authSecrets.yaml | 0
.../templates/clusterConfigMaps.yaml | 0
helm/{ => openwhisk}/templates/controller.yaml | 0
helm/{ => openwhisk}/templates/couchdb.yaml | 0
helm/{ => openwhisk}/templates/ingress.yaml | 0
.../templates/installCatalogJob.yaml | 0
.../templates/installRouteMgmtJob.yaml | 0
helm/{ => openwhisk}/templates/invoker.yaml | 0
helm/{ => openwhisk}/templates/kafka.yaml | 0
helm/{ => openwhisk}/templates/nginx.yaml | 0
helm/{ => openwhisk}/templates/nginxConfigMap.yaml | 0
helm/{ => openwhisk}/templates/nginxSecret.yaml | 0
helm/{ => openwhisk}/templates/redis.yaml | 0
helm/{ => openwhisk}/templates/rolebindings.yaml | 0
helm/{ => openwhisk}/templates/zookeeper.yaml | 0
helm/{ => openwhisk}/values.yaml | 10 ---------
helm/{ => providers}/Chart.yaml | 4 ++--
helm/{ => providers/charts/kafka}/Chart.yaml | 4 ++--
.../charts/kafka}/templates/NOTES.txt | 6 +----
.../kafka}/templates/installPkgKafkaJob.yaml | 3 ---
.../charts/kafka}/templates/pkgKafkaProvider.yaml | 4 ----
helm/providers/charts/kafka/values.yaml | 13 +++++++++++
helm/{ => providers}/templates/NOTES.txt | 6 +----
helm/providers/values.yaml | 16 +++++++++++++
tools/travis/build-helm.sh | 4 ++--
35 files changed, 61 insertions(+), 35 deletions(-)
diff --git a/README.md b/README.md
index b93308b..1e83747 100644
--- a/README.md
+++ b/README.md
@@ -28,6 +28,7 @@ This repository can be used to deploy OpenWhisk to a Kubernetes cluster.
* [Setting up Kubernetes and Helm](#setting-up-kubernetes-and-helm)
* [Deploying OpenWhisk](#deploying-openwhisk)
+* [Deploying OpenWhisk Providers](#deploying-openwhisk-providers)
* [Cleanup](#cleanup)
* [Issues](#issues)
@@ -94,7 +95,7 @@ Kubernetes worker nodes to be used to execute user actions.
create a `mycluster.yaml` that specifies key facts about your
Kubernetes cluster and the OpenWhisk configuration you wish to
deploy.
-3. [Deploy with Helm](#deploy-with-helm). You will use Helm and
+3. [Deploy OpenWhisk with Helm](#deploy-with-helm). You will use Helm and
`mycluster.yaml` to deploy OpenWhisk to your Kubernetes cluster.
4. [Configure the `wsk` CLI](#configure-the-wsk-cli). You need to
tell the `wsk` CLI how to connect to your OpenWhisk deployment.
@@ -150,7 +151,7 @@ discussion of the primary options.
Deployment can be done by using the following single command:
```shell
-helm install ./helm --namespace=openwhisk --name=owdev -f mycluster.yaml
+helm install ./helm/openwhisk --namespace=openwhisk --name=owdev -f mycluster.yaml
```
For simplicity, in this README, we have used `owdev` as the release name.
You can use a different name, or not specify a name at all and let
@@ -188,6 +189,27 @@ certificate` errors from the `wsk` CLI.
If your deployment is not working, check our
[troubleshooting guide](./docs/troubleshooting.md) for ideas.
+
+# Deploying OpenWhisk Providers
+
+Now that you have a working OpenWhisk installation, you may optionally
+deploy additional packages and event providers. A standard set of
+event providers is available as a collection of Helm charts in the
+`helm/providers` directory. You may install all the providers in a
+single command with
+```shell
+helm install ./helm/providers --namespace=openwhisk --name=owdev-providers
+```
+or you may selectively install the charts for individual providers
+with commands like
+```shell
+helm install ./helm/providers/charts/kafka --namespace=openwhisk --name=owdev-kafka-provider
+```
+
+Please see the `values.yaml` file and/or README.md in the individual
+charts for instructions on enabling any optional customizations of the
+providers.
+
# Cleanup
Use the following command to remove all the deployed OpenWhisk components:
diff --git a/helm/Chart.yaml b/helm/openwhisk/Chart.yaml
similarity index 100%
copy from helm/Chart.yaml
copy to helm/openwhisk/Chart.yaml
diff --git a/helm/runtimes-minimal-travis.json b/helm/openwhisk/runtimes-minimal-travis.json
similarity index 100%
rename from helm/runtimes-minimal-travis.json
rename to helm/openwhisk/runtimes-minimal-travis.json
diff --git a/helm/runtimes.json b/helm/openwhisk/runtimes.json
similarity index 100%
rename from helm/runtimes.json
rename to helm/openwhisk/runtimes.json
diff --git a/helm/templates/NOTES.txt b/helm/openwhisk/templates/NOTES.txt
similarity index 100%
copy from helm/templates/NOTES.txt
copy to helm/openwhisk/templates/NOTES.txt
diff --git a/helm/templates/_affinity.tpl b/helm/openwhisk/templates/_affinity.tpl
similarity index 100%
rename from helm/templates/_affinity.tpl
rename to helm/openwhisk/templates/_affinity.tpl
diff --git a/helm/templates/_helpers.tpl b/helm/openwhisk/templates/_helpers.tpl
similarity index 100%
rename from helm/templates/_helpers.tpl
rename to helm/openwhisk/templates/_helpers.tpl
diff --git a/helm/templates/_invokerHelpers.tpl b/helm/openwhisk/templates/_invokerHelpers.tpl
similarity index 100%
rename from helm/templates/_invokerHelpers.tpl
rename to helm/openwhisk/templates/_invokerHelpers.tpl
diff --git a/helm/templates/_readiness.tpl b/helm/openwhisk/templates/_readiness.tpl
similarity index 100%
rename from helm/templates/_readiness.tpl
rename to helm/openwhisk/templates/_readiness.tpl
diff --git a/helm/templates/apigateway.yaml b/helm/openwhisk/templates/apigateway.yaml
similarity index 100%
rename from helm/templates/apigateway.yaml
rename to helm/openwhisk/templates/apigateway.yaml
diff --git a/helm/templates/authSecrets.yaml b/helm/openwhisk/templates/authSecrets.yaml
similarity index 100%
rename from helm/templates/authSecrets.yaml
rename to helm/openwhisk/templates/authSecrets.yaml
diff --git a/helm/templates/clusterConfigMaps.yaml b/helm/openwhisk/templates/clusterConfigMaps.yaml
similarity index 100%
rename from helm/templates/clusterConfigMaps.yaml
rename to helm/openwhisk/templates/clusterConfigMaps.yaml
diff --git a/helm/templates/controller.yaml b/helm/openwhisk/templates/controller.yaml
similarity index 100%
rename from helm/templates/controller.yaml
rename to helm/openwhisk/templates/controller.yaml
diff --git a/helm/templates/couchdb.yaml b/helm/openwhisk/templates/couchdb.yaml
similarity index 100%
rename from helm/templates/couchdb.yaml
rename to helm/openwhisk/templates/couchdb.yaml
diff --git a/helm/templates/ingress.yaml b/helm/openwhisk/templates/ingress.yaml
similarity index 100%
rename from helm/templates/ingress.yaml
rename to helm/openwhisk/templates/ingress.yaml
diff --git a/helm/templates/installCatalogJob.yaml b/helm/openwhisk/templates/installCatalogJob.yaml
similarity index 100%
rename from helm/templates/installCatalogJob.yaml
rename to helm/openwhisk/templates/installCatalogJob.yaml
diff --git a/helm/templates/installRouteMgmtJob.yaml b/helm/openwhisk/templates/installRouteMgmtJob.yaml
similarity index 100%
rename from helm/templates/installRouteMgmtJob.yaml
rename to helm/openwhisk/templates/installRouteMgmtJob.yaml
diff --git a/helm/templates/invoker.yaml b/helm/openwhisk/templates/invoker.yaml
similarity index 100%
rename from helm/templates/invoker.yaml
rename to helm/openwhisk/templates/invoker.yaml
diff --git a/helm/templates/kafka.yaml b/helm/openwhisk/templates/kafka.yaml
similarity index 100%
rename from helm/templates/kafka.yaml
rename to helm/openwhisk/templates/kafka.yaml
diff --git a/helm/templates/nginx.yaml b/helm/openwhisk/templates/nginx.yaml
similarity index 100%
rename from helm/templates/nginx.yaml
rename to helm/openwhisk/templates/nginx.yaml
diff --git a/helm/templates/nginxConfigMap.yaml b/helm/openwhisk/templates/nginxConfigMap.yaml
similarity index 100%
rename from helm/templates/nginxConfigMap.yaml
rename to helm/openwhisk/templates/nginxConfigMap.yaml
diff --git a/helm/templates/nginxSecret.yaml b/helm/openwhisk/templates/nginxSecret.yaml
similarity index 100%
rename from helm/templates/nginxSecret.yaml
rename to helm/openwhisk/templates/nginxSecret.yaml
diff --git a/helm/templates/redis.yaml b/helm/openwhisk/templates/redis.yaml
similarity index 100%
rename from helm/templates/redis.yaml
rename to helm/openwhisk/templates/redis.yaml
diff --git a/helm/templates/rolebindings.yaml b/helm/openwhisk/templates/rolebindings.yaml
similarity index 100%
rename from helm/templates/rolebindings.yaml
rename to helm/openwhisk/templates/rolebindings.yaml
diff --git a/helm/templates/zookeeper.yaml b/helm/openwhisk/templates/zookeeper.yaml
similarity index 100%
rename from helm/templates/zookeeper.yaml
rename to helm/openwhisk/templates/zookeeper.yaml
diff --git a/helm/values.yaml b/helm/openwhisk/values.yaml
similarity index 95%
rename from helm/values.yaml
rename to helm/openwhisk/values.yaml
index 9b86d11..5a71a4f 100644
--- a/helm/values.yaml
+++ b/helm/openwhisk/values.yaml
@@ -211,13 +211,3 @@ affinity:
invokerNodeLabel: invoker
providerNodeLabel: provider
-# Kafka provider configurations
-kafkaprovider:
- name: "kafkaprovider"
- image: "openwhisk/kafkaprovider:latest"
- # NOTE: setting replicaCount > 1 has not been tested and may not work
- replicaCount: 1
- imagePullPolicy: "IfNotPresent"
- restartPolicy: "Always"
- apiPort: 8080
- dbPrefix: "kp"
diff --git a/helm/Chart.yaml b/helm/providers/Chart.yaml
similarity index 73%
copy from helm/Chart.yaml
copy to helm/providers/Chart.yaml
index 5923669..f06a2e3 100644
--- a/helm/Chart.yaml
+++ b/helm/providers/Chart.yaml
@@ -2,8 +2,8 @@
# license agreements; and to You under the Apache License, Version 2.0.
apiVersion: v1
-description: A Helm chart to deploy Apache OpenWhisk for Kubernetes
-name: Apache OpenWhisk
+description: A Helm chart to deploy Apache OpenWhisk providers on Kubernetes
+name: Apache OpenWhisk Providers
version: 0.1.0
keywords:
- Apache OpenWhisk
diff --git a/helm/Chart.yaml b/helm/providers/charts/kafka/Chart.yaml
similarity index 70%
rename from helm/Chart.yaml
rename to helm/providers/charts/kafka/Chart.yaml
index 5923669..23a382e 100644
--- a/helm/Chart.yaml
+++ b/helm/providers/charts/kafka/Chart.yaml
@@ -2,8 +2,8 @@
# license agreements; and to You under the Apache License, Version 2.0.
apiVersion: v1
-description: A Helm chart to deploy Apache OpenWhisk for Kubernetes
-name: Apache OpenWhisk
+description: A Helm chart to deploy the Apache OpenWhisk Kafka provider on Kubernetes
+name: Apache OpenWhisk Kafka Provider
version: 0.1.0
keywords:
- Apache OpenWhisk
diff --git a/helm/templates/NOTES.txt b/helm/providers/charts/kafka/templates/NOTES.txt
similarity index 67%
copy from helm/templates/NOTES.txt
copy to helm/providers/charts/kafka/templates/NOTES.txt
index 95007e4..b01e731 100644
--- a/helm/templates/NOTES.txt
+++ b/helm/providers/charts/kafka/templates/NOTES.txt
@@ -1,15 +1,11 @@
{{/* Licensed to the Apache Software Foundation (ASF) under one or more contributor */}}
{{/* license agreements; and to You under the Apache License, Version 2.0. */}}
-Apache OpenWhisk
+Apache OpenWhisk Kafka Provider
Copyright 2016-2018 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
-To configure your wsk cli to connect to it, set the apihost property
-using the command below:
- $ wsk property set --apihost {{ .Values.whisk.ingress.api_host_name -}}:{{- .Values.whisk.ingress.api_host_port }}
-
Your release is named {{ .Release.Name }}.
To learn more about the release, try:
diff --git a/helm/templates/installPkgKafkaJob.yaml b/helm/providers/charts/kafka/templates/installPkgKafkaJob.yaml
similarity index 90%
rename from helm/templates/installPkgKafkaJob.yaml
rename to helm/providers/charts/kafka/templates/installPkgKafkaJob.yaml
index 8aac792..5a742b9 100644
--- a/helm/templates/installPkgKafkaJob.yaml
+++ b/helm/providers/charts/kafka/templates/installPkgKafkaJob.yaml
@@ -13,9 +13,6 @@ spec:
name: install-package-kafka
spec:
restartPolicy: Never
- initContainers:
- # Wait for a controller to be up so we can perfom our CRUD actions with the CLI
-{{ include "readiness.waitForController" . | indent 6 }}
containers:
- name: kafkapkginstaller
image: openwhisk/kube-kafkapkginstaller
diff --git a/helm/templates/pkgKafkaProvider.yaml b/helm/providers/charts/kafka/templates/pkgKafkaProvider.yaml
similarity index 91%
rename from helm/templates/pkgKafkaProvider.yaml
rename to helm/providers/charts/kafka/templates/pkgKafkaProvider.yaml
index 658160a..3717877 100644
--- a/helm/templates/pkgKafkaProvider.yaml
+++ b/helm/providers/charts/kafka/templates/pkgKafkaProvider.yaml
@@ -16,10 +16,6 @@ spec:
name: {{ .Values.kafkaprovider.name | quote }}
spec:
restartPolicy: {{ .Values.kafkaprovider.restartPolicy }}
- initContainers:
- # The controller must wait for kafka and couchdb to be ready before it starts
-{{ include "readiness.waitForCouchDB" . | indent 6 }}
-
containers:
- name: {{ .Values.kafkaprovider.name | quote }}
imagePullPolicy: {{ .Values.kafkaprovider.imagePullPolicy | quote }}
diff --git a/helm/providers/charts/kafka/values.yaml b/helm/providers/charts/kafka/values.yaml
new file mode 100644
index 0000000..9b0badc
--- /dev/null
+++ b/helm/providers/charts/kafka/values.yaml
@@ -0,0 +1,13 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+
+# Kafka provider configurations
+kafkaprovider:
+ name: "kafkaprovider"
+ image: "openwhisk/kafkaprovider:latest"
+ # NOTE: setting replicaCount > 1 has not been tested and may not work
+ replicaCount: 1
+ imagePullPolicy: "IfNotPresent"
+ restartPolicy: "Always"
+ apiPort: 8080
+ dbPrefix: "kp"
diff --git a/helm/templates/NOTES.txt b/helm/providers/templates/NOTES.txt
similarity index 67%
rename from helm/templates/NOTES.txt
rename to helm/providers/templates/NOTES.txt
index 95007e4..faf65e0 100644
--- a/helm/templates/NOTES.txt
+++ b/helm/providers/templates/NOTES.txt
@@ -1,15 +1,11 @@
{{/* Licensed to the Apache Software Foundation (ASF) under one or more contributor */}}
{{/* license agreements; and to You under the Apache License, Version 2.0. */}}
-Apache OpenWhisk
+Apache OpenWhisk Providers
Copyright 2016-2018 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
-To configure your wsk cli to connect to it, set the apihost property
-using the command below:
- $ wsk property set --apihost {{ .Values.whisk.ingress.api_host_name -}}:{{- .Values.whisk.ingress.api_host_port }}
-
Your release is named {{ .Release.Name }}.
To learn more about the release, try:
diff --git a/helm/providers/values.yaml b/helm/providers/values.yaml
new file mode 100644
index 0000000..44d46e4
--- /dev/null
+++ b/helm/providers/values.yaml
@@ -0,0 +1,16 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more contributor
+# license agreements; and to You under the Apache License, Version 2.0.
+
+# Used to define pod affinity and anti-affinity for the Kubernetes scheduler.
+# If affinity.enabled is true, then all of the deployments for the OpenWhisk
+# microservices will use node and pod affinity directives to inform the
+# scheduler how to best distribute the pods on the available nodes in the cluster.
+# NOTE: These labels must match the ones defined in the core openwhisk chart.
+global:
+ affinity:
+ enabled: true
+ coreNodeLabel: core
+ edgeNodeLabel: edge
+ invokerNodeLabel: invoker
+ providerNodeLabel: provider
+
diff --git a/tools/travis/build-helm.sh b/tools/travis/build-helm.sh
index 35e39dc..736b3bb 100755
--- a/tools/travis/build-helm.sh
+++ b/tools/travis/build-helm.sh
@@ -138,7 +138,7 @@ if [ "$WSK_HOST" = "minikube" ]; then
fi
# Deploy OpenWhisk using Helm
-cd $ROOTDIR/helm
+cd $ROOTDIR
cat > mycluster.yaml <<EOF
whisk:
@@ -162,7 +162,7 @@ EOF
echo "Contents of mycluster.yaml are:"
cat mycluster.yaml
-helm install . --namespace=openwhisk --name=ow4travis -f mycluster.yaml
+helm install helm/openwhisk --namespace=openwhisk --name=ow4travis -f mycluster.yaml
# Wait for controller to be up
statefulsetHealthCheck "controller"