You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by wi...@apache.org on 2020/01/06 10:34:05 UTC

[couchdb-helm] branch master updated (b46f424 -> f99ec17)

This is an automated email from the ASF dual-hosted git repository.

willholley pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git.


    from b46f424  Require a server instance UUID (#15)
     new 486142d  Support configuring liveness and readiness probes
     new bbf7201  Bump chart version
     new f99ec17  Merge pull request #17 from aikoven/support-configuring-probes

The 26 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 couchdb/Chart.yaml                 |   2 +-
 couchdb/README.md                  |  94 +++++++++++++++++++++----------------
 couchdb/templates/statefulset.yaml |  14 ++++++
 couchdb/values.yaml                |  17 +++++++
 docs/couchdb-3.1.0.tgz             | Bin 0 -> 8866 bytes
 docs/index.yaml                    |  35 +++++++++++---
 6 files changed, 114 insertions(+), 48 deletions(-)
 create mode 100644 docs/couchdb-3.1.0.tgz


[couchdb-helm] 21/26: Bugfix: fixes wrong Values iteration in ingress host

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit ad5417da6b93f809f080a13ceab176fa18da5629
Author: Arjun Dhawan <ar...@tomtom.com>
AuthorDate: Fri Nov 1 11:52:38 2019 +0100

    Bugfix: fixes wrong Values iteration in ingress host
    
    * Fixes #9
---
 couchdb/Chart.yaml             |   2 +-
 couchdb/templates/ingress.yaml |   3 ++-
 docs/couchdb-2.4.1.tgz         | Bin 0 -> 7907 bytes
 docs/index.yaml                |  31 +++++++++++++++++++++++++++----
 4 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/couchdb/Chart.yaml b/couchdb/Chart.yaml
index 7cfee20..deb6de7 100644
--- a/couchdb/Chart.yaml
+++ b/couchdb/Chart.yaml
@@ -1,6 +1,6 @@
 apiVersion: v1
 name: couchdb
-version: 2.4.0
+version: 2.4.1
 appVersion: 2.3.1
 description: A database featuring seamless multi-master sync, that scales from
   big data to mobile, with an intuitive HTTP/JSON API and designed for
diff --git a/couchdb/templates/ingress.yaml b/couchdb/templates/ingress.yaml
index 5131a6a..c547847 100644
--- a/couchdb/templates/ingress.yaml
+++ b/couchdb/templates/ingress.yaml
@@ -1,6 +1,7 @@
 {{- if .Values.ingress.enabled -}}
 {{- $serviceName := include "couchdb.fullname" . -}}
 {{- $servicePort := .Values.service.externalPort -}}
+{{- $path := .Values.ingress.path | quote -}}
 apiVersion: networking.k8s.io/v1beta1
 kind: Ingress
 metadata:
@@ -20,7 +21,7 @@ spec:
     - host: {{ $host }}
       http:
         paths:
-          - path: {{ .Values.ingress.path | quote }}
+          - path: {{ $path }}
             backend:
               serviceName: {{ $serviceName }}
               servicePort: {{ $servicePort }}
diff --git a/docs/couchdb-2.4.1.tgz b/docs/couchdb-2.4.1.tgz
new file mode 100644
index 0000000..ec96263
Binary files /dev/null and b/docs/couchdb-2.4.1.tgz differ
diff --git a/docs/index.yaml b/docs/index.yaml
index 7dda827..1e3801a 100644
--- a/docs/index.yaml
+++ b/docs/index.yaml
@@ -3,7 +3,30 @@ entries:
   couchdb:
   - apiVersion: v1
     appVersion: 2.3.1
-    created: 2019-10-31T09:24:23.82691Z
+    created: "2019-11-01T11:51:15.339935463+01:00"
+    description: A database featuring seamless multi-master sync, that scales from
+      big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
+    digest: db0815c2766f76049b58d0954b66e0b70bf673a7d11c1d3cd9e07c775c646c12
+    home: https://couchdb.apache.org/
+    icon: http://couchdb.apache.org/CouchDB-visual-identity/logo/CouchDB-couch-symbol.svg
+    keywords:
+    - couchdb
+    - database
+    - nosql
+    maintainers:
+    - email: kocolosk@apache.org
+      name: kocolosk
+    - email: willholley@apache.org
+      name: willholley
+    name: couchdb
+    sources:
+    - https://github.com/apache/couchdb-docker
+    urls:
+    - https://apache.github.io/couchdb-helm/couchdb-2.4.1.tgz
+    version: 2.4.1
+  - apiVersion: v1
+    appVersion: 2.3.1
+    created: "2019-11-01T11:51:15.339429507+01:00"
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
     digest: daddf6cc7fe8bb63d6fa8679565d4496d92c23d9ff85b19521fca74c6412bc11
@@ -26,7 +49,7 @@ entries:
     version: 2.4.0
   - apiVersion: v1
     appVersion: 2.3.1
-    created: 2019-10-31T09:24:23.825167Z
+    created: "2019-11-01T11:51:15.333646851+01:00"
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
     digest: 0eba7c20ec47bc8556b3cb3b5137b578d46b37397493087d61b8199066f84782
@@ -49,7 +72,7 @@ entries:
     version: 2.3.0
   - apiVersion: v1
     appVersion: 2.3.1
-    created: 2019-10-31T09:24:23.82274Z
+    created: "2019-11-01T11:51:15.330535744+01:00"
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
     digest: f68e6187c2b65a02fdde9d49ec38e76a68c3d82421e5ea9e599bac87f4193c6a
@@ -70,4 +93,4 @@ entries:
     urls:
     - https://apache.github.io/couchdb-helm/couchdb-2.2.0.tgz
     version: 2.2.0
-generated: 2019-10-31T09:24:23.77682Z
+generated: "2019-11-01T11:51:15.321186109+01:00"


[couchdb-helm] 11/26: Merge pull request #6 from arjun-1/configurable_path

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit 2f1f27ab1b08d02df2cb6d255bc20c960b5fac4a
Merge: e0d2ab9 40832bb
Author: Will Holley <wi...@apache.org>
AuthorDate: Thu Oct 31 09:15:27 2019 +0000

    Merge pull request #6 from arjun-1/configurable_path
    
    Add configurable ingress path

 couchdb/Chart.yaml             |   2 +-
 couchdb/README.md              |   1 +
 couchdb/templates/ingress.yaml |   2 +-
 couchdb/values.yaml            |   1 +
 docs/couchdb-2.3.0.tgz         | Bin 0 -> 7376 bytes
 docs/index.yaml                |  27 +++++++++++++++++++++++++--
 6 files changed, 29 insertions(+), 4 deletions(-)


[couchdb-helm] 07/26: Address review comments

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit 3e2f02e83db6c58445eced4292daf3856b135019
Author: Will Holley <wi...@gmail.com>
AuthorDate: Mon Oct 28 09:12:45 2019 +0000

    Address review comments
---
 README.md              |   3 +--
 couchdb/Chart.yaml     |   2 ++
 docs/couchdb-2.2.0.tgz | Bin 7337 -> 7354 bytes
 docs/index.yaml        |   8 +++++---
 test/e2e-kind.sh       |   7 ++-----
 5 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/README.md b/README.md
index a70af73..3bfca11 100644
--- a/README.md
+++ b/README.md
@@ -9,8 +9,7 @@ This repository contains assets related to the CouchDB Helm chart.
 
 ## Testing
 
-`make test` will run an integration test using [Kind][5]. This stands up a Kubernetes cluster locally and ensures the chart will
-deploy using the default options and Helm.
+`make test` will run an integration test using [Kind][5]. This stands up a Kubernetes cluster locally and ensures the chart will deploy using the default options and Helm.
 
 ## Releasing
 
diff --git a/couchdb/Chart.yaml b/couchdb/Chart.yaml
index 1d33948..a4519e4 100644
--- a/couchdb/Chart.yaml
+++ b/couchdb/Chart.yaml
@@ -15,4 +15,6 @@ sources:
 maintainers:
   - name: kocolosk
     email: kocolosk@apache.org
+  - name: willholley
+    email: willholley@apache.org
 icon: http://couchdb.apache.org/CouchDB-visual-identity/logo/CouchDB-couch-symbol.svg
diff --git a/docs/couchdb-2.2.0.tgz b/docs/couchdb-2.2.0.tgz
index f58cc55..5bf2044 100644
Binary files a/docs/couchdb-2.2.0.tgz and b/docs/couchdb-2.2.0.tgz differ
diff --git a/docs/index.yaml b/docs/index.yaml
index 6be4b54..28b731f 100644
--- a/docs/index.yaml
+++ b/docs/index.yaml
@@ -3,10 +3,10 @@ entries:
   couchdb:
   - apiVersion: v1
     appVersion: 2.3.1
-    created: 2019-10-22T14:09:08.422421+01:00
+    created: 2019-10-28T09:24:10.747431Z
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
-    digest: d4ec1447c437f26418db46de4b7fe7be928f7341b62915ef263350578c95cf12
+    digest: f68e6187c2b65a02fdde9d49ec38e76a68c3d82421e5ea9e599bac87f4193c6a
     home: https://couchdb.apache.org/
     icon: http://couchdb.apache.org/CouchDB-visual-identity/logo/CouchDB-couch-symbol.svg
     keywords:
@@ -16,10 +16,12 @@ entries:
     maintainers:
     - email: kocolosk@apache.org
       name: kocolosk
+    - email: willholley@apache.org
+      name: willholley
     name: couchdb
     sources:
     - https://github.com/apache/couchdb-docker
     urls:
     - https://apache.github.io/couchdb-helm/couchdb-2.2.0.tgz
     version: 2.2.0
-generated: 2019-10-22T14:09:08.421343+01:00
+generated: 2019-10-28T09:24:10.746176Z
diff --git a/test/e2e-kind.sh b/test/e2e-kind.sh
index 59c1dbe..4301343 100755
--- a/test/e2e-kind.sh
+++ b/test/e2e-kind.sh
@@ -35,11 +35,8 @@ docker_exec() {
 
 create_kind_cluster() {
     if ! [ -x "$(command -v kind)" ]; then
-        echo 'Installing kind...'
-
-        curl -sSLo kind "https://github.com/kubernetes-sigs/kind/releases/download/$KIND_VERSION/kind-linux-amd64"
-        chmod +x kind
-        sudo mv kind /usr/local/bin/kind
+        echo 'kind not found. See https://kind.sigs.k8s.io/ for installation instructions.'
+        exit
     fi
 
     kind delete cluster --name "$CLUSTER_NAME" || true


[couchdb-helm] 10/26: Add configurable path

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit 40832bb5b83daed36e59616a3cbebaf89edfecf6
Author: Arjun Dhawan <ar...@tomtom.com>
AuthorDate: Wed Oct 30 10:57:52 2019 +0100

    Add configurable path
    
    * Makes the path in the ingress configurable, defaulting to '/'. Fixes #4
---
 couchdb/Chart.yaml             |   2 +-
 couchdb/README.md              |   1 +
 couchdb/templates/ingress.yaml |   2 +-
 couchdb/values.yaml            |   1 +
 docs/couchdb-2.3.0.tgz         | Bin 0 -> 7376 bytes
 docs/index.yaml                |  27 +++++++++++++++++++++++++--
 6 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/couchdb/Chart.yaml b/couchdb/Chart.yaml
index a4519e4..d976350 100644
--- a/couchdb/Chart.yaml
+++ b/couchdb/Chart.yaml
@@ -1,6 +1,6 @@
 apiVersion: v1
 name: couchdb
-version: 2.2.0
+version: 2.3.0
 appVersion: 2.3.1
 description: A database featuring seamless multi-master sync, that scales from
   big data to mobile, with an intuitive HTTP/JSON API and designed for
diff --git a/couchdb/README.md b/couchdb/README.md
index a0bfc15..1f4bc60 100644
--- a/couchdb/README.md
+++ b/couchdb/README.md
@@ -125,6 +125,7 @@ A variety of other parameters are also configurable. See the comments in the
 | `initImage.pullPolicy`          | Always                                 |
 | `ingress.enabled`               | false                                  |
 | `ingress.hosts`                 | chart-example.local                    |
+| `ingress.path`                  | /                                      |
 | `ingress.annotations`           |                                        |
 | `ingress.tls`                   |                                        |
 | `persistentVolume.accessModes`  | ReadWriteOnce                          |
diff --git a/couchdb/templates/ingress.yaml b/couchdb/templates/ingress.yaml
index e73d7a5..3eefddd 100644
--- a/couchdb/templates/ingress.yaml
+++ b/couchdb/templates/ingress.yaml
@@ -20,7 +20,7 @@ spec:
     - host: {{ $host }}
       http:
         paths:
-          - path: /
+          - path: {{ .Values.ingress.path | quote }}
             backend:
               serviceName: {{ $serviceName }}
               servicePort: {{ $servicePort }}
diff --git a/couchdb/values.yaml b/couchdb/values.yaml
index e3461dd..8cc24f8 100644
--- a/couchdb/values.yaml
+++ b/couchdb/values.yaml
@@ -98,6 +98,7 @@ ingress:
   enabled: false
   hosts:
     - chart-example.local
+  path: /
   annotations:
     # kubernetes.io/ingress.class: nginx
     # kubernetes.io/tls-acme: "true"
diff --git a/docs/couchdb-2.3.0.tgz b/docs/couchdb-2.3.0.tgz
new file mode 100644
index 0000000..2f657d8
Binary files /dev/null and b/docs/couchdb-2.3.0.tgz differ
diff --git a/docs/index.yaml b/docs/index.yaml
index 28b731f..944494b 100644
--- a/docs/index.yaml
+++ b/docs/index.yaml
@@ -3,7 +3,30 @@ entries:
   couchdb:
   - apiVersion: v1
     appVersion: 2.3.1
-    created: 2019-10-28T09:24:10.747431Z
+    created: "2019-10-30T16:35:32.516156223+01:00"
+    description: A database featuring seamless multi-master sync, that scales from
+      big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
+    digest: 0eba7c20ec47bc8556b3cb3b5137b578d46b37397493087d61b8199066f84782
+    home: https://couchdb.apache.org/
+    icon: http://couchdb.apache.org/CouchDB-visual-identity/logo/CouchDB-couch-symbol.svg
+    keywords:
+    - couchdb
+    - database
+    - nosql
+    maintainers:
+    - email: kocolosk@apache.org
+      name: kocolosk
+    - email: willholley@apache.org
+      name: willholley
+    name: couchdb
+    sources:
+    - https://github.com/apache/couchdb-docker
+    urls:
+    - https://apache.github.io/couchdb-helm/couchdb-2.3.0.tgz
+    version: 2.3.0
+  - apiVersion: v1
+    appVersion: 2.3.1
+    created: "2019-10-30T16:35:32.515759808+01:00"
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
     digest: f68e6187c2b65a02fdde9d49ec38e76a68c3d82421e5ea9e599bac87f4193c6a
@@ -24,4 +47,4 @@ entries:
     urls:
     - https://apache.github.io/couchdb-helm/couchdb-2.2.0.tgz
     version: 2.2.0
-generated: 2019-10-28T09:24:10.746176Z
+generated: "2019-10-30T16:35:32.515247385+01:00"


[couchdb-helm] 04/26: Add GitHub templates

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit d8c73bad8575c34bed9aa6cbec39b47c0a0dffac
Author: Will Holley <wi...@gmail.com>
AuthorDate: Thu Oct 17 16:08:36 2019 +0100

    Add GitHub templates
---
 .github/ISSUE_TEMPLATE/bug_report.md      | 33 +++++++++++++++++++++++++++++
 .github/ISSUE_TEMPLATE/feature_request.md | 27 ++++++++++++++++++++++++
 .github/PULL_REQUEST_TEMPLATE.md          | 35 +++++++++++++++++++++++++++++++
 3 files changed, 95 insertions(+)

diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 0000000..b6d09ca
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,33 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+<!-- Thanks for filing an issue! Before hitting the button, please answer these questions. It's helpful to search the existing GitHub issues first. It's likely that another user has already reported the issue you're facing, or it's a known issue that we're already aware of
+
+Fill in as much of the template below as you can.  If you leave out information, we can't help you as well.
+
+Be ready for followup questions, and please respond in a timely manner. If we can't reproduce a bug or think a feature already exists, we might close your issue.  If we're wrong, PLEASE feel free to reopen it and explain why.
+-->
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**Version of Helm and Kubernetes**:
+
+
+**What happened**:
+
+
+**What you expected to happen**:
+
+
+**How to reproduce it** (as minimally and precisely as possible):
+
+
+**Anything else we need to know**:
+
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 0000000..b30df0d
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,27 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+<!-- Thanks for filing an issue! Before hitting the button, please answer these questions. It's helpful to search the existing GitHub issues first. It's likely that another user has already reported the issue you're facing, or it's a known issue that we're already aware of.
+
+Describe *in detail* the feature/behavior/change you'd like to see.
+
+Be ready for followup questions, and please respond in a timely manner. If we can't reproduce a bug or think a feature already exists, we might close your issue.  If we're wrong, PLEASE feel free to reopen it and explain why.
+-->
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..fd7bedc
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,35 @@
+<!--
+Thank you for contributing to couchdb-helm. Before you submit this PR we'd like to
+make sure you are aware of the chart technical requirements and best practices:
+
+* https://github.com/helm/charts/blob/master/CONTRIBUTING.md#technical-requirements
+* https://github.com/helm/helm/tree/master/docs/chart_best_practices
+
+For a quick overview across what we will look at reviewing your PR, please read
+our review guidelines:
+
+* https://github.com/helm/charts/blob/master/REVIEW_GUIDELINES.md
+
+Following our best practices right from the start will accelerate the review process and
+help get your PR merged quicker.
+
+When updates to your PR are requested, please add new commits and do not squash the
+history. This will make it easier to identify new changes. The PR will be squashed
+anyways when it is merged. Thanks.
+
+Please make sure you test your changes before you push them.
+-->
+
+#### What this PR does / why we need it:
+
+#### Which issue this PR fixes
+*(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*
+  - fixes #
+
+#### Special notes for your reviewer:
+
+#### Checklist
+[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.
+- [ ] Chart Version bumped
+- [ ] e2e tests pass
+- [ ] Variables are documented in the README.md


[couchdb-helm] 22/26: Merge pull request #8 from arjun-1/bugfix-ingress

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit f2d5661cfd4d308781e5a0c1537d10c161cd474f
Merge: c2c211c ad5417d
Author: Will Holley <wi...@apache.org>
AuthorDate: Fri Nov 1 11:59:35 2019 +0000

    Merge pull request #8 from arjun-1/bugfix-ingress
    
    Bugfix: fixes wrong Values iteration in ingress host

 couchdb/Chart.yaml             |   2 +-
 couchdb/templates/ingress.yaml |   3 ++-
 docs/couchdb-2.4.1.tgz         | Bin 0 -> 7907 bytes
 docs/index.yaml                |  31 +++++++++++++++++++++++++++----
 4 files changed, 30 insertions(+), 6 deletions(-)


[couchdb-helm] 24/26: Support configuring liveness and readiness probes

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit 486142d417a40bde1ce995b9abaa0fd437db5c23
Author: aikoven <da...@gmail.com>
AuthorDate: Wed Dec 25 13:40:18 2019 +0700

    Support configuring liveness and readiness probes
---
 couchdb/README.md                  | 94 +++++++++++++++++++++-----------------
 couchdb/templates/statefulset.yaml | 14 ++++++
 couchdb/values.yaml                | 17 +++++++
 3 files changed, 84 insertions(+), 41 deletions(-)

diff --git a/couchdb/README.md b/couchdb/README.md
index ec7233c..eba7aff 100644
--- a/couchdb/README.md
+++ b/couchdb/README.md
@@ -35,14 +35,14 @@ Add the CouchDB Helm repository:
 $ helm repo add couchdb https://apache.github.io/couchdb-helm
 ```
 
-Afterwards install the chart replacing the UUID 
+Afterwards install the chart replacing the UUID
 `decafbaddecafbaddecafbaddecafbad` with a custom one:
 
 ```bash
 $ helm install \
   --name my-release \
   --set couchdbConfig.couchdb.uuid=decafbaddecafbaddecafbaddecafbad \
-  couchdb/couchdb 
+  couchdb/couchdb
 ```
 
 This will create a Secret containing the admin credentials for the cluster.
@@ -93,8 +93,8 @@ incompatible breaking change needing manual actions.
 
 ### Upgrade to 3.0.0
 
-Since version 3.0.0 setting the CouchDB server instance UUID is mandatory. 
-Therefore you need to generate a UUID and supply it as a value during the 
+Since version 3.0.0 setting the CouchDB server instance UUID is mandatory.
+Therefore you need to generate a UUID and supply it as a value during the
 upgrade as follows:
 
 ```bash
@@ -131,8 +131,8 @@ CouchDB chart and their default values:
 | `persistentVolume.size`         | If enabled, the size of the persistent volume to attach                          | 10Gi
 | `enableSearch`                  | Adds a sidecar for Lucene-powered text search         | false                                  |
 
-You can set the values of the `couchdbConfig` map according to the 
-[official configuration][4]. The following shows the map's default values and 
+You can set the values of the `couchdbConfig` map according to the
+[official configuration][4]. The following shows the map's default values and
 required options to set:
 
 |           Parameter             |             Description                                            |                Default                 |
@@ -144,41 +144,53 @@ required options to set:
 A variety of other parameters are also configurable. See the comments in the
 `values.yaml` file for further details:
 
-|           Parameter               |                Default                 |
-|-----------------------------------|----------------------------------------|
-| `adminUsername`                   | admin                                  |
-| `adminPassword`                   | auto-generated                         |
-| `cookieAuthSecret`                | auto-generated                         |
-| `image.repository`                | couchdb                                |
-| `image.tag`                       | 2.3.1                                  |
-| `image.pullPolicy`                | IfNotPresent                           |
-| `searchImage.repository`          | kocolosk/couchdb-search                |
-| `searchImage.tag`                 | 0.1.0                                  |
-| `searchImage.pullPolicy`          | IfNotPresent                           |
-| `initImage.repository`            | busybox                                |
-| `initImage.tag`                   | latest                                 |
-| `initImage.pullPolicy`            | Always                                 |
-| `ingress.enabled`                 | false                                  |
-| `ingress.hosts`                   | chart-example.local                    |
-| `ingress.annotations`             |                                        |
-| `ingress.path`                    | /                                      |
-| `ingress.tls`                     |                                        |
-| `persistentVolume.accessModes`    | ReadWriteOnce                          |
-| `persistentVolume.storageClass`   | Default for the Kube cluster           |
-| `podManagementPolicy`             | Parallel                               |
-| `affinity`                        |                                        |
-| `annotations`                     |                                        |
-| `tolerations`                     |                                        |
-| `resources`                       |                                        |
-| `service.annotations`             |                                        |
-| `service.enabled`                 | true                                   |
-| `service.type`                    | ClusterIP                              |
-| `service.externalPort`            | 5984                                   |
-| `dns.clusterDomainSuffix`         | cluster.local                          |
-| `networkPolicy.enabled`           | true                                   |
-| `serviceAccount.enabled`          | true                                   |
-| `serviceAccount.create`           | true                                   |
-| `serviceAccount.imagePullSecrets` |                                        |
+|           Parameter                  |                Default                 |
+|--------------------------------------|----------------------------------------|
+| `adminUsername`                      | admin                                  |
+| `adminPassword`                      | auto-generated                         |
+| `cookieAuthSecret`                   | auto-generated                         |
+| `image.repository`                   | couchdb                                |
+| `image.tag`                          | 2.3.1                                  |
+| `image.pullPolicy`                   | IfNotPresent                           |
+| `searchImage.repository`             | kocolosk/couchdb-search                |
+| `searchImage.tag`                    | 0.1.0                                  |
+| `searchImage.pullPolicy`             | IfNotPresent                           |
+| `initImage.repository`               | busybox                                |
+| `initImage.tag`                      | latest                                 |
+| `initImage.pullPolicy`               | Always                                 |
+| `ingress.enabled`                    | false                                  |
+| `ingress.hosts`                      | chart-example.local                    |
+| `ingress.annotations`                |                                        |
+| `ingress.path`                       | /                                      |
+| `ingress.tls`                        |                                        |
+| `persistentVolume.accessModes`       | ReadWriteOnce                          |
+| `persistentVolume.storageClass`      | Default for the Kube cluster           |
+| `podManagementPolicy`                | Parallel                               |
+| `affinity`                           |                                        |
+| `annotations`                        |                                        |
+| `tolerations`                        |                                        |
+| `resources`                          |                                        |
+| `service.annotations`                |                                        |
+| `service.enabled`                    | true                                   |
+| `service.type`                       | ClusterIP                              |
+| `service.externalPort`               | 5984                                   |
+| `dns.clusterDomainSuffix`            | cluster.local                          |
+| `networkPolicy.enabled`              | true                                   |
+| `serviceAccount.enabled`             | true                                   |
+| `serviceAccount.create`              | true                                   |
+| `serviceAccount.imagePullSecrets`    |                                        |
+| `livenessProbe.enabled`              | true                                   |
+| `livenessProbe.failureThreshold`     | 3                                      |
+| `livenessProbe.initialDelaySeconds`  | 0                                      |
+| `livenessProbe.periodSeconds`        | 10                                     |
+| `livenessProbe.successThreshold`     | 1                                      |
+| `livenessProbe.timeoutSeconds`       | 1                                      |
+| `readinessProbe.enabled`             | true                                   |
+| `readinessProbe.failureThreshold`    | 3                                      |
+| `readinessProbe.initialDelaySeconds` | 0                                      |
+| `readinessProbe.periodSeconds`       | 10                                     |
+| `readinessProbe.successThreshold`    | 1                                      |
+| `readinessProbe.timeoutSeconds`      | 1                                      |
 
 ## Feedback, Issues, Contributing
 
diff --git a/couchdb/templates/statefulset.yaml b/couchdb/templates/statefulset.yaml
index 7c7b744..9bf4116 100644
--- a/couchdb/templates/statefulset.yaml
+++ b/couchdb/templates/statefulset.yaml
@@ -69,6 +69,7 @@ spec:
 {{- end }}
             - name: ERL_FLAGS
               value: "{{ range $k, $v := .Values.erlangFlags }} -{{ $k }} {{ $v }} {{ end }}"
+{{- if .Values.livenessProbe.enabled }}
           livenessProbe:
 {{- if .Values.couchdbConfig.chttpd.require_valid_user }}
             exec:
@@ -81,6 +82,13 @@ spec:
               path: /
               port: 5984
 {{- end }}
+            failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
+            initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
+            periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
+            successThreshold: {{ .Values.livenessProbe.successThreshold }}
+            timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
+{{- end }}
+{{- if .Values.readinessProbe.enabled }}
           readinessProbe:
 {{- if .Values.couchdbConfig.chttpd.require_valid_user }}
             exec:
@@ -93,6 +101,12 @@ spec:
               path: /_up
               port: 5984
 {{- end }}
+            failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
+            initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
+            periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
+            successThreshold: {{ .Values.readinessProbe.successThreshold }}
+            timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
+{{- end }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/couchdb/values.yaml b/couchdb/values.yaml
index a84e871..e3de48b 100644
--- a/couchdb/values.yaml
+++ b/couchdb/values.yaml
@@ -165,3 +165,20 @@ couchdbConfig:
 # This is used to generate FQDNs for peers when joining the CouchDB cluster.
 dns:
   clusterDomainSuffix: cluster.local
+
+## Configure liveness and readiness probe values
+## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
+livenessProbe:
+  enabled: true
+  failureThreshold: 3
+  initialDelaySeconds: 0
+  periodSeconds: 10
+  successThreshold: 1
+  timeoutSeconds: 1
+readinessProbe:
+  enabled: true
+  failureThreshold: 3
+  initialDelaySeconds: 0
+  periodSeconds: 10
+  successThreshold: 1
+  timeoutSeconds: 1


[couchdb-helm] 05/26: Add e2e testing

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit e366671b0e7825e87761ee8dce9f37aaaedf76fa
Author: Will Holley <wi...@gmail.com>
AuthorDate: Thu Oct 17 16:08:55 2019 +0100

    Add e2e testing
    
    Adds integration testing using Kind (Kubernetes in Docker). The tests
    stand up a local Kubernetes cluster and install the current chart
    using Helm 2.x.
---
 Makefile                         |  20 +++--
 README.md                        | 168 +++++----------------------------------
 test/ct.yaml                     |   1 +
 test/e2e-kind.sh                 | 100 +++++++++++++++++++++++
 test/kind-config.yaml            |   0
 test/local-path-provisioner.yaml | 108 +++++++++++++++++++++++++
 6 files changed, 245 insertions(+), 152 deletions(-)

diff --git a/Makefile b/Makefile
index 1c80ce0..6963b96 100644
--- a/Makefile
+++ b/Makefile
@@ -12,16 +12,24 @@
 
 SHELL=/bin/bash
 
-.PHONY: test
-test:
+.PHONY: lint
+lint:
 	@helm lint couchdb
 
-package: test
+.PHONY: package
+package: lint
 	@helm package couchdb
 
-.PHONY: package
-publish: test
+.PHONY: publish
+publish:
 	@git checkout gh-pages
+	@git checkout -b gh-pages-update
 	@helm repo index docs --url https://apache.github.io/couchdb-helm
 	@git add -i
-	@echo "To complete the publish step, commit and push the chart tgz and updated index to gh-pages"
+	@git commit
+	@echo "To complete the publish step, push the branch to your GitHub remote and create a PR against gh-pages"
+
+# Run end to end tests using KinD
+.PHONY: test
+test:
+	./test/e2e-kind.sh
diff --git a/README.md b/README.md
index a0bfc15..b17607b 100644
--- a/README.md
+++ b/README.md
@@ -1,167 +1,43 @@
-# CouchDB
+# CouchDB Helm Charts
 
-Apache CouchDB is a database featuring seamless multi-master sync, that scales
-from big data to mobile, with an intuitive HTTP/JSON API and designed for
-reliability.
+This repository contains assets related to the CouchDB Helm chart.
 
-This chart deploys a CouchDB cluster as a StatefulSet. It creates a ClusterIP
-Service in front of the Deployment for load balancing by default, but can also
-be configured to deploy other Service types or an Ingress Controller. The
-default persistence mechanism is simply the ephemeral local filesystem, but
-production deployments should set `persistentVolume.enabled` to `true` to attach
-storage volumes to each Pod in the Deployment.
+## Layout
 
-## TL;DR
+ * `couchdb`: contains the unbundled Helm chart
+ * `test`: containes scripts to test the chart locally using [Kind][5]
 
-```bash
-$ helm repo add couchdb https://apache.github.io/couchdb-helm
-$ helm install couchdb/couchdb --set allowAdminParty=true
-```
+## Testing
 
-## Prerequisites
+`make test` will run an integration test using [Kind][5]. This stands up a Kubernetes cluster locally and ensures the chart will
+deploy using the default options and Helm.
 
-- Kubernetes 1.8+ with Beta APIs enabled
+## Releasing
 
-## Installing the Chart
+The Helm chart is published to a Helm epository hosted by GitHub pages. This is maintained in the `gh-pages` branch of this repository.
 
-To install the chart with the release name `my-release`:
+To publish a new release, perform the following steps:
 
-Add the CouchDB Helm repository:
+ 1. Create a Helm bundle (*.tgz) for the current couchdb chart
+ 2. Switch to the `gh-pages` branch
+ 3. Run `helm repo index docs --url https://apache.github.io/couchdb-helm` to generate the Helm repository index
+ 4. `git add` the tgz bundle and the `index.yaml` files. Do not delete the old chart bundles!
+ 5. Commit the changes and create a PR to `gh-pages`.
 
-```bash
-$ helm repo add couchdb https://apache.github.io/couchdb-helm
-```
+`make publish` automates these steps for you.
 
-
-```bash
-$ helm install --name my-release couchdb/couchdb
-```
-
-This will create a Secret containing the admin credentials for the cluster.
-Those credentials can be retrieved as follows:
-
-```bash
-$ kubectl get secret my-release-couchdb -o go-template='{{ .data.adminPassword }}' | base64 --decode
-```
-
-If you prefer to configure the admin credentials directly you can create a
-Secret containing `adminUsername`, `adminPassword` and `cookieAuthSecret` keys:
-
-```bash
-$  kubectl create secret generic my-release-couchdb --from-literal=adminUsername=foo --from-literal=adminPassword=bar --from-literal=cookieAuthSecret=baz
-```
-
-and then install the chart while overriding the `createAdminSecret` setting:
-
-```bash
-$ helm install --name my-release --set createAdminSecret=false couchdb/couchdb
-```
-
-This Helm chart deploys CouchDB on the Kubernetes cluster in a default
-configuration. The [configuration](#configuration) section lists
-the parameters that can be configured during installation.
-
-> **Tip**: List all releases using `helm list`
-
-## Uninstalling the Chart
-
-To uninstall/delete the `my-release` Deployment:
-
-```bash
-$ helm delete my-release
-```
-
-The command removes all the Kubernetes components associated with the chart and
-deletes the release.
-
-## Upgrading an existing Release to a new major version
-
-A major chart version change (like v0.2.3 -> v1.0.0) indicates that there is an
-incompatible breaking change needing manual actions.
-
-## Migrating from stable/couchdb
-
-This chart replaces the `stable/couchdb` chart previously hosted by Helm and continues the
-version semantics. You can upgrade directly from `stable/couchdb` to this chart using:
-
-```bash
-$ helm repo add couchdb https://apache.github.io/couchdb-helm
-$ helm upgrade my-release couchdb/couchdb
-```
-
-## Configuration
-
-The following table lists the most commonly configured parameters of the
-CouchDB chart and their default values:
-
-|           Parameter             |             Description                               |                Default                 |
-|---------------------------------|-------------------------------------------------------|----------------------------------------|
-| `clusterSize`                   | The initial number of nodes in the CouchDB cluster    | 3                                      |
-| `couchdbConfig`                 | Map allowing override elements of server .ini config  | chttpd.bind_address=any                |
-| `allowAdminParty`               | If enabled, start cluster without admin account       | false (requires creating a Secret)     |
-| `createAdminSecret`             | If enabled, create an admin account and cookie secret | true                                   |
-| `schedulerName`                 | Name of the k8s scheduler (other than default)        | `nil`                                  |
-| `erlangFlags`                   | Map of flags supplied to the underlying Erlang VM     | name: couchdb, setcookie: monster
-| `persistentVolume.enabled`      | Boolean determining whether to attach a PV to each node | false
-| `persistentVolume.size`         | If enabled, the size of the persistent volume to attach                          | 10Gi
-| `enableSearch`                  | Adds a sidecar for Lucene-powered text search         | false                                  |
-
-A variety of other parameters are also configurable. See the comments in the
-`values.yaml` file for further details:
-
-|           Parameter             |                Default                 |
-|---------------------------------|----------------------------------------|
-| `adminUsername`                 | admin                                  |
-| `adminPassword`                 | auto-generated                         |
-| `cookieAuthSecret`              | auto-generated                         |
-| `image.repository`              | couchdb                                |
-| `image.tag`                     | 2.3.1                                  |
-| `image.pullPolicy`              | IfNotPresent                           |
-| `searchImage.repository`        | kocolosk/couchdb-search                |
-| `searchImage.tag`               | 0.1.0                                  |
-| `searchImage.pullPolicy`        | IfNotPresent                           |
-| `initImage.repository`          | busybox                                |
-| `initImage.tag`                 | latest                                 |
-| `initImage.pullPolicy`          | Always                                 |
-| `ingress.enabled`               | false                                  |
-| `ingress.hosts`                 | chart-example.local                    |
-| `ingress.annotations`           |                                        |
-| `ingress.tls`                   |                                        |
-| `persistentVolume.accessModes`  | ReadWriteOnce                          |
-| `persistentVolume.storageClass` | Default for the Kube cluster           |
-| `podManagementPolicy`           | Parallel                               |
-| `affinity`                      |                                        |
-| `resources`                     |                                        |
-| `service.annotations`           |                                        |
-| `service.enabled`               | true                                   |
-| `service.type`                  | ClusterIP                              |
-| `service.externalPort`          | 5984                                   |
-| `dns.clusterDomainSuffix`       | cluster.local                          |
-
-
-## Feedback, Issues, Contributing
+## Feedback / Issues / Contributing
 
 General feedback is welcome at our [user][1] or [developer][2] mailing lists.
 
 Apache CouchDB has a [CONTRIBUTING][3] file with details on how to get started
 with issue reporting or contributing to the upkeep of this project. In short,
-use GitHub Issues, do not report anything on Docker's website.
-
-## Non-Apache CouchDB Development Team Contributors
+use GitHub Issues, do not report anything to the Helm team.
 
-- [@natarajaya](https://github.com/natarajaya)
-- [@satchpx](https://github.com/satchpx)
-- [@spanato](https://github.com/spanato)
-- [@jpds](https://github.com/jpds)
-- [@sebastien-prudhomme](https://github.com/sebastien-prudhomme)
-- [@stepanstipl](https://github.com/sebastien-stepanstipl)
-- [@amatas](https://github.com/amatas)
-- [@Chimney42](https://github.com/Chimney42)
-- [@mattjmcnaughton](https://github.com/mattjmcnaughton)
-- [@mainephd](https://github.com/mainephd)
-- [@AdamDang](https://github.com/AdamDang)
-- [@mrtyler](https://github.com/mrtyler)
+The chart follows the technical guidelines / best practices [maintained][4] by the Helm team.
 
 [1]: http://mail-archives.apache.org/mod_mbox/couchdb-user/
 [2]: http://mail-archives.apache.org/mod_mbox/couchdb-dev/
 [3]: https://github.com/apache/couchdb/blob/master/CONTRIBUTING.md
+[4]: https://github.com/helm/charts/blob/master/REVIEW_GUIDELINES.md
+[5]: https://github.com/kubernetes-sigs/kind
diff --git a/test/ct.yaml b/test/ct.yaml
new file mode 100644
index 0000000..d40aa57
--- /dev/null
+++ b/test/ct.yaml
@@ -0,0 +1 @@
+helm-extra-args: --timeout 800
diff --git a/test/e2e-kind.sh b/test/e2e-kind.sh
new file mode 100755
index 0000000..59c1dbe
--- /dev/null
+++ b/test/e2e-kind.sh
@@ -0,0 +1,100 @@
+#!/usr/bin/env bash
+
+set -o errexit
+set -o nounset
+set -o pipefail
+
+readonly CT_VERSION=v2.3.3
+readonly KIND_VERSION=v0.5.1
+readonly CLUSTER_NAME=chart-testing
+readonly K8S_VERSION=v1.14.3
+
+run_ct_container() {
+    echo 'Running ct container...'
+    docker run --rm --interactive --detach --network host --name ct \
+        --volume "$(pwd)/test/ct.yaml:/etc/ct/ct.yaml" \
+        --volume "$(pwd):/workdir" \
+        --workdir /workdir \
+        "quay.io/helmpack/chart-testing:$CT_VERSION" \
+        cat
+    echo
+}
+
+cleanup() {
+    echo 'Removing ct container...'
+    docker kill ct > /dev/null 2>&1
+
+    kind delete cluster --name "$CLUSTER_NAME" || true
+
+    echo 'Done!'
+}
+
+docker_exec() {
+    docker exec --interactive ct "$@"
+}
+
+create_kind_cluster() {
+    if ! [ -x "$(command -v kind)" ]; then
+        echo 'Installing kind...'
+
+        curl -sSLo kind "https://github.com/kubernetes-sigs/kind/releases/download/$KIND_VERSION/kind-linux-amd64"
+        chmod +x kind
+        sudo mv kind /usr/local/bin/kind
+    fi
+
+    kind delete cluster --name "$CLUSTER_NAME" || true
+    kind create cluster --name "$CLUSTER_NAME" --config test/kind-config.yaml --image "kindest/node:$K8S_VERSION" --wait 60s
+
+    docker_exec mkdir -p /root/.kube
+
+    echo 'Copying kubeconfig to container...'
+    local kubeconfig
+    kubeconfig="$(kind get kubeconfig-path --name "$CLUSTER_NAME")"
+    docker cp "$kubeconfig" ct:/root/.kube/config
+
+    docker_exec kubectl cluster-info
+    echo
+
+    docker_exec kubectl get nodes
+    echo
+
+    echo 'Cluster ready!'
+    echo
+}
+
+install_tiller() {
+    echo 'Installing Tiller...'
+    docker_exec kubectl --namespace kube-system create sa tiller
+    docker_exec kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
+    docker_exec helm init --service-account tiller --upgrade --wait
+    echo
+}
+
+install_local-path-provisioner() {
+    # kind doesn't support Dynamic PVC provisioning yet, this is one ways to get it working
+    # https://github.com/rancher/local-path-provisioner
+
+    # Remove default storage class. It will be recreated by local-path-provisioner
+    docker_exec kubectl delete storageclass standard
+
+    echo 'Installing local-path-provisioner...'
+    docker_exec kubectl apply -f test/local-path-provisioner.yaml
+    echo
+}
+
+install_charts() {
+    docker_exec ct lint-and-install --chart-repos couchdb=https://apache.github.io/couchdb-helm --chart-dirs .
+    echo
+}
+
+main() {
+    run_ct_container
+    trap cleanup EXIT
+
+    create_kind_cluster
+    install_local-path-provisioner
+    install_tiller
+    install_charts
+}
+
+main
diff --git a/test/kind-config.yaml b/test/kind-config.yaml
new file mode 100644
index 0000000..e69de29
diff --git a/test/local-path-provisioner.yaml b/test/local-path-provisioner.yaml
new file mode 100644
index 0000000..3eda3a1
--- /dev/null
+++ b/test/local-path-provisioner.yaml
@@ -0,0 +1,108 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+  name: local-path-storage
+---
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: local-path-provisioner-service-account
+  namespace: local-path-storage
+---
+apiVersion: rbac.authorization.k8s.io/v1beta1
+kind: ClusterRole
+metadata:
+  name: local-path-provisioner-role
+  namespace: local-path-storage
+rules:
+- apiGroups: [""]
+  resources: ["nodes", "persistentvolumeclaims"]
+  verbs: ["get", "list", "watch"]
+- apiGroups: [""]
+  resources: ["endpoints", "persistentvolumes", "pods"]
+  verbs: ["*"]
+- apiGroups: [""]
+  resources: ["events"]
+  verbs: ["create", "patch"]
+- apiGroups: ["storage.k8s.io"]
+  resources: ["storageclasses"]
+  verbs: ["get", "list", "watch"]
+---
+apiVersion: rbac.authorization.k8s.io/v1beta1
+kind: ClusterRoleBinding
+metadata:
+  name: local-path-provisioner-bind
+  namespace: local-path-storage
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: local-path-provisioner-role
+subjects:
+- kind: ServiceAccount
+  name: local-path-provisioner-service-account
+  namespace: local-path-storage
+---
+apiVersion: apps/v1beta2
+kind: Deployment
+metadata:
+  name: local-path-provisioner
+  namespace: local-path-storage
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: local-path-provisioner
+  template:
+    metadata:
+      labels:
+        app: local-path-provisioner
+    spec:
+      serviceAccountName: local-path-provisioner-service-account
+      containers:
+      - name: local-path-provisioner
+        image: rancher/local-path-provisioner:v0.0.11
+        imagePullPolicy: Always
+        command:
+        - local-path-provisioner
+        - --debug
+        - start
+        - --config
+        - /etc/config/config.json
+        volumeMounts:
+        - name: config-volume
+          mountPath: /etc/config/
+        env:
+        - name: POD_NAMESPACE
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.namespace
+      volumes:
+        - name: config-volume
+          configMap:
+            name: local-path-config
+---
+apiVersion: storage.k8s.io/v1
+kind: StorageClass
+metadata:
+  name: local-path
+  annotations:
+    storageclass.kubernetes.io/is-default-class: "true"
+provisioner: rancher.io/local-path
+volumeBindingMode: WaitForFirstConsumer
+reclaimPolicy: Delete
+---
+kind: ConfigMap
+apiVersion: v1
+metadata:
+  name: local-path-config
+  namespace: local-path-storage
+data:
+  config.json: |-
+        {
+                "nodePathMap":[
+                {
+                        "node":"DEFAULT_PATH_FOR_NON_LISTED_NODES",
+                        "paths":["/opt/local-path-provisioner"]
+                }
+                ]
+        }


[couchdb-helm] 12/26: Add support for pod annotations

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit e98bd87e8312a1b94a1b779bccb9f165ddb7e576
Author: Will Holley <wi...@gmail.com>
AuthorDate: Tue Oct 22 13:51:50 2019 +0100

    Add support for pod annotations
    
    Ported from https://github.com/helm/charts/pull/16794.
    
    Co-authored-by: Sylvain Perrinel <sy...@gmail.com>
---
 couchdb/README.md                  | 1 +
 couchdb/templates/statefulset.yaml | 4 ++++
 couchdb/values.yaml                | 3 +++
 3 files changed, 8 insertions(+)

diff --git a/couchdb/README.md b/couchdb/README.md
index 1f4bc60..0f3c90d 100644
--- a/couchdb/README.md
+++ b/couchdb/README.md
@@ -132,6 +132,7 @@ A variety of other parameters are also configurable. See the comments in the
 | `persistentVolume.storageClass` | Default for the Kube cluster           |
 | `podManagementPolicy`           | Parallel                               |
 | `affinity`                      |                                        |
+| `annotations`                   |                                        |
 | `resources`                     |                                        |
 | `service.annotations`           |                                        |
 | `service.enabled`               | true                                   |
diff --git a/couchdb/templates/statefulset.yaml b/couchdb/templates/statefulset.yaml
index fab2c36..416b594 100644
--- a/couchdb/templates/statefulset.yaml
+++ b/couchdb/templates/statefulset.yaml
@@ -18,6 +18,10 @@ spec:
     metadata:
       labels:
 {{ include "couchdb.ss.selector" . | indent 8 }}
+{{- with .Values.annotations }}
+      annotations:
+{{ toYaml . | indent 8 }}
+{{- end }}
     spec:
       {{- if .Values.schedulerName }}
       schedulerName: "{{ .Values.schedulerName }}"
diff --git a/couchdb/values.yaml b/couchdb/values.yaml
index 8cc24f8..cbff0f9 100644
--- a/couchdb/values.yaml
+++ b/couchdb/values.yaml
@@ -80,6 +80,9 @@ affinity:
   #             - couchdb
   #       topologyKey: "kubernetes.io/hostname"
 
+## Optional pod annotations
+annotations:
+
 ## A StatefulSet requires a headless Service to establish the stable network
 ## identities of the Pods, and that Service is created automatically by this
 ## chart without any additional configuration. The Service block below refers


[couchdb-helm] 09/26: Switch gh-pages to use master/docs

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit 3378a6b217913a9605c8505598b30e2aa24adfbb
Author: Will Holley <wi...@gmail.com>
AuthorDate: Tue Oct 29 11:35:58 2019 +0000

    Switch gh-pages to use master/docs
---
 .asf.yaml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/.asf.yaml b/.asf.yaml
new file mode 100644
index 0000000..898063f
--- /dev/null
+++ b/.asf.yaml
@@ -0,0 +1,3 @@
+github:
+  ghp_branch:  master
+  ghp_path:    /docs


[couchdb-helm] 08/26: Merge pull request #1 from apache/tests

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit e0d2ab9e8780a872c7537f88632893074bce5b92
Merge: d49eb98 3e2f02e
Author: Will Holley <wi...@apache.org>
AuthorDate: Mon Oct 28 13:06:52 2019 +0000

    Merge pull request #1 from apache/tests
    
    Add e2e tests

 .github/ISSUE_TEMPLATE/bug_report.md              |  33 +++++
 .github/ISSUE_TEMPLATE/feature_request.md         |  27 ++++
 .github/PULL_REQUEST_TEMPLATE.md                  |  36 +++++
 Makefile                                          |  27 ++++
 README.md                                         | 164 ++--------------------
 Chart.yaml => couchdb/Chart.yaml                  |   2 +
 README.md => couchdb/README.md                    |   0
 {templates => couchdb/templates}/NOTES.txt        |   0
 {templates => couchdb/templates}/_helpers.tpl     |   0
 {templates => couchdb/templates}/configmap.yaml   |   0
 {templates => couchdb/templates}/headless.yaml    |   0
 {templates => couchdb/templates}/ingress.yaml     |   0
 {templates => couchdb/templates}/secrets.yaml     |   0
 {templates => couchdb/templates}/service.yaml     |   0
 {templates => couchdb/templates}/statefulset.yaml |   0
 values.yaml => couchdb/values.yaml                |   0
 docs/couchdb-2.2.0.tgz                            | Bin 0 -> 7354 bytes
 docs/index.yaml                                   |  27 ++++
 test/ct.yaml                                      |   1 +
 test/e2e-kind.sh                                  |  97 +++++++++++++
 test/kind-config.yaml                             |   0
 test/local-path-provisioner.yaml                  | 108 ++++++++++++++
 22 files changed, 373 insertions(+), 149 deletions(-)


[couchdb-helm] 20/26: Merge pull request #5 from apache/update-gh-pages

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit c2c211c393d9be61a62eff7974b02b45c72b692d
Merge: 2f98c4c 3378a6b
Author: Will Holley <wi...@apache.org>
AuthorDate: Thu Oct 31 16:38:19 2019 +0000

    Merge pull request #5 from apache/update-gh-pages
    
    Serve GitHub pages from docs folder of master branch

 .asf.yaml | 3 +++
 1 file changed, 3 insertions(+)


[couchdb-helm] 23/26: Require a server instance UUID (#15)

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit b46f424fbaa36291b1bc6c6a4e1751e5de7ce064
Author: Arne Diekmann <di...@neoskop.de>
AuthorDate: Wed Nov 20 17:31:51 2019 +0100

    Require a server instance UUID (#15)
    
    Requires `couchdbConfig.couchdb.uuid` to be set and fails helm install otherwise.
    
    The option is mandatory since replication issues (See apache/couchdb#2298) can occur when all instances have different UUIDs which is what happens when couchdbConfig.couchdb.uuid is not set.
    
    This is a major version bump as it requires upgrades to explicitly set this option.
---
 couchdb/Chart.yaml               |   2 +-
 couchdb/README.md                |  44 +++++++++++++++++++++++++++++++++++----
 couchdb/ci/required-values.yaml  |   3 +++
 couchdb/templates/_helpers.tpl   |   7 +++++++
 couchdb/templates/configmap.yaml |   4 +++-
 couchdb/values.yaml              |   2 ++
 docs/couchdb-3.0.0.tgz           | Bin 0 -> 8517 bytes
 docs/index.yaml                  |  33 ++++++++++++++++++++++++-----
 test/kind-config.yaml            |   5 +++++
 9 files changed, 89 insertions(+), 11 deletions(-)

diff --git a/couchdb/Chart.yaml b/couchdb/Chart.yaml
index deb6de7..fb44046 100644
--- a/couchdb/Chart.yaml
+++ b/couchdb/Chart.yaml
@@ -1,6 +1,6 @@
 apiVersion: v1
 name: couchdb
-version: 2.4.1
+version: 3.0.0
 appVersion: 2.3.1
 description: A database featuring seamless multi-master sync, that scales from
   big data to mobile, with an intuitive HTTP/JSON API and designed for
diff --git a/couchdb/README.md b/couchdb/README.md
index b48cd5b..ec7233c 100644
--- a/couchdb/README.md
+++ b/couchdb/README.md
@@ -15,7 +15,9 @@ storage volumes to each Pod in the Deployment.
 
 ```bash
 $ helm repo add couchdb https://apache.github.io/couchdb-helm
-$ helm install couchdb/couchdb --set allowAdminParty=true
+$ helm install couchdb/couchdb \
+  --set allowAdminParty=true \
+  --set couchdbConfig.couchdb.uuid=$(curl https://www.uuidgenerator.net/api/version4 2>/dev/null | tr -d -)
 ```
 
 ## Prerequisites
@@ -33,9 +35,14 @@ Add the CouchDB Helm repository:
 $ helm repo add couchdb https://apache.github.io/couchdb-helm
 ```
 
+Afterwards install the chart replacing the UUID 
+`decafbaddecafbaddecafbaddecafbad` with a custom one:
 
 ```bash
-$ helm install --name my-release couchdb/couchdb
+$ helm install \
+  --name my-release \
+  --set couchdbConfig.couchdb.uuid=decafbaddecafbaddecafbaddecafbad \
+  couchdb/couchdb 
 ```
 
 This will create a Secret containing the admin credentials for the cluster.
@@ -55,7 +62,11 @@ $  kubectl create secret generic my-release-couchdb --from-literal=adminUsername
 and then install the chart while overriding the `createAdminSecret` setting:
 
 ```bash
-$ helm install --name my-release --set createAdminSecret=false couchdb/couchdb
+$ helm install \
+  --name my-release \
+  --set createAdminSecret=false \
+  --set couchdbConfig.couchdb.uuid=decafbaddecafbaddecafbaddecafbad \
+  couchdb/couchdb
 ```
 
 This Helm chart deploys CouchDB on the Kubernetes cluster in a default
@@ -80,6 +91,19 @@ deletes the release.
 A major chart version change (like v0.2.3 -> v1.0.0) indicates that there is an
 incompatible breaking change needing manual actions.
 
+### Upgrade to 3.0.0
+
+Since version 3.0.0 setting the CouchDB server instance UUID is mandatory. 
+Therefore you need to generate a UUID and supply it as a value during the 
+upgrade as follows:
+
+```bash
+$ helm upgrade <release-name> \
+  --reuse-values \
+  --set couchdbConfig.couchdb.uuid=<UUID> \
+  couchdb/couchdb
+```
+
 ## Migrating from stable/couchdb
 
 This chart replaces the `stable/couchdb` chart previously hosted by Helm and continues the
@@ -98,7 +122,7 @@ CouchDB chart and their default values:
 |           Parameter             |             Description                               |                Default                 |
 |---------------------------------|-------------------------------------------------------|----------------------------------------|
 | `clusterSize`                   | The initial number of nodes in the CouchDB cluster    | 3                                      |
-| `couchdbConfig`                 | Map allowing override elements of server .ini config  | chttpd.bind_address=any                |
+| `couchdbConfig`                 | Map allowing override elements of server .ini config  | *See below*                            |
 | `allowAdminParty`               | If enabled, start cluster without admin account       | false (requires creating a Secret)     |
 | `createAdminSecret`             | If enabled, create an admin account and cookie secret | true                                   |
 | `schedulerName`                 | Name of the k8s scheduler (other than default)        | `nil`                                  |
@@ -107,6 +131,16 @@ CouchDB chart and their default values:
 | `persistentVolume.size`         | If enabled, the size of the persistent volume to attach                          | 10Gi
 | `enableSearch`                  | Adds a sidecar for Lucene-powered text search         | false                                  |
 
+You can set the values of the `couchdbConfig` map according to the 
+[official configuration][4]. The following shows the map's default values and 
+required options to set:
+
+|           Parameter             |             Description                                            |                Default                 |
+|---------------------------------|--------------------------------------------------------------------|----------------------------------------|
+| `couchdb.uuid`                  | UUID for this CouchDB server instance ([Required in a cluster][5]) |                                        |
+| `chttpd.bind_address`           | listens on all interfaces when set to any                          | any                                    |
+| `chttpd.require_valid_user`     | disables all the anonymous requests to the port 5984 when true     | false                                  |
+
 A variety of other parameters are also configurable. See the comments in the
 `values.yaml` file for further details:
 
@@ -175,3 +209,5 @@ use GitHub Issues, do not report anything on Docker's website.
 [1]: http://mail-archives.apache.org/mod_mbox/couchdb-user/
 [2]: http://mail-archives.apache.org/mod_mbox/couchdb-dev/
 [3]: https://github.com/apache/couchdb/blob/master/CONTRIBUTING.md
+[4]: https://docs.couchdb.org/en/stable/config/index.html
+[5]: https://docs.couchdb.org/en/latest/setup/cluster.html#preparing-couchdb-nodes-to-be-joined-into-a-cluster
diff --git a/couchdb/ci/required-values.yaml b/couchdb/ci/required-values.yaml
new file mode 100644
index 0000000..79589d2
--- /dev/null
+++ b/couchdb/ci/required-values.yaml
@@ -0,0 +1,3 @@
+couchdbConfig:
+  couchdb:
+    uuid: "decafbaddecafbaddecafbaddecafbad"
diff --git a/couchdb/templates/_helpers.tpl b/couchdb/templates/_helpers.tpl
index 3a9288f..f9d013e 100644
--- a/couchdb/templates/_helpers.tpl
+++ b/couchdb/templates/_helpers.tpl
@@ -72,3 +72,10 @@ If serviceAccount.name is specified, use that, else use the couchdb instance nam
 {{- template "couchdb.fullname" . -}}
 {{- end -}}
 {{- end -}}
+
+{{/*
+Fail if couchdbConfig.couchdb.uuid is undefined
+*/}}
+{{- define "couchdb.uuid" -}}
+{{- required "A value for couchdbConfig.couchdb.uuid must be set" (.Values.couchdbConfig.couchdb | default dict).uuid -}}
+{{- end -}} 
\ No newline at end of file
diff --git a/couchdb/templates/configmap.yaml b/couchdb/templates/configmap.yaml
index 3520b01..a6a20e0 100644
--- a/couchdb/templates/configmap.yaml
+++ b/couchdb/templates/configmap.yaml
@@ -9,7 +9,9 @@ metadata:
     release: {{ .Release.Name | quote }}
 data:
   inifile: |
-    {{ range $section, $settings := .Values.couchdbConfig -}}
+    {{ $couchdbConfig := dict "couchdb" (dict "uuid" (include "couchdb.uuid" .)) -}}
+    {{- $couchdbConfig := merge $couchdbConfig .Values.couchdbConfig -}}
+    {{- range $section, $settings := $couchdbConfig -}}
     {{ printf "[%s]" $section }}
     {{ range $key, $value := $settings -}}
     {{ printf "%s = %s" $key ($value | toString) }}
diff --git a/couchdb/values.yaml b/couchdb/values.yaml
index f94faf7..a84e871 100644
--- a/couchdb/values.yaml
+++ b/couchdb/values.yaml
@@ -150,6 +150,8 @@ erlangFlags:
 ## by a ConfigMap object.
 ## ref: http://docs.couchdb.org/en/latest/config/index.html
 couchdbConfig:
+  # couchdb:
+  #  uuid: decafbaddecafbaddecafbaddecafbad # Unique identifier for this CouchDB server instance
   # cluster:
   #   q: 8 # Create 8 shards for each database
   chttpd:
diff --git a/docs/couchdb-3.0.0.tgz b/docs/couchdb-3.0.0.tgz
new file mode 100644
index 0000000..fa97799
Binary files /dev/null and b/docs/couchdb-3.0.0.tgz differ
diff --git a/docs/index.yaml b/docs/index.yaml
index 1e3801a..a3325cc 100644
--- a/docs/index.yaml
+++ b/docs/index.yaml
@@ -3,7 +3,30 @@ entries:
   couchdb:
   - apiVersion: v1
     appVersion: 2.3.1
-    created: "2019-11-01T11:51:15.339935463+01:00"
+    created: "2019-11-20T17:05:05.503189523+01:00"
+    description: A database featuring seamless multi-master sync, that scales from
+      big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
+    digest: 7770f1c19e948d9928eeed4f11ff960e598149bb5c0ae3e1f546b61e9dfb65f4
+    home: https://couchdb.apache.org/
+    icon: http://couchdb.apache.org/CouchDB-visual-identity/logo/CouchDB-couch-symbol.svg
+    keywords:
+    - couchdb
+    - database
+    - nosql
+    maintainers:
+    - email: kocolosk@apache.org
+      name: kocolosk
+    - email: willholley@apache.org
+      name: willholley
+    name: couchdb
+    sources:
+    - https://github.com/apache/couchdb-docker
+    urls:
+    - https://apache.github.io/couchdb-helm/couchdb-3.0.0.tgz
+    version: 3.0.0
+  - apiVersion: v1
+    appVersion: 2.3.1
+    created: "2019-11-20T17:05:05.500168632+01:00"
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
     digest: db0815c2766f76049b58d0954b66e0b70bf673a7d11c1d3cd9e07c775c646c12
@@ -26,7 +49,7 @@ entries:
     version: 2.4.1
   - apiVersion: v1
     appVersion: 2.3.1
-    created: "2019-11-01T11:51:15.339429507+01:00"
+    created: "2019-11-20T17:05:05.499725352+01:00"
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
     digest: daddf6cc7fe8bb63d6fa8679565d4496d92c23d9ff85b19521fca74c6412bc11
@@ -49,7 +72,7 @@ entries:
     version: 2.4.0
   - apiVersion: v1
     appVersion: 2.3.1
-    created: "2019-11-01T11:51:15.333646851+01:00"
+    created: "2019-11-20T17:05:05.499039305+01:00"
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
     digest: 0eba7c20ec47bc8556b3cb3b5137b578d46b37397493087d61b8199066f84782
@@ -72,7 +95,7 @@ entries:
     version: 2.3.0
   - apiVersion: v1
     appVersion: 2.3.1
-    created: "2019-11-01T11:51:15.330535744+01:00"
+    created: "2019-11-20T17:05:05.498407349+01:00"
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
     digest: f68e6187c2b65a02fdde9d49ec38e76a68c3d82421e5ea9e599bac87f4193c6a
@@ -93,4 +116,4 @@ entries:
     urls:
     - https://apache.github.io/couchdb-helm/couchdb-2.2.0.tgz
     version: 2.2.0
-generated: "2019-11-01T11:51:15.321186109+01:00"
+generated: "2019-11-20T17:05:05.497677063+01:00"
diff --git a/test/kind-config.yaml b/test/kind-config.yaml
index e69de29..ee24a88 100644
--- a/test/kind-config.yaml
+++ b/test/kind-config.yaml
@@ -0,0 +1,5 @@
+kind: Cluster
+apiVersion: kind.sigs.k8s.io/v1alpha3
+nodes:
+  - role: control-plane
+  - role: worker


[couchdb-helm] 17/26: Add credits

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit 456149c2581538364050ca11183a89cf5e62a7ce
Author: Will Holley <wi...@gmail.com>
AuthorDate: Tue Oct 22 18:20:41 2019 +0100

    Add credits
---
 couchdb/README.md | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/couchdb/README.md b/couchdb/README.md
index fe70ebf..b48cd5b 100644
--- a/couchdb/README.md
+++ b/couchdb/README.md
@@ -168,6 +168,9 @@ use GitHub Issues, do not report anything on Docker's website.
 - [@mainephd](https://github.com/mainephd)
 - [@AdamDang](https://github.com/AdamDang)
 - [@mrtyler](https://github.com/mrtyler)
+- [@kevinwlau](https://github.com/kevinwlau)
+- [@jeyenzo](https://github.com/jeyenzo)
+- [@Pinpin31.](https://github.com/Pinpin31)
 
 [1]: http://mail-archives.apache.org/mod_mbox/couchdb-user/
 [2]: http://mail-archives.apache.org/mod_mbox/couchdb-dev/


[couchdb-helm] 26/26: Merge pull request #17 from aikoven/support-configuring-probes

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit f99ec17bc7e440a1ffff492e51c01e62847f6901
Merge: b46f424 bbf7201
Author: Will Holley <wi...@apache.org>
AuthorDate: Mon Jan 6 10:33:58 2020 +0000

    Merge pull request #17 from aikoven/support-configuring-probes
    
    Support configuring liveness and readiness probes

 couchdb/Chart.yaml                 |   2 +-
 couchdb/README.md                  |  94 +++++++++++++++++++++----------------
 couchdb/templates/statefulset.yaml |  14 ++++++
 couchdb/values.yaml                |  17 +++++++
 docs/couchdb-3.1.0.tgz             | Bin 0 -> 8866 bytes
 docs/index.yaml                    |  35 +++++++++++---
 6 files changed, 114 insertions(+), 48 deletions(-)


[couchdb-helm] 15/26: Add optional network policy

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit 17b38890805b3040333c8dfa4da9ab0a5597edf4
Author: Will Holley <wi...@gmail.com>
AuthorDate: Tue Oct 22 16:16:51 2019 +0100

    Add optional network policy
    
    Adds a NetworkPolicy to enable communication between CouchDB pods
    and external ingress on port 5984.
    
    This is required in environments (e.g. Red Hat OpenShift) which apply
    DenyAll network policies by default.
    
    ported from https://github.com/helm/charts/pull/17262
---
 couchdb/README.md                    |  1 +
 couchdb/templates/networkpolicy.yaml | 31 +++++++++++++++++++++++++++++++
 couchdb/values.yaml                  |  5 +++++
 3 files changed, 37 insertions(+)

diff --git a/couchdb/README.md b/couchdb/README.md
index 937c1d3..0d786e3 100644
--- a/couchdb/README.md
+++ b/couchdb/README.md
@@ -140,6 +140,7 @@ A variety of other parameters are also configurable. See the comments in the
 | `service.type`                    | ClusterIP                              |
 | `service.externalPort`            | 5984                                   |
 | `dns.clusterDomainSuffix`         | cluster.local                          |
+| `networkPolicy.enabled`           | true                                   |
 | `serviceAccount.enabled`          | true                                   |
 | `serviceAccount.create`           | true                                   |
 | `serviceAccount.imagePullSecrets` |                                        |
diff --git a/couchdb/templates/networkpolicy.yaml b/couchdb/templates/networkpolicy.yaml
new file mode 100644
index 0000000..2830708
--- /dev/null
+++ b/couchdb/templates/networkpolicy.yaml
@@ -0,0 +1,31 @@
+
+{{- if .Values.networkPolicy.enabled }}
+kind: NetworkPolicy
+apiVersion: networking.k8s.io/v1
+metadata:
+  name: {{ template "couchdb.fullname" . }}
+  labels:
+    app: {{ template "couchdb.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  podSelector:
+    matchLabels:
+{{ include "couchdb.ss.selector" . | indent 6 }}
+  ingress:
+    - ports:
+        - protocol: TCP
+          port: 5984
+    - ports:
+        - protocol: TCP
+          port: 9100
+        - protocol: TCP
+          port: 4369
+      from:
+        - podSelector:
+            matchLabels:
+{{ include "couchdb.ss.selector" . | indent 14 }}
+  policyTypes:
+    - Ingress
+{{- end }}
diff --git a/couchdb/values.yaml b/couchdb/values.yaml
index 089f90b..f94faf7 100644
--- a/couchdb/values.yaml
+++ b/couchdb/values.yaml
@@ -25,6 +25,11 @@ adminUsername: admin
 # adminPassword: this_is_not_secure
 # cookieAuthSecret: neither_is_this
 
+## When enabled, will deploy a networkpolicy that allows CouchDB pods to
+## communicate with each other for clustering and ingress on port 5984
+networkPolicy:
+  enabled: true
+
 ## Use an alternate scheduler, e.g. "stork".
 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
 ##


[couchdb-helm] 18/26: Bump chart version to 2.4.0

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit d6fec583b6ed235e13d1512821508aaa0fa53e1b
Author: Will Holley <wi...@gmail.com>
AuthorDate: Thu Oct 31 09:24:41 2019 +0000

    Bump chart version to 2.4.0
---
 couchdb/Chart.yaml     |   2 +-
 docs/couchdb-2.4.0.tgz | Bin 0 -> 7897 bytes
 docs/index.yaml        |  29 ++++++++++++++++++++++++++---
 3 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/couchdb/Chart.yaml b/couchdb/Chart.yaml
index d976350..7cfee20 100644
--- a/couchdb/Chart.yaml
+++ b/couchdb/Chart.yaml
@@ -1,6 +1,6 @@
 apiVersion: v1
 name: couchdb
-version: 2.3.0
+version: 2.4.0
 appVersion: 2.3.1
 description: A database featuring seamless multi-master sync, that scales from
   big data to mobile, with an intuitive HTTP/JSON API and designed for
diff --git a/docs/couchdb-2.4.0.tgz b/docs/couchdb-2.4.0.tgz
new file mode 100644
index 0000000..916f501
Binary files /dev/null and b/docs/couchdb-2.4.0.tgz differ
diff --git a/docs/index.yaml b/docs/index.yaml
index 944494b..7dda827 100644
--- a/docs/index.yaml
+++ b/docs/index.yaml
@@ -3,7 +3,30 @@ entries:
   couchdb:
   - apiVersion: v1
     appVersion: 2.3.1
-    created: "2019-10-30T16:35:32.516156223+01:00"
+    created: 2019-10-31T09:24:23.82691Z
+    description: A database featuring seamless multi-master sync, that scales from
+      big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
+    digest: daddf6cc7fe8bb63d6fa8679565d4496d92c23d9ff85b19521fca74c6412bc11
+    home: https://couchdb.apache.org/
+    icon: http://couchdb.apache.org/CouchDB-visual-identity/logo/CouchDB-couch-symbol.svg
+    keywords:
+    - couchdb
+    - database
+    - nosql
+    maintainers:
+    - email: kocolosk@apache.org
+      name: kocolosk
+    - email: willholley@apache.org
+      name: willholley
+    name: couchdb
+    sources:
+    - https://github.com/apache/couchdb-docker
+    urls:
+    - https://apache.github.io/couchdb-helm/couchdb-2.4.0.tgz
+    version: 2.4.0
+  - apiVersion: v1
+    appVersion: 2.3.1
+    created: 2019-10-31T09:24:23.825167Z
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
     digest: 0eba7c20ec47bc8556b3cb3b5137b578d46b37397493087d61b8199066f84782
@@ -26,7 +49,7 @@ entries:
     version: 2.3.0
   - apiVersion: v1
     appVersion: 2.3.1
-    created: "2019-10-30T16:35:32.515759808+01:00"
+    created: 2019-10-31T09:24:23.82274Z
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
     digest: f68e6187c2b65a02fdde9d49ec38e76a68c3d82421e5ea9e599bac87f4193c6a
@@ -47,4 +70,4 @@ entries:
     urls:
     - https://apache.github.io/couchdb-helm/couchdb-2.2.0.tgz
     version: 2.2.0
-generated: "2019-10-30T16:35:32.515247385+01:00"
+generated: 2019-10-31T09:24:23.77682Z


[couchdb-helm] 06/26: Maintain chart repo in master branch

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit 930c909172470e39ae7bb9efc9abaac35176cea3
Author: Will Holley <wi...@gmail.com>
AuthorDate: Tue Oct 22 14:02:07 2019 +0100

    Maintain chart repo in master branch
    
    Previously we used a branch gh-pages to serve the Helm repository
    but I think it's simpler to just use a subdirectory instead.
    
    This commit adds a /docs subdirectory which contains the static
    helm repository content. GitHub pages can then be updated to
    point to this.
---
 .github/PULL_REQUEST_TEMPLATE.md |   1 +
 Makefile                         |  12 ++----------
 README.md                        |  13 ++-----------
 docs/couchdb-2.2.0.tgz           | Bin 0 -> 7337 bytes
 docs/index.yaml                  |  25 +++++++++++++++++++++++++
 5 files changed, 30 insertions(+), 21 deletions(-)

diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index fd7bedc..a1db437 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -33,3 +33,4 @@ Please make sure you test your changes before you push them.
 - [ ] Chart Version bumped
 - [ ] e2e tests pass
 - [ ] Variables are documented in the README.md
+- [ ] Chart tgz added to /docs and index updated
diff --git a/Makefile b/Makefile
index 6963b96..bf58f7e 100644
--- a/Makefile
+++ b/Makefile
@@ -16,18 +16,10 @@ SHELL=/bin/bash
 lint:
 	@helm lint couchdb
 
-.PHONY: package
-package: lint
-	@helm package couchdb
-
 .PHONY: publish
-publish:
-	@git checkout gh-pages
-	@git checkout -b gh-pages-update
+publish: lint
+	@helm package couchdb -d docs
 	@helm repo index docs --url https://apache.github.io/couchdb-helm
-	@git add -i
-	@git commit
-	@echo "To complete the publish step, push the branch to your GitHub remote and create a PR against gh-pages"
 
 # Run end to end tests using KinD
 .PHONY: test
diff --git a/README.md b/README.md
index b17607b..a70af73 100644
--- a/README.md
+++ b/README.md
@@ -14,17 +14,8 @@ deploy using the default options and Helm.
 
 ## Releasing
 
-The Helm chart is published to a Helm epository hosted by GitHub pages. This is maintained in the `gh-pages` branch of this repository.
-
-To publish a new release, perform the following steps:
-
- 1. Create a Helm bundle (*.tgz) for the current couchdb chart
- 2. Switch to the `gh-pages` branch
- 3. Run `helm repo index docs --url https://apache.github.io/couchdb-helm` to generate the Helm repository index
- 4. `git add` the tgz bundle and the `index.yaml` files. Do not delete the old chart bundles!
- 5. Commit the changes and create a PR to `gh-pages`.
-
-`make publish` automates these steps for you.
+Chart versions are immutable. On every version change, `make publish` should be
+run to create a new chart bundle and update the repostory metadata.
 
 ## Feedback / Issues / Contributing
 
diff --git a/docs/couchdb-2.2.0.tgz b/docs/couchdb-2.2.0.tgz
new file mode 100644
index 0000000..f58cc55
Binary files /dev/null and b/docs/couchdb-2.2.0.tgz differ
diff --git a/docs/index.yaml b/docs/index.yaml
new file mode 100644
index 0000000..6be4b54
--- /dev/null
+++ b/docs/index.yaml
@@ -0,0 +1,25 @@
+apiVersion: v1
+entries:
+  couchdb:
+  - apiVersion: v1
+    appVersion: 2.3.1
+    created: 2019-10-22T14:09:08.422421+01:00
+    description: A database featuring seamless multi-master sync, that scales from
+      big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
+    digest: d4ec1447c437f26418db46de4b7fe7be928f7341b62915ef263350578c95cf12
+    home: https://couchdb.apache.org/
+    icon: http://couchdb.apache.org/CouchDB-visual-identity/logo/CouchDB-couch-symbol.svg
+    keywords:
+    - couchdb
+    - database
+    - nosql
+    maintainers:
+    - email: kocolosk@apache.org
+      name: kocolosk
+    name: couchdb
+    sources:
+    - https://github.com/apache/couchdb-docker
+    urls:
+    - https://apache.github.io/couchdb-helm/couchdb-2.2.0.tgz
+    version: 2.2.0
+generated: 2019-10-22T14:09:08.421343+01:00


[couchdb-helm] 13/26: Include pod tolerations in statefulset

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit a3f8c1cbb4bd5fd4ad2a7b61c52f6b3d1b5e68d4
Author: Will Holley <wi...@gmail.com>
AuthorDate: Tue Oct 22 14:24:25 2019 +0100

    Include pod tolerations in statefulset
    
    Ported from https://github.com/helm/charts/pull/17079/.
    
    Co-authored-by: jayenzo <jw...@gmail.com>
---
 couchdb/README.md                  | 1 +
 couchdb/templates/statefulset.yaml | 4 ++++
 couchdb/values.yaml                | 3 +++
 3 files changed, 8 insertions(+)

diff --git a/couchdb/README.md b/couchdb/README.md
index 0f3c90d..ccd3596 100644
--- a/couchdb/README.md
+++ b/couchdb/README.md
@@ -133,6 +133,7 @@ A variety of other parameters are also configurable. See the comments in the
 | `podManagementPolicy`           | Parallel                               |
 | `affinity`                      |                                        |
 | `annotations`                   |                                        |
+| `tolerations`                   |                                        |
 | `resources`                     |                                        |
 | `service.annotations`           |                                        |
 | `service.enabled`               | true                                   |
diff --git a/couchdb/templates/statefulset.yaml b/couchdb/templates/statefulset.yaml
index 416b594..3e70bdc 100644
--- a/couchdb/templates/statefulset.yaml
+++ b/couchdb/templates/statefulset.yaml
@@ -109,6 +109,10 @@ spec:
       nodeSelector:
 {{ toYaml .Values.nodeSelector | indent 8 }}
 {{- end }}
+{{- with .Values.tolerations }}
+      tolerations:
+{{ toYaml . | indent 8 }}
+{{- end }}
 {{- with .Values.affinity }}
       affinity:
 {{ toYaml . | indent 8 }}
diff --git a/couchdb/values.yaml b/couchdb/values.yaml
index cbff0f9..ecdd0d1 100644
--- a/couchdb/values.yaml
+++ b/couchdb/values.yaml
@@ -83,6 +83,9 @@ affinity:
 ## Optional pod annotations
 annotations:
 
+## Optional tolerations
+tolerations:
+
 ## A StatefulSet requires a headless Service to establish the stable network
 ## identities of the Pods, and that Service is created automatically by this
 ## chart without any additional configuration. The Service block below refers


[couchdb-helm] 16/26: Update to support kube 1.16 changes

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit 5b205f5f6304365c1628b39019972493b25349bf
Author: Will Holley <wi...@gmail.com>
AuthorDate: Tue Oct 22 18:17:32 2019 +0100

    Update to support kube 1.16 changes
    
    Port from https://github.com/helm/charts/pull/17683
    
    Co-authored-by: Kevin Lau <ke...@gmail.com>
---
 couchdb/README.md                  | 3 ++-
 couchdb/templates/ingress.yaml     | 2 +-
 couchdb/templates/statefulset.yaml | 2 +-
 test/e2e-kind.sh                   | 2 +-
 4 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/couchdb/README.md b/couchdb/README.md
index 0d786e3..fe70ebf 100644
--- a/couchdb/README.md
+++ b/couchdb/README.md
@@ -20,7 +20,8 @@ $ helm install couchdb/couchdb --set allowAdminParty=true
 
 ## Prerequisites
 
-- Kubernetes 1.8+ with Beta APIs enabled
+- Kubernetes 1.9+ with Beta APIs enabled
+- Ingress requires Kubernetes 1.14+
 
 ## Installing the Chart
 
diff --git a/couchdb/templates/ingress.yaml b/couchdb/templates/ingress.yaml
index 3eefddd..5131a6a 100644
--- a/couchdb/templates/ingress.yaml
+++ b/couchdb/templates/ingress.yaml
@@ -1,7 +1,7 @@
 {{- if .Values.ingress.enabled -}}
 {{- $serviceName := include "couchdb.fullname" . -}}
 {{- $servicePort := .Values.service.externalPort -}}
-apiVersion: extensions/v1beta1
+apiVersion: networking.k8s.io/v1beta1
 kind: Ingress
 metadata:
   name: {{ template "couchdb.fullname" . }}
diff --git a/couchdb/templates/statefulset.yaml b/couchdb/templates/statefulset.yaml
index 1e0985b..7c7b744 100644
--- a/couchdb/templates/statefulset.yaml
+++ b/couchdb/templates/statefulset.yaml
@@ -1,4 +1,4 @@
-apiVersion: apps/v1beta2
+apiVersion:  apps/v1
 kind: StatefulSet
 metadata:
   name: {{ template "couchdb.fullname" . }}
diff --git a/test/e2e-kind.sh b/test/e2e-kind.sh
index 4301343..4cb57b4 100755
--- a/test/e2e-kind.sh
+++ b/test/e2e-kind.sh
@@ -80,7 +80,7 @@ install_local-path-provisioner() {
 }
 
 install_charts() {
-    docker_exec ct lint-and-install --chart-repos couchdb=https://apache.github.io/couchdb-helm --chart-dirs .
+    docker_exec ct lint-and-install --charts couchdb --upgrade --chart-dirs .
     echo
 }
 


[couchdb-helm] 01/26: Initial import from http://github.com/helm/charts/stable

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit 3e77c490f04ed7ae9f6c8f87da0b5a82d6bea231
Author: Will Holley <wi...@gmail.com>
AuthorDate: Wed Oct 9 09:49:22 2019 +0100

    Initial import from http://github.com/helm/charts/stable
---
 .helmignore                |  21 +++++++
 Chart.yaml                 |  18 ++++++
 README.md                  | 133 ++++++++++++++++++++++++++++++++++++++++
 templates/NOTES.txt        |  20 ++++++
 templates/_helpers.tpl     |  63 +++++++++++++++++++
 templates/configmap.yaml   |  21 +++++++
 templates/headless.yaml    |  17 ++++++
 templates/ingress.yaml     |  32 ++++++++++
 templates/secrets.yaml     |  16 +++++
 templates/service.yaml     |  23 +++++++
 templates/statefulset.yaml | 149 +++++++++++++++++++++++++++++++++++++++++++++
 values.yaml                | 145 +++++++++++++++++++++++++++++++++++++++++++
 12 files changed, 658 insertions(+)

diff --git a/.helmignore b/.helmignore
new file mode 100644
index 0000000..f0c1319
--- /dev/null
+++ b/.helmignore
@@ -0,0 +1,21 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
diff --git a/Chart.yaml b/Chart.yaml
new file mode 100644
index 0000000..1d33948
--- /dev/null
+++ b/Chart.yaml
@@ -0,0 +1,18 @@
+apiVersion: v1
+name: couchdb
+version: 2.2.0
+appVersion: 2.3.1
+description: A database featuring seamless multi-master sync, that scales from
+  big data to mobile, with an intuitive HTTP/JSON API and designed for
+  reliability.
+keywords:
+  - couchdb
+  - database
+  - nosql
+home: https://couchdb.apache.org/
+sources:
+  - https://github.com/apache/couchdb-docker
+maintainers:
+  - name: kocolosk
+    email: kocolosk@apache.org
+icon: http://couchdb.apache.org/CouchDB-visual-identity/logo/CouchDB-couch-symbol.svg
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..53737e9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,133 @@
+# CouchDB
+
+Apache CouchDB is a database featuring seamless multi-master sync, that scales
+from big data to mobile, with an intuitive HTTP/JSON API and designed for
+reliability.
+
+This chart deploys a CouchDB cluster as a StatefulSet. It creates a ClusterIP
+Service in front of the Deployment for load balancing by default, but can also
+be configured to deploy other Service types or an Ingress Controller. The
+default persistence mechanism is simply the ephemeral local filesystem, but
+production deployments should set `persistentVolume.enabled` to `true` to attach
+storage volumes to each Pod in the Deployment.
+
+## TL;DR
+
+```bash
+$ helm install stable/couchdb --set allowAdminParty=true
+```
+
+## Prerequisites
+
+- Kubernetes 1.8+ with Beta APIs enabled
+
+## Installing the Chart
+
+To install the chart with the release name `my-release`:
+
+```bash
+$ helm install --name my-release stable/couchdb
+```
+
+This will create a Secret containing the admin credentials for the cluster.
+Those credentials can be retrieved as follows:
+
+```bash
+$ kubectl get secret my-release-couchdb -o go-template='{{ .data.adminPassword }}' | base64 --decode
+```
+
+If you prefer to configure the admin credentials directly you can create a
+Secret containing `adminUsername`, `adminPassword` and `cookieAuthSecret` keys:
+
+```bash
+$  kubectl create secret generic my-release-couchdb --from-literal=adminUsername=foo --from-literal=adminPassword=bar --from-literal=cookieAuthSecret=baz
+```
+
+and then install the chart while overriding the `createAdminSecret` setting:
+
+```bash
+$ helm install --name my-release --set createAdminSecret=false stable/couchdb
+```
+
+This Helm chart deploys CouchDB on the Kubernetes cluster in a default
+configuration. The [configuration](#configuration) section lists
+the parameters that can be configured during installation.
+
+> **Tip**: List all releases using `helm list`
+
+## Uninstalling the Chart
+
+To uninstall/delete the `my-release` Deployment:
+
+```bash
+$ helm delete my-release
+```
+
+The command removes all the Kubernetes components associated with the chart and
+deletes the release.
+
+## Upgrading an existing Release to a new major version
+
+A major chart version change (like v0.2.3 -> v1.0.0) indicates that there is an
+incompatible breaking change needing manual actions.
+
+### 1.0.0
+
+This version removes the `chart` and `heritage` labels from the
+`volumeClaimTemplates` which is immutable and prevents chart from being upgraded
+(see https://github.com/helm/charts/issues/7803 for details).
+
+In order to upgrade, delete the CouchDB StatefulSet before upgrading:
+
+```bash
+$ kubectl delete statefulsets --cascade=false my-release-couchdb
+```
+
+## Configuration
+
+The following table lists the most commonly configured parameters of the
+CouchDB chart and their default values:
+
+|           Parameter             |             Description                               |                Default                 |
+|---------------------------------|-------------------------------------------------------|----------------------------------------|
+| `clusterSize`                   | The initial number of nodes in the CouchDB cluster    | 3                                      |
+| `couchdbConfig`                 | Map allowing override elements of server .ini config  | chttpd.bind_address=any                |
+| `allowAdminParty`               | If enabled, start cluster without admin account       | false (requires creating a Secret)     |
+| `createAdminSecret`             | If enabled, create an admin account and cookie secret | true                                   |
+| `schedulerName`                 | Name of the k8s scheduler (other than default)        | `nil`                                  |
+| `erlangFlags`                   | Map of flags supplied to the underlying Erlang VM     | name: couchdb, setcookie: monster
+| `persistentVolume.enabled`      | Boolean determining whether to attach a PV to each node | false
+| `persistentVolume.size`         | If enabled, the size of the persistent volume to attach                          | 10Gi
+| `enableSearch`                  | Adds a sidecar for Lucene-powered text search         | false                                  |
+
+A variety of other parameters are also configurable. See the comments in the
+`values.yaml` file for further details:
+
+|           Parameter             |                Default                 |
+|---------------------------------|----------------------------------------|
+| `adminUsername`                 | admin                                  |
+| `adminPassword`                 | auto-generated                         |
+| `cookieAuthSecret`              | auto-generated                         |
+| `image.repository`              | couchdb                                |
+| `image.tag`                     | 2.3.1                                  |
+| `image.pullPolicy`              | IfNotPresent                           |
+| `searchImage.repository`        | kocolosk/couchdb-search                |
+| `searchImage.tag`               | 0.1.0                                  |
+| `searchImage.pullPolicy`        | IfNotPresent                           |
+| `initImage.repository`          | busybox                                |
+| `initImage.tag`                 | latest                                 |
+| `initImage.pullPolicy`          | Always                                 |
+| `ingress.enabled`               | false                                  |
+| `ingress.hosts`                 | chart-example.local                    |
+| `ingress.annotations`           |                                        |
+| `ingress.tls`                   |                                        |
+| `persistentVolume.accessModes`  | ReadWriteOnce                          |
+| `persistentVolume.storageClass` | Default for the Kube cluster           |
+| `podManagementPolicy`           | Parallel                               |
+| `affinity`                      |                                        |
+| `resources`                     |                                        |
+| `service.annotations`           |                                        |
+| `service.enabled`               | true                                   |
+| `service.type`                  | ClusterIP                              |
+| `service.externalPort`          | 5984                                   |
+| `dns.clusterDomainSuffix`       | cluster.local                          |
diff --git a/templates/NOTES.txt b/templates/NOTES.txt
new file mode 100644
index 0000000..a3658bd
--- /dev/null
+++ b/templates/NOTES.txt
@@ -0,0 +1,20 @@
+Apache CouchDB is starting. Check the status of the Pods using:
+
+  kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "couchdb.name" . }},release={{ .Release.Name }}"
+
+Once all of the Pods are fully Ready, execute the following command to create
+some required system databases:
+
+  kubectl exec --namespace {{ .Release.Namespace }} {{ if not .Values.allowAdminParty }}-it {{ end }}{{ template "couchdb.fullname" . }}-0 -c couchdb -- \
+    curl -s \
+    http://127.0.0.1:5984/_cluster_setup \
+    -X POST \
+    -H "Content-Type: application/json" \
+{{- if .Values.allowAdminParty }}
+    -d '{"action": "finish_cluster"}'
+{{- else }}
+    -d '{"action": "finish_cluster"}' \
+    -u <adminUsername>
+{{- end }}
+
+Then it's time to relax.
diff --git a/templates/_helpers.tpl b/templates/_helpers.tpl
new file mode 100644
index 0000000..0450a66
--- /dev/null
+++ b/templates/_helpers.tpl
@@ -0,0 +1,63 @@
+{{/* vim: set filetype=mustache: */}}
+{{/*
+Expand the name of the chart.
+*/}}
+{{- define "couchdb.name" -}}
+{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+
+{{/*
+Create a default fully qualified app name.
+We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
+*/}}
+{{- define "couchdb.fullname" -}}
+{{- if .Values.fullnameOverride -}}
+{{- printf "%s-%s" .Values.fullnameOverride .Chart.Name | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+In the event that we create both a headless service and a traditional one,
+ensure that the latter gets a unique name.
+*/}}
+{{- define "couchdb.svcname" -}}
+{{- if .Values.fullnameOverride -}}
+{{- printf "%s-svc-%s" .Values.fullnameOverride .Chart.Name | trunc 63 | trimSuffix "-" -}}
+{{- else -}}
+{{- $name := default .Chart.Name .Values.nameOverride -}}
+{{- printf "%s-svc-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Create a random string if the supplied key does not exist
+*/}}
+{{- define "couchdb.defaultsecret" -}}
+{{- if . -}}
+{{- . | b64enc | quote -}}
+{{- else -}}
+{{- randAlphaNum 20 | b64enc | quote -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Labels used to define Pods in the CouchDB statefulset
+*/}}
+{{- define "couchdb.ss.selector" -}}
+app: {{ template "couchdb.name" . }}
+release: {{ .Release.Name }}
+{{- end -}}
+
+{{/*
+Generates a comma delimited list of nodes in the cluster
+*/}}
+{{- define "couchdb.seedlist" -}}
+{{- $nodeCount :=  min 5 .Values.clusterSize | int }}
+  {{- range $index0 := until $nodeCount -}}
+    {{- $index1 := $index0 | add1 -}}
+    {{ $.Values.erlangFlags.name }}@{{ template "couchdb.fullname" $ }}-{{ $index0 }}.{{ template "couchdb.fullname" $ }}.{{ $.Release.Namespace }}.svc.{{ $.Values.dns.clusterDomainSuffix }}{{ if ne $index1 $nodeCount }},{{ end }}
+  {{- end -}}
+{{- end -}}
diff --git a/templates/configmap.yaml b/templates/configmap.yaml
new file mode 100644
index 0000000..3520b01
--- /dev/null
+++ b/templates/configmap.yaml
@@ -0,0 +1,21 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ template "couchdb.fullname" . }}
+  labels:
+    app: {{ template "couchdb.name" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+    heritage: {{ .Release.Service | quote }}
+    release: {{ .Release.Name | quote }}
+data:
+  inifile: |
+    {{ range $section, $settings := .Values.couchdbConfig -}}
+    {{ printf "[%s]" $section }}
+    {{ range $key, $value := $settings -}}
+    {{ printf "%s = %s" $key ($value | toString) }}
+    {{ end }}
+    {{ end }}
+
+  seedlistinifile: |
+    [cluster]
+    seedlist = {{ template "couchdb.seedlist" . }}
diff --git a/templates/headless.yaml b/templates/headless.yaml
new file mode 100644
index 0000000..0ce3ef0
--- /dev/null
+++ b/templates/headless.yaml
@@ -0,0 +1,17 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ template "couchdb.fullname" . }}
+  labels:
+    app: {{ template "couchdb.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  clusterIP: None
+  publishNotReadyAddresses: true
+  ports:
+    - name: couchdb
+      port: 5984
+  selector:
+{{ include "couchdb.ss.selector" . | indent 4 }}
diff --git a/templates/ingress.yaml b/templates/ingress.yaml
new file mode 100644
index 0000000..e73d7a5
--- /dev/null
+++ b/templates/ingress.yaml
@@ -0,0 +1,32 @@
+{{- if .Values.ingress.enabled -}}
+{{- $serviceName := include "couchdb.fullname" . -}}
+{{- $servicePort := .Values.service.externalPort -}}
+apiVersion: extensions/v1beta1
+kind: Ingress
+metadata:
+  name: {{ template "couchdb.fullname" . }}
+  labels:
+    app: {{ template "couchdb.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+  annotations:
+    {{- range $key, $value := .Values.ingress.annotations }}
+      {{ $key }}: {{ $value | quote }}
+    {{- end }}
+spec:
+  rules:
+    {{- range $host := .Values.ingress.hosts }}
+    - host: {{ $host }}
+      http:
+        paths:
+          - path: /
+            backend:
+              serviceName: {{ $serviceName }}
+              servicePort: {{ $servicePort }}
+    {{- end -}}
+  {{- if .Values.ingress.tls }}
+  tls:
+{{ toYaml .Values.ingress.tls | indent 4 }}
+  {{- end -}}
+{{- end -}}
diff --git a/templates/secrets.yaml b/templates/secrets.yaml
new file mode 100644
index 0000000..06513bb
--- /dev/null
+++ b/templates/secrets.yaml
@@ -0,0 +1,16 @@
+{{- if .Values.createAdminSecret -}}
+apiVersion: v1
+kind: Secret
+metadata:
+  name: {{ template "couchdb.fullname" . }}
+  labels:
+    app: {{ template "couchdb.fullname" . }}
+    chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
+    release: "{{ .Release.Name }}"
+    heritage: "{{ .Release.Service }}"
+type: Opaque
+data:
+  adminUsername: {{ template "couchdb.defaultsecret" .Values.adminUsername }}
+  adminPassword: {{ template "couchdb.defaultsecret" .Values.adminPassword }}
+  cookieAuthSecret: {{ template "couchdb.defaultsecret" .Values.cookieAuthSecret }}
+{{- end -}}
diff --git a/templates/service.yaml b/templates/service.yaml
new file mode 100644
index 0000000..6d03824
--- /dev/null
+++ b/templates/service.yaml
@@ -0,0 +1,23 @@
+{{- if .Values.service.enabled -}}
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ template "couchdb.svcname" . }}
+  labels:
+    app: {{ template "couchdb.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+{{- if .Values.service.annotations }}
+  annotations:
+{{ toYaml .Values.service.annotations | indent 4 }}
+{{- end }}
+spec:
+  ports:
+    - port: {{ .Values.service.externalPort }}
+      protocol: TCP
+      targetPort: 5984
+  type: {{ .Values.service.type }}
+  selector:
+{{ include "couchdb.ss.selector" . | indent 4 }}
+{{- end -}}
diff --git a/templates/statefulset.yaml b/templates/statefulset.yaml
new file mode 100644
index 0000000..fab2c36
--- /dev/null
+++ b/templates/statefulset.yaml
@@ -0,0 +1,149 @@
+apiVersion: apps/v1beta2
+kind: StatefulSet
+metadata:
+  name: {{ template "couchdb.fullname" . }}
+  labels:
+    app: {{ template "couchdb.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+spec:
+  replicas: {{ .Values.clusterSize }}
+  serviceName: {{ template "couchdb.fullname" . }}
+  podManagementPolicy: {{ .Values.podManagementPolicy }}
+  selector:
+    matchLabels:
+{{ include "couchdb.ss.selector" . | indent 6 }}
+  template:
+    metadata:
+      labels:
+{{ include "couchdb.ss.selector" . | indent 8 }}
+    spec:
+      {{- if .Values.schedulerName }}
+      schedulerName: "{{ .Values.schedulerName }}"
+      {{- end }}
+      initContainers:
+        - name: init-copy
+          image: "{{ .Values.initImage.repository }}:{{ .Values.initImage.tag }}"
+          imagePullPolicy: {{ .Values.initImage.pullPolicy }}
+          command: ['sh','-c','cp /tmp/chart.ini /default.d; cp /tmp/seedlist.ini /default.d; ls -lrt /default.d;']
+          volumeMounts:
+          - name: config
+            mountPath: /tmp/
+          - name: config-storage
+            mountPath: /default.d
+      containers:
+        - name: couchdb
+          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          ports:
+            - name: couchdb
+              containerPort: 5984
+            - name: epmd
+              containerPort: 4369
+            - containerPort: 9100
+          env:
+{{- if not .Values.allowAdminParty }}
+            - name: COUCHDB_USER
+              valueFrom:
+                secretKeyRef:
+                  name: {{ template "couchdb.fullname" . }}
+                  key: adminUsername
+            - name: COUCHDB_PASSWORD
+              valueFrom:
+                secretKeyRef:
+                  name: {{ template "couchdb.fullname" . }}
+                  key: adminPassword
+            - name: COUCHDB_SECRET
+              valueFrom:
+                secretKeyRef:
+                  name: {{ template "couchdb.fullname" . }}
+                  key: cookieAuthSecret
+{{- end }}
+            - name: ERL_FLAGS
+              value: "{{ range $k, $v := .Values.erlangFlags }} -{{ $k }} {{ $v }} {{ end }}"
+          livenessProbe:
+{{- if .Values.couchdbConfig.chttpd.require_valid_user }}
+            exec:
+              command:
+                - sh
+                - -c
+                - curl -G --silent --fail -u ${COUCHDB_USER}:${COUCHDB_PASSWORD} http://localhost:5984/
+{{- else }}
+            httpGet:
+              path: /
+              port: 5984
+{{- end }}
+          readinessProbe:
+{{- if .Values.couchdbConfig.chttpd.require_valid_user }}
+            exec:
+              command:
+                - sh
+                - -c
+                - curl -G --silent --fail -u ${COUCHDB_USER}:${COUCHDB_PASSWORD} http://localhost:5984/_up
+{{- else }}
+            httpGet:
+              path: /_up
+              port: 5984
+{{- end }}
+          resources:
+{{ toYaml .Values.resources | indent 12 }}
+          volumeMounts:
+          - name: config-storage
+            mountPath: /opt/couchdb/etc/default.d
+          - name: database-storage
+            mountPath: /opt/couchdb/data
+{{- if .Values.enableSearch }}
+        - name: clouseau
+          image: "{{ .Values.searchImage.repository }}:{{ .Values.searchImage.tag }}"
+          imagePullPolicy: {{ .Values.searchImage.pullPolicy }}
+          volumeMounts:
+          - name: database-storage
+            mountPath: /opt/couchdb-search/data
+{{- end }}
+{{- if .Values.nodeSelector }}
+      nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+{{- end }}
+{{- with .Values.affinity }}
+      affinity:
+{{ toYaml . | indent 8 }}
+{{- end }}
+      volumes:
+        - name: config-storage
+          emptyDir: {}
+        - name: config
+          configMap:
+            name: {{ template "couchdb.fullname" . }}
+            items:
+              - key: inifile
+                path: chart.ini
+              - key: seedlistinifile
+                path: seedlist.ini
+
+{{- if not .Values.persistentVolume.enabled }}
+        - name: database-storage
+          emptyDir: {}
+{{- else }}
+  volumeClaimTemplates:
+    - metadata:
+        name: database-storage
+        labels:
+          app: {{ template "couchdb.name" . }}
+          release: {{ .Release.Name }}
+      spec:
+        accessModes:
+        {{- range .Values.persistentVolume.accessModes }}
+          - {{ . | quote }}
+        {{- end }}
+        resources:
+          requests:
+            storage: {{ .Values.persistentVolume.size | quote }}
+      {{- if .Values.persistentVolume.storageClass }}
+      {{- if (eq "-" .Values.persistentVolume.storageClass) }}
+        storageClassName: ""
+      {{- else }}
+        storageClassName: "{{ .Values.persistentVolume.storageClass }}"
+      {{- end }}
+      {{- end }}
+{{- end }}
diff --git a/values.yaml b/values.yaml
new file mode 100644
index 0000000..e3461dd
--- /dev/null
+++ b/values.yaml
@@ -0,0 +1,145 @@
+## clusterSize is the initial size of the CouchDB cluster.
+clusterSize: 3
+
+## If allowAdminParty is enabled the cluster will start up without any database
+## administrator account; i.e., all users will be granted administrative
+## access. Otherwise, the system will look for a Secret called
+## <ReleaseName>-couchdb containing `adminUsername`, `adminPassword` and
+## `cookieAuthSecret` keys. See the `createAdminSecret` flag.
+## ref: https://kubernetes.io/docs/concepts/configuration/secret/
+allowAdminParty: false
+
+## If createAdminSecret is enabled a Secret called <ReleaseName>-couchdb will
+## be created containing auto-generated credentials. Users who prefer to set
+## these values themselves have a couple of options:
+##
+## 1) The `adminUsername`, `adminPassword`, and `cookieAuthSecret` can be
+##    defined directly in the chart's values. Note that all of a chart's values
+##    are currently stored in plaintext in a ConfigMap in the tiller namespace.
+##
+## 2) This flag can be disabled and a Secret with the required keys can be
+##    created ahead of time.
+createAdminSecret: true
+
+adminUsername: admin
+# adminPassword: this_is_not_secure
+# cookieAuthSecret: neither_is_this
+
+## Use an alternate scheduler, e.g. "stork".
+## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
+##
+# schedulerName:
+
+## The storage volume used by each Pod in the StatefulSet. If a
+## persistentVolume is not enabled, the Pods will use `emptyDir` ephemeral
+## local storage. Setting the storageClass attribute to "-" disables dynamic
+## provisioning of Persistent Volumes; leaving it unset will invoke the default
+## provisioner.
+persistentVolume:
+  enabled: false
+  accessModes:
+    - ReadWriteOnce
+  size: 10Gi
+  # storageClass: "-"
+
+## The CouchDB image
+image:
+  repository: couchdb
+  tag: 2.3.1
+  pullPolicy: IfNotPresent
+
+## Experimental integration with Lucene-powered fulltext search
+searchImage:
+  repository: kocolosk/couchdb-search
+  tag: 0.1.2
+  pullPolicy: IfNotPresent
+
+## Flip this to flag to include the Search container in each Pod
+enableSearch: false
+
+initImage:
+  repository: busybox
+  tag: latest
+  pullPolicy: Always
+
+## CouchDB is happy to spin up cluster nodes in parallel, but if you encounter
+## problems you can try setting podManagementPolicy to the StatefulSet default
+## `OrderedReady`
+podManagementPolicy: Parallel
+
+## To better tolerate Node failures, we can prevent Kubernetes scheduler from
+## assigning more than one Pod of CouchDB StatefulSet per Node using podAntiAffinity.
+affinity:
+  # podAntiAffinity:
+  #   requiredDuringSchedulingIgnoredDuringExecution:
+  #     - labelSelector:
+  #         matchExpressions:
+  #           - key: "app"
+  #             operator: In
+  #             values:
+  #             - couchdb
+  #       topologyKey: "kubernetes.io/hostname"
+
+## A StatefulSet requires a headless Service to establish the stable network
+## identities of the Pods, and that Service is created automatically by this
+## chart without any additional configuration. The Service block below refers
+## to a second Service that governs how clients connect to the CouchDB cluster.
+service:
+  # annotations:
+  enabled: true
+  type: ClusterIP
+  externalPort: 5984
+
+## An Ingress resource can provide name-based virtual hosting and TLS
+## termination among other things for CouchDB deployments which are accessed
+## from outside the Kubernetes cluster.
+## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
+ingress:
+  enabled: false
+  hosts:
+    - chart-example.local
+  annotations:
+    # kubernetes.io/ingress.class: nginx
+    # kubernetes.io/tls-acme: "true"
+  tls:
+    # Secrets must be manually created in the namespace.
+    # - secretName: chart-example-tls
+    #   hosts:
+    #     - chart-example.local
+
+## Optional resource requests and limits for the CouchDB container
+## ref: http://kubernetes.io/docs/user-guide/compute-resources/
+resources: {}
+  # requests:
+  #  cpu: 100m
+  #  memory: 128Mi
+  # limits:
+  #  cpu: 56
+  #  memory: 256Gi
+
+## erlangFlags is a map that is passed to the Erlang VM as flags using the
+## ERL_FLAGS env. `name` and `setcookie` flags are minimally required to
+## establish connectivity between cluster nodes.
+## ref: http://erlang.org/doc/man/erl.html#init_flags
+erlangFlags:
+  name: couchdb
+  setcookie: monster
+
+## couchdbConfig will override default CouchDB configuration settings.
+## The contents of this map are reformatted into a .ini file laid down
+## by a ConfigMap object.
+## ref: http://docs.couchdb.org/en/latest/config/index.html
+couchdbConfig:
+  # cluster:
+  #   q: 8 # Create 8 shards for each database
+  chttpd:
+    bind_address: any
+    # chttpd.require_valid_user disables all the anonymous requests to the port
+    # 5984 when is set to true.
+    require_valid_user: false
+
+
+# Kubernetes local cluster domain.
+# This is used to generate FQDNs for peers when joining the CouchDB cluster.
+dns:
+  clusterDomainSuffix: cluster.local


[couchdb-helm] 02/26: README and LICENSE

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit d49eb986dd1aec76a502c6da5825f8449cc27abd
Author: Will Holley <wi...@gmail.com>
AuthorDate: Wed Oct 9 10:11:42 2019 +0100

    README and LICENSE
---
 LICENSE   | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 README.md |  54 +++++++++++++----
 2 files changed, 246 insertions(+), 10 deletions(-)

diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..393b7a3
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright The Helm Authors.
+
+   Licensed 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.
diff --git a/README.md b/README.md
index 53737e9..a0bfc15 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,8 @@ storage volumes to each Pod in the Deployment.
 ## TL;DR
 
 ```bash
-$ helm install stable/couchdb --set allowAdminParty=true
+$ helm repo add couchdb https://apache.github.io/couchdb-helm
+$ helm install couchdb/couchdb --set allowAdminParty=true
 ```
 
 ## Prerequisites
@@ -25,8 +26,15 @@ $ helm install stable/couchdb --set allowAdminParty=true
 
 To install the chart with the release name `my-release`:
 
+Add the CouchDB Helm repository:
+
 ```bash
-$ helm install --name my-release stable/couchdb
+$ helm repo add couchdb https://apache.github.io/couchdb-helm
+```
+
+
+```bash
+$ helm install --name my-release couchdb/couchdb
 ```
 
 This will create a Secret containing the admin credentials for the cluster.
@@ -46,7 +54,7 @@ $  kubectl create secret generic my-release-couchdb --from-literal=adminUsername
 and then install the chart while overriding the `createAdminSecret` setting:
 
 ```bash
-$ helm install --name my-release --set createAdminSecret=false stable/couchdb
+$ helm install --name my-release --set createAdminSecret=false couchdb/couchdb
 ```
 
 This Helm chart deploys CouchDB on the Kubernetes cluster in a default
@@ -71,16 +79,14 @@ deletes the release.
 A major chart version change (like v0.2.3 -> v1.0.0) indicates that there is an
 incompatible breaking change needing manual actions.
 
-### 1.0.0
-
-This version removes the `chart` and `heritage` labels from the
-`volumeClaimTemplates` which is immutable and prevents chart from being upgraded
-(see https://github.com/helm/charts/issues/7803 for details).
+## Migrating from stable/couchdb
 
-In order to upgrade, delete the CouchDB StatefulSet before upgrading:
+This chart replaces the `stable/couchdb` chart previously hosted by Helm and continues the
+version semantics. You can upgrade directly from `stable/couchdb` to this chart using:
 
 ```bash
-$ kubectl delete statefulsets --cascade=false my-release-couchdb
+$ helm repo add couchdb https://apache.github.io/couchdb-helm
+$ helm upgrade my-release couchdb/couchdb
 ```
 
 ## Configuration
@@ -131,3 +137,31 @@ A variety of other parameters are also configurable. See the comments in the
 | `service.type`                  | ClusterIP                              |
 | `service.externalPort`          | 5984                                   |
 | `dns.clusterDomainSuffix`       | cluster.local                          |
+
+
+## Feedback, Issues, Contributing
+
+General feedback is welcome at our [user][1] or [developer][2] mailing lists.
+
+Apache CouchDB has a [CONTRIBUTING][3] file with details on how to get started
+with issue reporting or contributing to the upkeep of this project. In short,
+use GitHub Issues, do not report anything on Docker's website.
+
+## Non-Apache CouchDB Development Team Contributors
+
+- [@natarajaya](https://github.com/natarajaya)
+- [@satchpx](https://github.com/satchpx)
+- [@spanato](https://github.com/spanato)
+- [@jpds](https://github.com/jpds)
+- [@sebastien-prudhomme](https://github.com/sebastien-prudhomme)
+- [@stepanstipl](https://github.com/sebastien-stepanstipl)
+- [@amatas](https://github.com/amatas)
+- [@Chimney42](https://github.com/Chimney42)
+- [@mattjmcnaughton](https://github.com/mattjmcnaughton)
+- [@mainephd](https://github.com/mainephd)
+- [@AdamDang](https://github.com/AdamDang)
+- [@mrtyler](https://github.com/mrtyler)
+
+[1]: http://mail-archives.apache.org/mod_mbox/couchdb-user/
+[2]: http://mail-archives.apache.org/mod_mbox/couchdb-dev/
+[3]: https://github.com/apache/couchdb/blob/master/CONTRIBUTING.md


[couchdb-helm] 25/26: Bump chart version

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit bbf72019b3f40dccd012aa83f7cea8af68c2f6dc
Author: aikoven <da...@gmail.com>
AuthorDate: Mon Jan 6 12:56:54 2020 +0700

    Bump chart version
---
 couchdb/Chart.yaml     |   2 +-
 docs/couchdb-3.1.0.tgz | Bin 0 -> 8866 bytes
 docs/index.yaml        |  35 +++++++++++++++++++++++++++++------
 3 files changed, 30 insertions(+), 7 deletions(-)

diff --git a/couchdb/Chart.yaml b/couchdb/Chart.yaml
index fb44046..0cb7e3e 100644
--- a/couchdb/Chart.yaml
+++ b/couchdb/Chart.yaml
@@ -1,6 +1,6 @@
 apiVersion: v1
 name: couchdb
-version: 3.0.0
+version: 3.1.0
 appVersion: 2.3.1
 description: A database featuring seamless multi-master sync, that scales from
   big data to mobile, with an intuitive HTTP/JSON API and designed for
diff --git a/docs/couchdb-3.1.0.tgz b/docs/couchdb-3.1.0.tgz
new file mode 100644
index 0000000..7d30998
Binary files /dev/null and b/docs/couchdb-3.1.0.tgz differ
diff --git a/docs/index.yaml b/docs/index.yaml
index a3325cc..ca2a27a 100644
--- a/docs/index.yaml
+++ b/docs/index.yaml
@@ -3,7 +3,30 @@ entries:
   couchdb:
   - apiVersion: v1
     appVersion: 2.3.1
-    created: "2019-11-20T17:05:05.503189523+01:00"
+    created: "2020-01-06T12:56:30.320674+07:00"
+    description: A database featuring seamless multi-master sync, that scales from
+      big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
+    digest: c6e72b6d9d7befc8ec015852e1bf74476222953ebcd2803ac33c1c0491f96d16
+    home: https://couchdb.apache.org/
+    icon: http://couchdb.apache.org/CouchDB-visual-identity/logo/CouchDB-couch-symbol.svg
+    keywords:
+    - couchdb
+    - database
+    - nosql
+    maintainers:
+    - email: kocolosk@apache.org
+      name: kocolosk
+    - email: willholley@apache.org
+      name: willholley
+    name: couchdb
+    sources:
+    - https://github.com/apache/couchdb-docker
+    urls:
+    - https://apache.github.io/couchdb-helm/couchdb-3.1.0.tgz
+    version: 3.1.0
+  - apiVersion: v1
+    appVersion: 2.3.1
+    created: "2020-01-06T12:56:30.32018+07:00"
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
     digest: 7770f1c19e948d9928eeed4f11ff960e598149bb5c0ae3e1f546b61e9dfb65f4
@@ -26,7 +49,7 @@ entries:
     version: 3.0.0
   - apiVersion: v1
     appVersion: 2.3.1
-    created: "2019-11-20T17:05:05.500168632+01:00"
+    created: "2020-01-06T12:56:30.319392+07:00"
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
     digest: db0815c2766f76049b58d0954b66e0b70bf673a7d11c1d3cd9e07c775c646c12
@@ -49,7 +72,7 @@ entries:
     version: 2.4.1
   - apiVersion: v1
     appVersion: 2.3.1
-    created: "2019-11-20T17:05:05.499725352+01:00"
+    created: "2020-01-06T12:56:30.318616+07:00"
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
     digest: daddf6cc7fe8bb63d6fa8679565d4496d92c23d9ff85b19521fca74c6412bc11
@@ -72,7 +95,7 @@ entries:
     version: 2.4.0
   - apiVersion: v1
     appVersion: 2.3.1
-    created: "2019-11-20T17:05:05.499039305+01:00"
+    created: "2020-01-06T12:56:30.317835+07:00"
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
     digest: 0eba7c20ec47bc8556b3cb3b5137b578d46b37397493087d61b8199066f84782
@@ -95,7 +118,7 @@ entries:
     version: 2.3.0
   - apiVersion: v1
     appVersion: 2.3.1
-    created: "2019-11-20T17:05:05.498407349+01:00"
+    created: "2020-01-06T12:56:30.316893+07:00"
     description: A database featuring seamless multi-master sync, that scales from
       big data to mobile, with an intuitive HTTP/JSON API and designed for reliability.
     digest: f68e6187c2b65a02fdde9d49ec38e76a68c3d82421e5ea9e599bac87f4193c6a
@@ -116,4 +139,4 @@ entries:
     urls:
     - https://apache.github.io/couchdb-helm/couchdb-2.2.0.tgz
     version: 2.2.0
-generated: "2019-11-20T17:05:05.497677063+01:00"
+generated: "2020-01-06T12:56:30.315772+07:00"


[couchdb-helm] 14/26: Add ServiceAccount support

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit 8bba11edd09656abefe9058a1dc400d7d985895f
Author: Will Holley <wi...@gmail.com>
AuthorDate: Tue Oct 22 14:28:54 2019 +0100

    Add ServiceAccount support
    
    Ported from https://github.com/helm/charts/pull/17254.
---
 couchdb/README.md                     | 66 ++++++++++++++++++-----------------
 couchdb/templates/_helpers.tpl        | 11 ++++++
 couchdb/templates/serviceaccount.yaml | 15 ++++++++
 couchdb/templates/statefulset.yaml    |  3 ++
 couchdb/values.yaml                   |  8 +++++
 5 files changed, 71 insertions(+), 32 deletions(-)

diff --git a/couchdb/README.md b/couchdb/README.md
index ccd3596..937c1d3 100644
--- a/couchdb/README.md
+++ b/couchdb/README.md
@@ -109,38 +109,40 @@ CouchDB chart and their default values:
 A variety of other parameters are also configurable. See the comments in the
 `values.yaml` file for further details:
 
-|           Parameter             |                Default                 |
-|---------------------------------|----------------------------------------|
-| `adminUsername`                 | admin                                  |
-| `adminPassword`                 | auto-generated                         |
-| `cookieAuthSecret`              | auto-generated                         |
-| `image.repository`              | couchdb                                |
-| `image.tag`                     | 2.3.1                                  |
-| `image.pullPolicy`              | IfNotPresent                           |
-| `searchImage.repository`        | kocolosk/couchdb-search                |
-| `searchImage.tag`               | 0.1.0                                  |
-| `searchImage.pullPolicy`        | IfNotPresent                           |
-| `initImage.repository`          | busybox                                |
-| `initImage.tag`                 | latest                                 |
-| `initImage.pullPolicy`          | Always                                 |
-| `ingress.enabled`               | false                                  |
-| `ingress.hosts`                 | chart-example.local                    |
-| `ingress.path`                  | /                                      |
-| `ingress.annotations`           |                                        |
-| `ingress.tls`                   |                                        |
-| `persistentVolume.accessModes`  | ReadWriteOnce                          |
-| `persistentVolume.storageClass` | Default for the Kube cluster           |
-| `podManagementPolicy`           | Parallel                               |
-| `affinity`                      |                                        |
-| `annotations`                   |                                        |
-| `tolerations`                   |                                        |
-| `resources`                     |                                        |
-| `service.annotations`           |                                        |
-| `service.enabled`               | true                                   |
-| `service.type`                  | ClusterIP                              |
-| `service.externalPort`          | 5984                                   |
-| `dns.clusterDomainSuffix`       | cluster.local                          |
-
+|           Parameter               |                Default                 |
+|-----------------------------------|----------------------------------------|
+| `adminUsername`                   | admin                                  |
+| `adminPassword`                   | auto-generated                         |
+| `cookieAuthSecret`                | auto-generated                         |
+| `image.repository`                | couchdb                                |
+| `image.tag`                       | 2.3.1                                  |
+| `image.pullPolicy`                | IfNotPresent                           |
+| `searchImage.repository`          | kocolosk/couchdb-search                |
+| `searchImage.tag`                 | 0.1.0                                  |
+| `searchImage.pullPolicy`          | IfNotPresent                           |
+| `initImage.repository`            | busybox                                |
+| `initImage.tag`                   | latest                                 |
+| `initImage.pullPolicy`            | Always                                 |
+| `ingress.enabled`                 | false                                  |
+| `ingress.hosts`                   | chart-example.local                    |
+| `ingress.annotations`             |                                        |
+| `ingress.path`                    | /                                      |
+| `ingress.tls`                     |                                        |
+| `persistentVolume.accessModes`    | ReadWriteOnce                          |
+| `persistentVolume.storageClass`   | Default for the Kube cluster           |
+| `podManagementPolicy`             | Parallel                               |
+| `affinity`                        |                                        |
+| `annotations`                     |                                        |
+| `tolerations`                     |                                        |
+| `resources`                       |                                        |
+| `service.annotations`             |                                        |
+| `service.enabled`                 | true                                   |
+| `service.type`                    | ClusterIP                              |
+| `service.externalPort`            | 5984                                   |
+| `dns.clusterDomainSuffix`         | cluster.local                          |
+| `serviceAccount.enabled`          | true                                   |
+| `serviceAccount.create`           | true                                   |
+| `serviceAccount.imagePullSecrets` |                                        |
 
 ## Feedback, Issues, Contributing
 
diff --git a/couchdb/templates/_helpers.tpl b/couchdb/templates/_helpers.tpl
index 0450a66..3a9288f 100644
--- a/couchdb/templates/_helpers.tpl
+++ b/couchdb/templates/_helpers.tpl
@@ -61,3 +61,14 @@ Generates a comma delimited list of nodes in the cluster
     {{ $.Values.erlangFlags.name }}@{{ template "couchdb.fullname" $ }}-{{ $index0 }}.{{ template "couchdb.fullname" $ }}.{{ $.Release.Namespace }}.svc.{{ $.Values.dns.clusterDomainSuffix }}{{ if ne $index1 $nodeCount }},{{ end }}
   {{- end -}}
 {{- end -}}
+
+{{/*
+If serviceAccount.name is specified, use that, else use the couchdb instance name
+*/}}
+{{- define "couchdb.serviceAccount" -}}
+{{- if .Values.serviceAccount.name -}}
+{{- .Values.serviceAccount.name }}
+{{- else -}}
+{{- template "couchdb.fullname" . -}}
+{{- end -}}
+{{- end -}}
diff --git a/couchdb/templates/serviceaccount.yaml b/couchdb/templates/serviceaccount.yaml
new file mode 100644
index 0000000..bb82799
--- /dev/null
+++ b/couchdb/templates/serviceaccount.yaml
@@ -0,0 +1,15 @@
+{{- if .Values.serviceAccount.create }}
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: {{ template "couchdb.serviceAccount" . }}
+  labels:
+    app: {{ template "couchdb.name" . }}
+    chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+    release: {{ .Release.Name }}
+    heritage: {{ .Release.Service }}
+{{- if .Values.serviceAccount.imagePullSecrets }}
+imagePullSecrets:
+{{ toYaml .Values.serviceAccount.imagePullSecrets }}
+{{- end }}
+{{- end }}
diff --git a/couchdb/templates/statefulset.yaml b/couchdb/templates/statefulset.yaml
index 3e70bdc..1e0985b 100644
--- a/couchdb/templates/statefulset.yaml
+++ b/couchdb/templates/statefulset.yaml
@@ -26,6 +26,9 @@ spec:
       {{- if .Values.schedulerName }}
       schedulerName: "{{ .Values.schedulerName }}"
       {{- end }}
+      {{- if .Values.serviceAccount.enabled }}
+      serviceAccountName: {{ template "couchdb.serviceAccount" . }}
+      {{- end }}
       initContainers:
         - name: init-copy
           image: "{{ .Values.initImage.repository }}:{{ .Values.initImage.tag }}"
diff --git a/couchdb/values.yaml b/couchdb/values.yaml
index ecdd0d1..089f90b 100644
--- a/couchdb/values.yaml
+++ b/couchdb/values.yaml
@@ -30,6 +30,14 @@ adminUsername: admin
 ##
 # schedulerName:
 
+# Use a service account
+serviceAccount:
+  enabled: true
+  create: true
+# name:
+# imagePullSecrets:
+# - name: myimagepullsecret
+
 ## The storage volume used by each Pod in the StatefulSet. If a
 ## persistentVolume is not enabled, the Pods will use `emptyDir` ephemeral
 ## local storage. Setting the storageClass attribute to "-" disables dynamic


[couchdb-helm] 03/26: Move chart to subdirectory

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit eee7141cfb84f9a429cb5c838b98d38800dbcc84
Author: Will Holley <wi...@gmail.com>
AuthorDate: Wed Oct 16 21:17:51 2019 +0100

    Move chart to subdirectory
---
 Makefile                                          |  27 ++++
 Chart.yaml => couchdb/Chart.yaml                  |   0
 couchdb/README.md                                 | 167 ++++++++++++++++++++++
 {templates => couchdb/templates}/NOTES.txt        |   0
 {templates => couchdb/templates}/_helpers.tpl     |   0
 {templates => couchdb/templates}/configmap.yaml   |   0
 {templates => couchdb/templates}/headless.yaml    |   0
 {templates => couchdb/templates}/ingress.yaml     |   0
 {templates => couchdb/templates}/secrets.yaml     |   0
 {templates => couchdb/templates}/service.yaml     |   0
 {templates => couchdb/templates}/statefulset.yaml |   0
 values.yaml => couchdb/values.yaml                |   0
 12 files changed, 194 insertions(+)

diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..1c80ce0
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,27 @@
+# Licensed 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.
+
+SHELL=/bin/bash
+
+.PHONY: test
+test:
+	@helm lint couchdb
+
+package: test
+	@helm package couchdb
+
+.PHONY: package
+publish: test
+	@git checkout gh-pages
+	@helm repo index docs --url https://apache.github.io/couchdb-helm
+	@git add -i
+	@echo "To complete the publish step, commit and push the chart tgz and updated index to gh-pages"
diff --git a/Chart.yaml b/couchdb/Chart.yaml
similarity index 100%
rename from Chart.yaml
rename to couchdb/Chart.yaml
diff --git a/couchdb/README.md b/couchdb/README.md
new file mode 100644
index 0000000..a0bfc15
--- /dev/null
+++ b/couchdb/README.md
@@ -0,0 +1,167 @@
+# CouchDB
+
+Apache CouchDB is a database featuring seamless multi-master sync, that scales
+from big data to mobile, with an intuitive HTTP/JSON API and designed for
+reliability.
+
+This chart deploys a CouchDB cluster as a StatefulSet. It creates a ClusterIP
+Service in front of the Deployment for load balancing by default, but can also
+be configured to deploy other Service types or an Ingress Controller. The
+default persistence mechanism is simply the ephemeral local filesystem, but
+production deployments should set `persistentVolume.enabled` to `true` to attach
+storage volumes to each Pod in the Deployment.
+
+## TL;DR
+
+```bash
+$ helm repo add couchdb https://apache.github.io/couchdb-helm
+$ helm install couchdb/couchdb --set allowAdminParty=true
+```
+
+## Prerequisites
+
+- Kubernetes 1.8+ with Beta APIs enabled
+
+## Installing the Chart
+
+To install the chart with the release name `my-release`:
+
+Add the CouchDB Helm repository:
+
+```bash
+$ helm repo add couchdb https://apache.github.io/couchdb-helm
+```
+
+
+```bash
+$ helm install --name my-release couchdb/couchdb
+```
+
+This will create a Secret containing the admin credentials for the cluster.
+Those credentials can be retrieved as follows:
+
+```bash
+$ kubectl get secret my-release-couchdb -o go-template='{{ .data.adminPassword }}' | base64 --decode
+```
+
+If you prefer to configure the admin credentials directly you can create a
+Secret containing `adminUsername`, `adminPassword` and `cookieAuthSecret` keys:
+
+```bash
+$  kubectl create secret generic my-release-couchdb --from-literal=adminUsername=foo --from-literal=adminPassword=bar --from-literal=cookieAuthSecret=baz
+```
+
+and then install the chart while overriding the `createAdminSecret` setting:
+
+```bash
+$ helm install --name my-release --set createAdminSecret=false couchdb/couchdb
+```
+
+This Helm chart deploys CouchDB on the Kubernetes cluster in a default
+configuration. The [configuration](#configuration) section lists
+the parameters that can be configured during installation.
+
+> **Tip**: List all releases using `helm list`
+
+## Uninstalling the Chart
+
+To uninstall/delete the `my-release` Deployment:
+
+```bash
+$ helm delete my-release
+```
+
+The command removes all the Kubernetes components associated with the chart and
+deletes the release.
+
+## Upgrading an existing Release to a new major version
+
+A major chart version change (like v0.2.3 -> v1.0.0) indicates that there is an
+incompatible breaking change needing manual actions.
+
+## Migrating from stable/couchdb
+
+This chart replaces the `stable/couchdb` chart previously hosted by Helm and continues the
+version semantics. You can upgrade directly from `stable/couchdb` to this chart using:
+
+```bash
+$ helm repo add couchdb https://apache.github.io/couchdb-helm
+$ helm upgrade my-release couchdb/couchdb
+```
+
+## Configuration
+
+The following table lists the most commonly configured parameters of the
+CouchDB chart and their default values:
+
+|           Parameter             |             Description                               |                Default                 |
+|---------------------------------|-------------------------------------------------------|----------------------------------------|
+| `clusterSize`                   | The initial number of nodes in the CouchDB cluster    | 3                                      |
+| `couchdbConfig`                 | Map allowing override elements of server .ini config  | chttpd.bind_address=any                |
+| `allowAdminParty`               | If enabled, start cluster without admin account       | false (requires creating a Secret)     |
+| `createAdminSecret`             | If enabled, create an admin account and cookie secret | true                                   |
+| `schedulerName`                 | Name of the k8s scheduler (other than default)        | `nil`                                  |
+| `erlangFlags`                   | Map of flags supplied to the underlying Erlang VM     | name: couchdb, setcookie: monster
+| `persistentVolume.enabled`      | Boolean determining whether to attach a PV to each node | false
+| `persistentVolume.size`         | If enabled, the size of the persistent volume to attach                          | 10Gi
+| `enableSearch`                  | Adds a sidecar for Lucene-powered text search         | false                                  |
+
+A variety of other parameters are also configurable. See the comments in the
+`values.yaml` file for further details:
+
+|           Parameter             |                Default                 |
+|---------------------------------|----------------------------------------|
+| `adminUsername`                 | admin                                  |
+| `adminPassword`                 | auto-generated                         |
+| `cookieAuthSecret`              | auto-generated                         |
+| `image.repository`              | couchdb                                |
+| `image.tag`                     | 2.3.1                                  |
+| `image.pullPolicy`              | IfNotPresent                           |
+| `searchImage.repository`        | kocolosk/couchdb-search                |
+| `searchImage.tag`               | 0.1.0                                  |
+| `searchImage.pullPolicy`        | IfNotPresent                           |
+| `initImage.repository`          | busybox                                |
+| `initImage.tag`                 | latest                                 |
+| `initImage.pullPolicy`          | Always                                 |
+| `ingress.enabled`               | false                                  |
+| `ingress.hosts`                 | chart-example.local                    |
+| `ingress.annotations`           |                                        |
+| `ingress.tls`                   |                                        |
+| `persistentVolume.accessModes`  | ReadWriteOnce                          |
+| `persistentVolume.storageClass` | Default for the Kube cluster           |
+| `podManagementPolicy`           | Parallel                               |
+| `affinity`                      |                                        |
+| `resources`                     |                                        |
+| `service.annotations`           |                                        |
+| `service.enabled`               | true                                   |
+| `service.type`                  | ClusterIP                              |
+| `service.externalPort`          | 5984                                   |
+| `dns.clusterDomainSuffix`       | cluster.local                          |
+
+
+## Feedback, Issues, Contributing
+
+General feedback is welcome at our [user][1] or [developer][2] mailing lists.
+
+Apache CouchDB has a [CONTRIBUTING][3] file with details on how to get started
+with issue reporting or contributing to the upkeep of this project. In short,
+use GitHub Issues, do not report anything on Docker's website.
+
+## Non-Apache CouchDB Development Team Contributors
+
+- [@natarajaya](https://github.com/natarajaya)
+- [@satchpx](https://github.com/satchpx)
+- [@spanato](https://github.com/spanato)
+- [@jpds](https://github.com/jpds)
+- [@sebastien-prudhomme](https://github.com/sebastien-prudhomme)
+- [@stepanstipl](https://github.com/sebastien-stepanstipl)
+- [@amatas](https://github.com/amatas)
+- [@Chimney42](https://github.com/Chimney42)
+- [@mattjmcnaughton](https://github.com/mattjmcnaughton)
+- [@mainephd](https://github.com/mainephd)
+- [@AdamDang](https://github.com/AdamDang)
+- [@mrtyler](https://github.com/mrtyler)
+
+[1]: http://mail-archives.apache.org/mod_mbox/couchdb-user/
+[2]: http://mail-archives.apache.org/mod_mbox/couchdb-dev/
+[3]: https://github.com/apache/couchdb/blob/master/CONTRIBUTING.md
diff --git a/templates/NOTES.txt b/couchdb/templates/NOTES.txt
similarity index 100%
rename from templates/NOTES.txt
rename to couchdb/templates/NOTES.txt
diff --git a/templates/_helpers.tpl b/couchdb/templates/_helpers.tpl
similarity index 100%
rename from templates/_helpers.tpl
rename to couchdb/templates/_helpers.tpl
diff --git a/templates/configmap.yaml b/couchdb/templates/configmap.yaml
similarity index 100%
rename from templates/configmap.yaml
rename to couchdb/templates/configmap.yaml
diff --git a/templates/headless.yaml b/couchdb/templates/headless.yaml
similarity index 100%
rename from templates/headless.yaml
rename to couchdb/templates/headless.yaml
diff --git a/templates/ingress.yaml b/couchdb/templates/ingress.yaml
similarity index 100%
rename from templates/ingress.yaml
rename to couchdb/templates/ingress.yaml
diff --git a/templates/secrets.yaml b/couchdb/templates/secrets.yaml
similarity index 100%
rename from templates/secrets.yaml
rename to couchdb/templates/secrets.yaml
diff --git a/templates/service.yaml b/couchdb/templates/service.yaml
similarity index 100%
rename from templates/service.yaml
rename to couchdb/templates/service.yaml
diff --git a/templates/statefulset.yaml b/couchdb/templates/statefulset.yaml
similarity index 100%
rename from templates/statefulset.yaml
rename to couchdb/templates/statefulset.yaml
diff --git a/values.yaml b/couchdb/values.yaml
similarity index 100%
rename from values.yaml
rename to couchdb/values.yaml


[couchdb-helm] 19/26: Merge pull request #2 from apache/port-helm-prs

Posted by wi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

willholley pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-helm.git

commit 2f98c4c0890e1f9f7ca6cf65909a080d8ace61fa
Merge: 2f1f27a d6fec58
Author: Will Holley <wi...@apache.org>
AuthorDate: Thu Oct 31 15:15:45 2019 +0000

    Merge pull request #2 from apache/port-helm-prs
    
    Port PRs from helm/stable

 couchdb/Chart.yaml                    |   2 +-
 couchdb/README.md                     |  71 +++++++++++++++++++---------------
 couchdb/templates/_helpers.tpl        |  11 ++++++
 couchdb/templates/ingress.yaml        |   2 +-
 couchdb/templates/networkpolicy.yaml  |  31 +++++++++++++++
 couchdb/templates/serviceaccount.yaml |  15 +++++++
 couchdb/templates/statefulset.yaml    |  13 ++++++-
 couchdb/values.yaml                   |  19 +++++++++
 docs/couchdb-2.4.0.tgz                | Bin 0 -> 7897 bytes
 docs/index.yaml                       |  29 ++++++++++++--
 test/e2e-kind.sh                      |   2 +-
 11 files changed, 157 insertions(+), 38 deletions(-)