From 65452bc4bb86c09d3037f01b3a1f580654fea03d Mon Sep 17 00:00:00 2001 From: bitnami-bot Date: Tue, 24 Apr 2018 06:39:26 +0000 Subject: [PATCH 1/3] Synchronize upstreamed folder to af9915e --- upstreamed/dokuwiki/Chart.yaml | 3 +- upstreamed/dokuwiki/OWNERS | 2 + upstreamed/dokuwiki/README.md | 41 +++-- upstreamed/dokuwiki/templates/deployment.yaml | 10 +- upstreamed/dokuwiki/values.yaml | 22 ++- upstreamed/ghost/Chart.yaml | 4 +- upstreamed/ghost/OWNERS | 2 + upstreamed/ghost/README.md | 13 +- upstreamed/ghost/templates/NOTES.txt | 2 +- upstreamed/ghost/templates/deployment.yaml | 8 +- upstreamed/ghost/values.yaml | 14 +- upstreamed/joomla/Chart.yaml | 4 +- upstreamed/joomla/OWNERS | 2 + upstreamed/joomla/README.md | 17 +- upstreamed/joomla/templates/deployment.yaml | 8 +- upstreamed/joomla/values.yaml | 22 ++- upstreamed/mongodb/Chart.yaml | 4 +- upstreamed/mongodb/OWNERS | 2 + upstreamed/mongodb/README.md | 59 +++--- upstreamed/mongodb/templates/NOTES.txt | 64 ++++++- upstreamed/mongodb/templates/_helpers.tpl | 9 + upstreamed/mongodb/templates/deployment.yaml | 24 ++- upstreamed/mongodb/templates/pvc.yaml | 2 +- upstreamed/mongodb/templates/secrets.yaml | 20 +- upstreamed/mongodb/templates/svc.yaml | 9 +- upstreamed/mongodb/values.yaml | 47 ++++- upstreamed/moodle/Chart.yaml | 4 +- upstreamed/moodle/OWNERS | 2 + upstreamed/moodle/README.md | 100 +++++----- upstreamed/moodle/templates/deployment.yaml | 10 +- upstreamed/moodle/values.yaml | 24 ++- upstreamed/odoo/Chart.yaml | 4 +- upstreamed/odoo/OWNERS | 2 + upstreamed/odoo/README.md | 51 +++--- upstreamed/odoo/templates/deployment.yaml | 12 +- upstreamed/odoo/values.yaml | 21 ++- upstreamed/opencart/Chart.yaml | 2 +- upstreamed/opencart/OWNERS | 2 + upstreamed/opencart/README.md | 17 +- upstreamed/opencart/templates/NOTES.txt | 2 +- upstreamed/opencart/templates/deployment.yaml | 10 +- upstreamed/opencart/values.yaml | 22 ++- upstreamed/owncloud/Chart.yaml | 2 +- upstreamed/owncloud/OWNERS | 2 + upstreamed/owncloud/README.md | 84 ++++----- upstreamed/owncloud/templates/deployment.yaml | 10 +- upstreamed/owncloud/values.yaml | 21 ++- upstreamed/parse/Chart.yaml | 2 +- upstreamed/parse/OWNERS | 2 + upstreamed/parse/README.md | 60 +++--- .../parse/templates/dashboard-deployment.yaml | 8 +- .../parse/templates/server-deployment.yaml | 8 +- upstreamed/parse/values.yaml | 34 ++-- upstreamed/rabbitmq/Chart.yaml | 2 +- upstreamed/rabbitmq/OWNERS | 2 + upstreamed/rabbitmq/README.md | 54 ++++-- upstreamed/rabbitmq/templates/NOTES.txt | 46 +++-- upstreamed/rabbitmq/templates/_helpers.tpl | 16 ++ .../rabbitmq/templates/configuration.yaml | 19 ++ upstreamed/rabbitmq/templates/ingress.yaml | 41 +++++ upstreamed/rabbitmq/templates/pvc.yaml | 5 + upstreamed/rabbitmq/templates/role.yaml | 15 ++ .../rabbitmq/templates/rolebinding.yaml | 18 ++ upstreamed/rabbitmq/templates/secrets.yaml | 12 +- .../rabbitmq/templates/serviceaccount.yaml | 11 ++ .../rabbitmq/templates/statefulset.yaml | 152 +++++++++++++++ upstreamed/rabbitmq/templates/svc.yaml | 13 +- upstreamed/rabbitmq/values-production.yaml | 170 +++++++++++++++++ upstreamed/rabbitmq/values.yaml | 173 ++++++++++++------ upstreamed/redmine/Chart.yaml | 4 +- upstreamed/redmine/OWNERS | 2 + upstreamed/redmine/README.md | 74 ++++---- upstreamed/redmine/templates/deployment.yaml | 10 +- upstreamed/redmine/values.yaml | 21 ++- upstreamed/sugarcrm/Chart.yaml | 2 +- upstreamed/sugarcrm/OWNERS | 2 + upstreamed/sugarcrm/README.md | 79 ++++---- upstreamed/sugarcrm/templates/deployment.yaml | 10 +- upstreamed/sugarcrm/values.yaml | 21 ++- upstreamed/suitecrm/Chart.yaml | 4 +- upstreamed/suitecrm/OWNERS | 2 + upstreamed/suitecrm/README.md | 79 ++++---- upstreamed/suitecrm/templates/deployment.yaml | 10 +- upstreamed/suitecrm/values.yaml | 21 ++- 84 files changed, 1463 insertions(+), 559 deletions(-) create mode 100644 upstreamed/rabbitmq/templates/configuration.yaml create mode 100644 upstreamed/rabbitmq/templates/ingress.yaml create mode 100644 upstreamed/rabbitmq/templates/role.yaml create mode 100644 upstreamed/rabbitmq/templates/rolebinding.yaml create mode 100644 upstreamed/rabbitmq/templates/serviceaccount.yaml create mode 100644 upstreamed/rabbitmq/templates/statefulset.yaml create mode 100644 upstreamed/rabbitmq/values-production.yaml diff --git a/upstreamed/dokuwiki/Chart.yaml b/upstreamed/dokuwiki/Chart.yaml index 4a0bf6a67..25acedf6c 100644 --- a/upstreamed/dokuwiki/Chart.yaml +++ b/upstreamed/dokuwiki/Chart.yaml @@ -1,5 +1,6 @@ name: dokuwiki -version: 0.2.1 +version: 1.0.1 +appVersion: 0.20170219.201708232029 description: DokuWiki is a standards-compliant, simple to use wiki optimized for creating documentation. It is targeted at developer teams, workgroups, and small companies. All data is stored in plain text files, so no database is required. diff --git a/upstreamed/dokuwiki/OWNERS b/upstreamed/dokuwiki/OWNERS index 0d4d6f129..4bf8a5c42 100644 --- a/upstreamed/dokuwiki/OWNERS +++ b/upstreamed/dokuwiki/OWNERS @@ -2,7 +2,9 @@ approvers: - prydonius - tompizmor - sameersbn +- carrodher reviewers: - prydonius - tompizmor - sameersbn +- carrodher diff --git a/upstreamed/dokuwiki/README.md b/upstreamed/dokuwiki/README.md index 81a2df05e..15ef047b5 100644 --- a/upstreamed/dokuwiki/README.md +++ b/upstreamed/dokuwiki/README.md @@ -41,26 +41,29 @@ The command removes all the Kubernetes components associated with the chart and ## Configuration -The following tables lists the configurable parameters of the DokuWiki chart and their default values. +The following table lists the configurable parameters of the DokuWiki chart and their default values. -| Parameter | Description | Default | -|-------------------------------------|-----------------------------------------|---------------------------------------------------------| -| `image` | DokuWiki image | `bitnami/dokuwiki:{VERSION}` | -| `imagePullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | -| `dokuwikiUsername` | User of the application | `user` | -| `dokuwikiFullName` | User's full name | `Full Name` | -| `dokuwikiPassword` | Application password | _random 10 character alphanumeric string_ | -| `dokuwikiEmail` | User email | `user@example.com` | -| `dokuwikiWikiName` | Wiki name | `My Wiki` | -| `serviceType` | Kubernetes Service type | `LoadBalancer` | -| `persistence.enabled` | Enable persistence using PVC | `true` | -| `persistence.apache.storageClass` | PVC Storage Class for apache volume | `nil` (uses alpha storage class annotation) | -| `persistence.apache.accessMode` | PVC Access Mode for apache volume | `ReadWriteOnce` | -| `persistence.apache.size` | PVC Storage Request for apache volume | `1Gi` | -| `persistence.dokuwiki.storageClass` | PVC Storage Class for DokuWiki volume | `nil` (uses alpha storage class annotation) | -| `persistence.dokuwiki.accessMode` | PVC Access Mode for DokuWiki volume | `ReadWriteOnce` | -| `persistence.dokuwiki.size` | PVC Storage Request for DokuWiki volume | `8Gi` | -| `resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | +| Parameter | Description | Default | +|-------------------------------------|---------------------------------------------|---------------------------------------------------------| +| `image.registry` | DokuWiki image registry | `docker.io` | +| `image.repository` | DokuWiki Image name | `bitnami/dokuwiki` | +| `image.tag` | DokuWiki Image tag | `{VERSION}` | +| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | +| `image.pullSecrets` | Specify image pull secrets | `nil` | +| `dokuwikiUsername` | User of the application | `user` | +| `dokuwikiFullName` | User's full name | `Full Name` | +| `dokuwikiPassword` | Application password | _random 10 character alphanumeric string_ | +| `dokuwikiEmail` | User email | `user@example.com` | +| `dokuwikiWikiName` | Wiki name | `My Wiki` | +| `serviceType` | Kubernetes Service type | `LoadBalancer` | +| `persistence.enabled` | Enable persistence using PVC | `true` | +| `persistence.apache.storageClass` | PVC Storage Class for apache volume | `nil` (uses alpha storage class annotation) | +| `persistence.apache.accessMode` | PVC Access Mode for apache volume | `ReadWriteOnce` | +| `persistence.apache.size` | PVC Storage Request for apache volume | `1Gi` | +| `persistence.dokuwiki.storageClass` | PVC Storage Class for DokuWiki volume | `nil` (uses alpha storage class annotation) | +| `persistence.dokuwiki.accessMode` | PVC Access Mode for DokuWiki volume | `ReadWriteOnce` | +| `persistence.dokuwiki.size` | PVC Storage Request for DokuWiki volume | `8Gi` | +| `resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | The above parameters map to the env variables defined in [bitnami/dokuwiki](http://github.com/bitnami/bitnami-docker-dokuwiki). For more information please refer to the [bitnami/dokuwiki](http://github.com/bitnami/bitnami-docker-dokuwiki) image documentation. diff --git a/upstreamed/dokuwiki/templates/deployment.yaml b/upstreamed/dokuwiki/templates/deployment.yaml index 6ad332930..ff1f0af5c 100644 --- a/upstreamed/dokuwiki/templates/deployment.yaml +++ b/upstreamed/dokuwiki/templates/deployment.yaml @@ -13,10 +13,16 @@ spec: labels: app: {{ template "dokuwiki.fullname" . }} spec: + {{- if .Values.image.pullSecrets }} + imagePullSecrets: + {{- range .Values.image.pullSecrets }} + - name: {{ . }} + {{- end}} + {{- end }} containers: - name: {{ template "dokuwiki.fullname" . }} - image: "{{ .Values.image }}" - imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }} + image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} env: - name: DOKUWIKI_USERNAME value: {{ default "" .Values.dokuwikiUsername | quote }} diff --git a/upstreamed/dokuwiki/values.yaml b/upstreamed/dokuwiki/values.yaml index 27bd62f79..700824af5 100644 --- a/upstreamed/dokuwiki/values.yaml +++ b/upstreamed/dokuwiki/values.yaml @@ -1,13 +1,21 @@ ## Bitnami DokuWiki image version ## ref: https://hub.docker.com/r/bitnami/dokuwiki/tags/ ## -image: bitnami/dokuwiki:20160626a-r9 - -## Specify a imagePullPolicy -## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' -## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images -## -# imagePullPolicy: +image: + registry: docker.io + repository: bitnami/dokuwiki + tag: 0.20170219.201708232029 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: + # - myRegistrKeySecretName ## User of the application ## ref: https://github.com/bitnami/bitnami-docker-dokuwiki#environment-variables diff --git a/upstreamed/ghost/Chart.yaml b/upstreamed/ghost/Chart.yaml index e38da0162..60a236075 100644 --- a/upstreamed/ghost/Chart.yaml +++ b/upstreamed/ghost/Chart.yaml @@ -1,6 +1,6 @@ name: ghost -version: 2.1.18 -appVersion: 1.22.1 +version: 3.0.2 +appVersion: 1.22.2 description: A simple, powerful publishing platform that allows you to share your stories with the world keywords: diff --git a/upstreamed/ghost/OWNERS b/upstreamed/ghost/OWNERS index 0d4d6f129..4bf8a5c42 100644 --- a/upstreamed/ghost/OWNERS +++ b/upstreamed/ghost/OWNERS @@ -2,7 +2,9 @@ approvers: - prydonius - tompizmor - sameersbn +- carrodher reviewers: - prydonius - tompizmor - sameersbn +- carrodher diff --git a/upstreamed/ghost/README.md b/upstreamed/ghost/README.md index dd99a9481..f76a9375d 100644 --- a/upstreamed/ghost/README.md +++ b/upstreamed/ghost/README.md @@ -43,12 +43,15 @@ The command removes all the Kubernetes components associated with the chart and ## Configuration -The following tables lists the configurable parameters of the Ghost chart and their default values. +The following table lists the configurable parameters of the Ghost chart and their default values. | Parameter | Description | Default | |-------------------------------|---------------------------------------------------------------|----------------------------------------------------------| -| `image` | Ghost image | `bitnami/ghost:{VERSION}` | -| `imagePullPolicy` | Image pull policy | `Always` if `image` tag is `latest`, else `IfNotPresent` | +| `image.registry` | Ghost image registry | `docker.io` | +| `image.repository` | Ghost Image name | `bitnami/ghost` | +| `image.tag` | Ghost Image tag | `{VERSION}` | +| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | +| `image.pullSecrets` | Specify image pull secrets | `nil` | | `ghostHost` | Ghost host to create application URLs | `nil` | | `ghostPort` | Ghost port to create application URLs along with host | `80` | | `ghostLoadBalancerIP` | `loadBalancerIP` for the Ghost Service | `nil` | @@ -87,7 +90,7 @@ The above parameters map to the env variables defined in [bitnami/ghost](http:// > $ gcloud compute addresses create ghost-public-ip > ``` > -> The reserved IP address can be associated to the Ghost service by specifying it as the value of the `ghostLoadBalancerIP` parameter while installing the chart. +> The reserved IP address can be assigned to the Ghost service by specifying it as the value of the `ghostLoadBalancerIP` parameter while installing the chart. Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, @@ -97,7 +100,7 @@ $ helm install --name my-release \ stable/ghost ``` -The above command sets the Ghost administrator account username and password to `admin` and `password` respectively. Additionally it sets the MariaDB `root` user password to `secretpassword`. +The above command sets the Ghost administrator account username and password to `admin` and `password` respectively. Additionally, it sets the MariaDB `root` user password to `secretpassword`. Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, diff --git a/upstreamed/ghost/templates/NOTES.txt b/upstreamed/ghost/templates/NOTES.txt index 6c93697e5..3ccf5a21c 100644 --- a/upstreamed/ghost/templates/NOTES.txt +++ b/upstreamed/ghost/templates/NOTES.txt @@ -36,7 +36,7 @@ host. To configure Ghost with the URL of your service: {{- else if eq .Values.serviceType "NodePort" }} export APP_HOST=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") - export APP_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "fullname" . }}) + export APP_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "ghost.fullname" . }}) echo Blog URL : http://$APP_HOST:$APP_PORT/ echo Admin URL : http://$APP_HOST:$APP_PORT/ghost diff --git a/upstreamed/ghost/templates/deployment.yaml b/upstreamed/ghost/templates/deployment.yaml index a53d083bf..2b2750bbd 100644 --- a/upstreamed/ghost/templates/deployment.yaml +++ b/upstreamed/ghost/templates/deployment.yaml @@ -15,6 +15,12 @@ spec: labels: app: {{ template "ghost.fullname" . }} spec: + {{- if .Values.image.pullSecrets }} + imagePullSecrets: + {{- range .Values.image.pullSecrets }} + - name: {{ . }} + {{- end}} + {{- end }} initContainers: - name: volume-permissions image: "{{ .Values.volumePermissions.image.name }}:{{ .Values.volumePermissions.image.tag }}" @@ -26,7 +32,7 @@ spec: containers: - name: {{ template "ghost.fullname" . }} image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ default "" .Values.image.pullPolicy | quote }} + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} env: - name: ALLOW_EMPTY_PASSWORD {{- if .Values.allowEmptyPassword }} diff --git a/upstreamed/ghost/values.yaml b/upstreamed/ghost/values.yaml index d8cf9fdce..bb2ba5641 100644 --- a/upstreamed/ghost/values.yaml +++ b/upstreamed/ghost/values.yaml @@ -3,9 +3,19 @@ ## image: registry: docker.io - repository: tompizmor/ghost + repository: bitnami/ghost tag: 1.22.1 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: + # - myRegistrKeySecretName ## Busybox image used to configure volume permissions ## @@ -53,7 +63,7 @@ ghostBlogTitle: User's Blog ## Set to `yes` to allow the container to be started with blank passwords ## ref: https://github.com/bitnami/bitnami-docker-wordpress#environment-variables -allowEmptyPassword: yes +allowEmptyPassword: "yes" ## SMTP mail delivery configuration ## ref: https://github.com/bitnami/bitnami-docker-redmine/#smtp-configuration diff --git a/upstreamed/joomla/Chart.yaml b/upstreamed/joomla/Chart.yaml index 5e1c6a42e..e40da005c 100644 --- a/upstreamed/joomla/Chart.yaml +++ b/upstreamed/joomla/Chart.yaml @@ -1,6 +1,6 @@ name: joomla -version: 0.6.0 -appVersion: 3.8.6 +version: 1.0.2 +appVersion: 3.8.7 description: PHP content management system (CMS) for publishing web content keywords: - joomla diff --git a/upstreamed/joomla/OWNERS b/upstreamed/joomla/OWNERS index 0d4d6f129..4bf8a5c42 100644 --- a/upstreamed/joomla/OWNERS +++ b/upstreamed/joomla/OWNERS @@ -2,7 +2,9 @@ approvers: - prydonius - tompizmor - sameersbn +- carrodher reviewers: - prydonius - tompizmor - sameersbn +- carrodher diff --git a/upstreamed/joomla/README.md b/upstreamed/joomla/README.md index 02c835b57..8e575a2e3 100644 --- a/upstreamed/joomla/README.md +++ b/upstreamed/joomla/README.md @@ -12,7 +12,7 @@ $ helm install stable/joomla This chart bootstraps a [Joomla!](https://github.com/bitnami/bitnami-docker-joomla) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. -It also packages the [Bitnami MariaDB chart](https://github.com/kubernetes/charts/tree/master/stable/mariadb) which is required for bootstrapping a MariaDB deployment for the database requirements of the Joomla! application. +It also packages the [Bitnami MariaDB chart](https://github.com/kubernetes/charts/tree/master/stable/mariadb) which bootstraps a MariaDB deployment required by the Joomla! application. ## Prerequisites @@ -43,12 +43,15 @@ The command removes all the Kubernetes components associated with the chart and ## Configuration -The following tables lists the configurable parameters of the Joomla! chart and their default values. +The following table lists the configurable parameters of the Joomla! chart and their default values. | Parameter | Description | Default | -| --------------------------------- | ------------------------------------- | --------------------------------------------------------- | -| `image` | Joomla! image | `bitnami/joomla:{VERSION}` | -| `imagePullPolicy` | Image pull policy | `Always` if `image` tag is `latest`, else `IfNotPresent` | +| --------------------------------- | -------------------------------------- | --------------------------------------------------------- | +| `image.registry` | Joomla! image registry | `docker.io` | +| `image.repository` | Joomla! Image name | `bitnami/joomla` | +| `image.tag` | Joomla! Image tag | `{VERSION}` | +| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | +| `image.pullSecrets` | Specify image pull secrets | `nil` | | `joomlaUsername` | User of the application | `user` | | `joomlaPassword` | Application password | Randomly generated | | `joomlaEmail` | Admin email | `user@example.com` | @@ -63,8 +66,8 @@ The following tables lists the configurable parameters of the Joomla! chart and | `externalDatabase.port` | Port of the external database | `3306` | | `externalDatabase.user` | Existing username in the external db | `bn_joomla` | | `externalDatabase.password` | Password for the above username | `nil` | -| `externalDatabase.database` | Name of the existing databse | `bitnami_joomla` | -| `mariadb.enabled` | Wheter to use or not the mariadb chart | `true` | +| `externalDatabase.database` | Name of the existing database | `bitnami_joomla` | +| `mariadb.enabled` | Whether to use the MariaDB chart | `true` | | `mariadb.mariadbDatabase` | Database name to create | `bitnami_joomla` | | `mariadb.mariadbUser` | Database user to create | `bn_joomla` | | `mariadb.mariadbPassword` | Password for the database | `nil` | diff --git a/upstreamed/joomla/templates/deployment.yaml b/upstreamed/joomla/templates/deployment.yaml index dbfb4875f..0b1c4f76f 100644 --- a/upstreamed/joomla/templates/deployment.yaml +++ b/upstreamed/joomla/templates/deployment.yaml @@ -14,10 +14,16 @@ spec: labels: app: {{ template "joomla.fullname" . }} spec: + {{- if .Values.image.pullSecrets }} + imagePullSecrets: + {{- range .Values.image.pullSecrets }} + - name: {{ . }} + {{- end}} + {{- end }} containers: - name: {{ template "joomla.fullname" . }} image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ default .Values.image.pullPolicy | quote }} + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} env: - name: ALLOW_EMPTY_PASSWORD value: {{ .Values.allowEmptyPassword | quote }} diff --git a/upstreamed/joomla/values.yaml b/upstreamed/joomla/values.yaml index ee3c36af7..f044352a4 100644 --- a/upstreamed/joomla/values.yaml +++ b/upstreamed/joomla/values.yaml @@ -1,17 +1,21 @@ -## Bitnami Joomla! image version -## ref: https://hub.docker.com/r/bitnami/joomla/tags/ +## Bitnami Joomla image version +## ref: https://hub.docker.com/r/bitnami/dokuwiki/tags/ ## image: registry: docker.io repository: bitnami/joomla - tag: 3.8.6-r1 + tag: 3.8.7 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## pullPolicy: IfNotPresent - -## Specify a imagePullPolicy -## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' -## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images -## -# imagePullPolicy: + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: + # - myRegistrKeySecretName ## User of the application ## ref: https://github.com/bitnami/bitnami-docker-joomla#environment-variables diff --git a/upstreamed/mongodb/Chart.yaml b/upstreamed/mongodb/Chart.yaml index 7696e9d41..d418b6f28 100644 --- a/upstreamed/mongodb/Chart.yaml +++ b/upstreamed/mongodb/Chart.yaml @@ -1,6 +1,6 @@ name: mongodb -version: 0.4.26 -appVersion: 3.7.1 +version: 2.0.2 +appVersion: 3.7.3 description: NoSQL document-oriented database that stores JSON-like documents with dynamic schemas, simplifying the integration of data in content-driven applications. keywords: - mongodb diff --git a/upstreamed/mongodb/OWNERS b/upstreamed/mongodb/OWNERS index 0d4d6f129..4bf8a5c42 100644 --- a/upstreamed/mongodb/OWNERS +++ b/upstreamed/mongodb/OWNERS @@ -2,7 +2,9 @@ approvers: - prydonius - tompizmor - sameersbn +- carrodher reviewers: - prydonius - tompizmor - sameersbn +- carrodher diff --git a/upstreamed/mongodb/README.md b/upstreamed/mongodb/README.md index ea03eea3f..e8e39e3f5 100644 --- a/upstreamed/mongodb/README.md +++ b/upstreamed/mongodb/README.md @@ -41,31 +41,38 @@ The command removes all the Kubernetes components associated with the chart and ## Configuration -The following tables lists the configurable parameters of the MongoDB chart and their default values. +The following table lists the configurable parameters of the MongoDB chart and their default values. -| Parameter | Description | Default | -|---------------------------- |------------------------------------- |----------------------------------------------------------| -| `image` | MongoDB image | `bitnami/mongodb:{VERSION}` | -| `imagePullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent`. | -| `mongodbRootPassword` | MongoDB admin password | `random alhpanumeric string (10)` | -| `mongodbUsername` | MongoDB custom user | `nil` | -| `mongodbPassword` | MongoDB custom user password | `random alhpanumeric string (10)` | -| `mongodbDatabase` | Database to create | `nil` | -| `serviceType` | Kubernetes Service type | `ClusterIP` | -| `persistence.enabled` | Use a PVC to persist data | `true` | -| `persistence.storageClass` | Storage class of backing PVC | `nil` (uses alpha storage class annotation) | -| `persistence.accessMode` | Use volume as ReadOnly or ReadWrite | `ReadWriteOnce` | -| `persistence.size` | Size of data volume | `8Gi` | -| `livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | 30 | -| `livenessProbe.periodSeconds` | How often to perform the probe | 10 | -| `livenessProbe.timeoutSeconds` | When the probe times out | 5 | -| `livenessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed. | 1 | -| `livenessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | 6 | -| `readinessProbe.initialDelaySeconds`| Delay before readiness probe is initiated | 5 | -| `readinessProbe.periodSeconds` | How often to perform the probe | 10 | -| `readinessProbe.timeoutSeconds` | When the probe times out | 5 | -| `readinessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed. | 1 | -| `readinessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | 6 | +| Parameter | Description | Default | +|-------------------------------------|----------------------------------------------------------------------------------------------|----------------------------------------------------------| +| `image.registry` | MongoDB image registry | `docker.io` | +| `image.repository` | MongoDB Image name | `bitnami/mongodb` | +| `image.tag` | MongoDB Image tag | `{VERSION}` | +| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | +| `image.pullSecrets` | Specify image pull secrets | `nil` | +| `usePassword` | Enable password authentication | `true` | +| `mongodbRootPassword` | MongoDB admin password | `random alhpanumeric string (10)` | +| `mongodbUsername` | MongoDB custom user | `nil` | +| `mongodbPassword` | MongoDB custom user password | `random alhpanumeric string (10)` | +| `mongodbDatabase` | Database to create | `nil` | +| `mongodbExtraFlags` | MongoDB additional command line flags | [] | +| `service.type` | Kubernetes Service type | `ClusterIP` | +| `service.nodePort` | Port to bind to for NodePort service type | `nil` | +| `persistence.enabled` | Use a PVC to persist data | `true` | +| `persistence.storageClass` | Storage class of backing PVC | `nil` (uses alpha storage class annotation) | +| `persistence.accessMode` | Use volume as ReadOnly or ReadWrite | `ReadWriteOnce` | +| `persistence.size` | Size of data volume | `8Gi` | +| `nodeSelector` | Node labels for pod assignment | {} | +| `livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | 30 | +| `livenessProbe.periodSeconds` | How often to perform the probe | 10 | +| `livenessProbe.timeoutSeconds` | When the probe times out | 5 | +| `livenessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed. | 1 | +| `livenessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | 6 | +| `readinessProbe.initialDelaySeconds`| Delay before readiness probe is initiated | 5 | +| `readinessProbe.periodSeconds` | How often to perform the probe | 10 | +| `readinessProbe.timeoutSeconds` | When the probe times out | 5 | +| `readinessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed. | 1 | +| `readinessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | 6 | The above parameters map to the env variables defined in [bitnami/mongodb](http://github.com/bitnami/bitnami-docker-mongodb). For more information please refer to the [bitnami/mongodb](http://github.com/bitnami/bitnami-docker-mongodb) image documentation. @@ -77,7 +84,7 @@ $ helm install --name my-release \ stable/mongodb ``` -The above command sets the MongoDB `root` account password to `secretpassword`. Additionally it creates a standard database user named `my-user`, with the password `my-password`, who has access to a database named `my-database`. +The above command sets the MongoDB `root` account password to `secretpassword`. Additionally, it creates a standard database user named `my-user`, with the password `my-password`, who has access to a database named `my-database`. Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example, @@ -91,4 +98,4 @@ $ helm install --name my-release -f values.yaml stable/mongodb The [Bitnami MongoDB](https://github.com/bitnami/bitnami-docker-mongodb) image stores the MongoDB data and configurations at the `/bitnami/mongodb` path of the container. -The chart mounts a [Persistent Volume](http://kubernetes.io/docs/user-guide/persistent-volumes/) volume at this location. The volume is created using dynamic volume provisioning. +The chart mounts a [Persistent Volume](http://kubernetes.io/docs/user-guide/persistent-volumes/) at this location. The volume is created using dynamic volume provisioning. diff --git a/upstreamed/mongodb/templates/NOTES.txt b/upstreamed/mongodb/templates/NOTES.txt index 24c5d200b..8c0f90e08 100644 --- a/upstreamed/mongodb/templates/NOTES.txt +++ b/upstreamed/mongodb/templates/NOTES.txt @@ -1,7 +1,67 @@ +{{- if contains .Values.service.type "LoadBalancer" }} +{{- if not .Values.mongodbRootPassword }} +------------------------------------------------------------------------------- + WARNING + + By specifying "service.type=LoadBalancer" and not specifying "mongodbRootPassword" + you have most likely exposed the MongoDB service externally without any + authentication mechanism. + + For security reasons, we strongly suggest that you switch to "ClusterIP" or + "NodePort". As alternative, you can also specify a valid password on the + "mongodbRootPassword" parameter. + +------------------------------------------------------------------------------- +{{- end }} +{{- end }} + +** Please be patient while the chart is being deployed ** + MongoDB can be accessed via port 27017 on the following DNS name from within your cluster: -{{ template "mongodb.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local + + {{ template "mongodb.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local + +{{ if .Values.usePassword -}} + +To get the root password run: + + export MONGODB_ROOT_PASSWORD=$(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "mongodb.fullname" . }} -o jsonpath="{.data.mongodb-root-password}" | base64 --decode) + +{{- end }} +{{- if and .Values.mongodbUsername .Values.mongodbDatabase }} +{{- if .Values.mongodbPassword }} + +To get the password for "{{ .Values.mongodbUsername }}" run: + + export MONGODB_PASSWORD=$(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "mongodb.fullname" . }} -o jsonpath="{.data.mongodb-password}" | base64 --decode) + +{{- end }} +{{- end }} To connect to your database run the following command: - kubectl run {{ template "mongodb.fullname" . }}-client --rm --tty -i --image bitnami/mongodb --command -- mongo --host {{ template "mongodb.fullname" . }} {{- if .Values.mongodbRootPassword }} -p {{ .Values.mongodbRootPassword }}{{- end -}} + kubectl run {{ template "mongodb.fullname" . }}-client --rm --tty -i --image bitnami/mongodb --command -- mongo --host {{ template "mongodb.fullname" . }} {{- if .Values.usePassword }} -p $MONGODB_ROOT_PASSWORD{{- end }} +To connect to your database from outside the cluster execute the following commands: + +{{- if contains "NodePort" .Values.service.type }} + + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "mongodb.fullname" . }}) + mongo --host $NODE_IP --port $NODE_PORT {{- if .Values.usePassword }} -p $MONGODB_ROOT_PASSWORD{{- end }} + +{{- else if contains "LoadBalancer" .Values.service.type }} + + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "mongodb.fullname" . }}' + + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "mongodb.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + mongo --host $SERVICE_IP --port {{ .Values.service.nodePort }} {{- if .Values.usePassword }} -p $MONGODB_ROOT_PASSWORD{{- end }} + +{{- else if contains "ClusterIP" .Values.service.type }} + + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "mongodb.name" . }}" -o jsonpath="{.items[0].metadata.name}") + kubectl port-forward --namespace {{ .Release.Namespace }} $POD_NAME 27017:27017 & + mongo --host 127.0.0.1 {{- if .Values.usePassword }} -p $MONGODB_ROOT_PASSWORD{{- end }} + +{{- end }} diff --git a/upstreamed/mongodb/templates/_helpers.tpl b/upstreamed/mongodb/templates/_helpers.tpl index ad4a3f5ef..769012798 100644 --- a/upstreamed/mongodb/templates/_helpers.tpl +++ b/upstreamed/mongodb/templates/_helpers.tpl @@ -14,3 +14,12 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this {{- $name := default .Chart.Name .Values.nameOverride -}} {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} {{- end -}} + +{{/* +Return the proper image name +*/}} +{{- define "mongodb.image" -}} +{{- $registryName := default .Values.image.registry "docker.io" -}} +{{- $tag := .Values.image.tag | default "latest" -}} +{{- printf "%s/%s:%s" $registryName .Values.image.repository $tag -}} +{{- end -}} diff --git a/upstreamed/mongodb/templates/deployment.yaml b/upstreamed/mongodb/templates/deployment.yaml index 84539b031..894f806b2 100644 --- a/upstreamed/mongodb/templates/deployment.yaml +++ b/upstreamed/mongodb/templates/deployment.yaml @@ -3,7 +3,7 @@ kind: Deployment metadata: name: {{ template "mongodb.fullname" . }} labels: - app: {{ template "mongodb.fullname" . }} + app: {{ template "mongodb.name" . }} chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" release: "{{ .Release.Name }}" heritage: "{{ .Release.Service }}" @@ -11,27 +11,43 @@ spec: template: metadata: labels: - app: {{ template "mongodb.fullname" . }} + app: {{ template "mongodb.name" . }} spec: + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 8 }} + {{- end }} + {{- if .Values.image.pullSecrets }} + imagePullSecrets: + {{- range .Values.image.pullSecrets }} + - name: {{ . }} + {{- end}} + {{- end }} containers: - name: {{ template "mongodb.fullname" . }} - image: "{{ .Values.image }}" - imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }} + image: {{ template "mongodb.image" . }} + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} env: + {{- if .Values.usePassword }} - name: MONGODB_ROOT_PASSWORD valueFrom: secretKeyRef: name: {{ template "mongodb.fullname" . }} key: mongodb-root-password + {{- end }} - name: MONGODB_USERNAME value: {{ default "" .Values.mongodbUsername | quote }} + {{- if and .Values.mongodbUsername .Values.mongodbDatabase }} - name: MONGODB_PASSWORD valueFrom: secretKeyRef: name: {{ template "mongodb.fullname" . }} key: mongodb-password + {{- end }} - name: MONGODB_DATABASE value: {{ default "" .Values.mongodbDatabase | quote }} + - name: MONGODB_EXTRA_FLAGS + value: {{ default "" .Values.mongodbExtraFlags | join " " }} ports: - name: mongodb containerPort: 27017 diff --git a/upstreamed/mongodb/templates/pvc.yaml b/upstreamed/mongodb/templates/pvc.yaml index 29c182c9d..bc2cce6dd 100644 --- a/upstreamed/mongodb/templates/pvc.yaml +++ b/upstreamed/mongodb/templates/pvc.yaml @@ -1,4 +1,4 @@ -{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }} +{{ if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}} kind: PersistentVolumeClaim apiVersion: v1 metadata: diff --git a/upstreamed/mongodb/templates/secrets.yaml b/upstreamed/mongodb/templates/secrets.yaml index 7d2d4047b..06b8f3b93 100644 --- a/upstreamed/mongodb/templates/secrets.yaml +++ b/upstreamed/mongodb/templates/secrets.yaml @@ -1,21 +1,27 @@ +{{ if or .Values.usePassword .Values.mongodbPassword -}} apiVersion: v1 kind: Secret metadata: name: {{ template "mongodb.fullname" . }} labels: - app: {{ template "mongodb.fullname" . }} + app: {{ template "mongodb.name" . }} chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" release: "{{ .Release.Name }}" heritage: "{{ .Release.Service }}" type: Opaque data: - {{ if .Values.mongodbRootPassword }} + {{- if .Values.usePassword }} + {{- if .Values.mongodbRootPassword }} mongodb-root-password: {{ .Values.mongodbRootPassword | b64enc | quote }} - {{ else }} + {{- else }} mongodb-root-password: {{ randAlphaNum 10 | b64enc | quote }} - {{ end }} - {{ if .Values.mongodbPassword }} + {{- end }} + {{- end }} + {{- if and .Values.mongodbUsername .Values.mongodbDatabase }} + {{- if .Values.mongodbPassword }} mongodb-password: {{ .Values.mongodbPassword | b64enc | quote }} - {{ else }} + {{- else }} mongodb-password: {{ randAlphaNum 10 | b64enc | quote }} - {{ end }} \ No newline at end of file + {{- end }} + {{- end }} +{{- end }} diff --git a/upstreamed/mongodb/templates/svc.yaml b/upstreamed/mongodb/templates/svc.yaml index 6c58b54c5..58ec65350 100644 --- a/upstreamed/mongodb/templates/svc.yaml +++ b/upstreamed/mongodb/templates/svc.yaml @@ -3,15 +3,18 @@ kind: Service metadata: name: {{ template "mongodb.fullname" . }} labels: - app: {{ template "mongodb.fullname" . }} + app: {{ template "mongodb.name" . }} chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" release: "{{ .Release.Name }}" heritage: "{{ .Release.Service }}" spec: - type: {{ .Values.serviceType }} + type: {{ .Values.service.type }} ports: - name: mongodb port: 27017 targetPort: mongodb +{{- if .Values.service.nodePort }} + nodePort: {{ .Values.service.nodePort }} +{{- end }} selector: - app: {{ template "mongodb.fullname" . }} + app: {{ template "mongodb.name" . }} diff --git a/upstreamed/mongodb/values.yaml b/upstreamed/mongodb/values.yaml index bce23c699..9f8de3683 100644 --- a/upstreamed/mongodb/values.yaml +++ b/upstreamed/mongodb/values.yaml @@ -1,13 +1,26 @@ ## Bitnami MongoDB image version ## ref: https://hub.docker.com/r/bitnami/mongodb/tags/ ## -image: bitnami/mongodb:3.7.1-r0 +image: + registry: docker.io + repository: bitnami/mongodb + tag: 3.7.3 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: + # - myRegistrKeySecretName -## Specify a imagePullPolicy -## 'Always' if imageTag is 'latest', else set to 'IfNotPresent' -## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images -## -# imagePullPolicy: +## Enable authentication +## ref: https://docs.mongodb.com/manual/tutorial/enable-authentication/ +# +usePassword: true ## MongoDB admin password ## ref: https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#setting-the-root-password-on-first-run @@ -21,8 +34,22 @@ image: bitnami/mongodb:3.7.1-r0 # mongodbPassword: # mongodbDatabase: -## Kubernetes service type -serviceType: ClusterIP +## MongoDB additional command line flags +## +## Can be used to specify command line flags, for example: +## +## mongodbExtraFlags: +## - "--wiredTigerCacheSizeGB=2" +mongodbExtraFlags: [] + +service: + ## Kubernetes service type + type: ClusterIP + + ## Specify the nodePort value for the LoadBalancer and NodePort service types. + ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport + ## + # nodePort: ## Enable persistence using Persistent Volume Claims ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ @@ -53,6 +80,10 @@ resources: memory: 256Mi cpu: 100m +## Node selector +## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector +nodeSelector: {} + ## Configure extra options for liveness and readiness probes ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes) livenessProbe: diff --git a/upstreamed/moodle/Chart.yaml b/upstreamed/moodle/Chart.yaml index cee146282..88efbed46 100644 --- a/upstreamed/moodle/Chart.yaml +++ b/upstreamed/moodle/Chart.yaml @@ -1,6 +1,6 @@ name: moodle -version: 0.5.0 -appVersion: 3.4.1 +version: 1.0.2 +appVersion: 3.4.2 description: Moodle is a learning platform designed to provide educators, administrators and learners with a single robust, secure and integrated system to create personalised learning environments diff --git a/upstreamed/moodle/OWNERS b/upstreamed/moodle/OWNERS index 0d4d6f129..4bf8a5c42 100644 --- a/upstreamed/moodle/OWNERS +++ b/upstreamed/moodle/OWNERS @@ -2,7 +2,9 @@ approvers: - prydonius - tompizmor - sameersbn +- carrodher reviewers: - prydonius - tompizmor - sameersbn +- carrodher diff --git a/upstreamed/moodle/README.md b/upstreamed/moodle/README.md index 2a524cca4..37d934d3b 100644 --- a/upstreamed/moodle/README.md +++ b/upstreamed/moodle/README.md @@ -1,6 +1,6 @@ # Moodle -[Moodle](https://www.moodle.org) is a learning platform designed to provide educators, administrators and learners with a single robust, secure and integrated system to create personalised learning environments +[Moodle](https://www.moodle.org) is a learning platform designed to provide educators, administrators and learners with a single robust, secure and integrated system to create personalized learning environments ## TL;DR; @@ -43,50 +43,53 @@ The command removes all the Kubernetes components associated with the chart and ## Configuration -The following tables lists the configurable parameters of the Moodle chart and their default values. +The following table lists the configurable parameters of the Moodle chart and their default values. -| Parameter | Description | Default | -|-------------------------------------|-----------------------------------------|---------------------------------------------| -| `image` | Moodle image | `bitnami/moodle:{VERSION}` | -| `imagePullPolicy` | Image pull policy | `IfNotPresent` | -| `moodleUsername` | User of the application | `user` | -| `moodlePassword` | Application password | _random 10 character alphanumeric string_ | -| `moodleEmail` | Admin email | `user@example.com` | -| `smtpHost` | SMTP host | `nil` | -| `smtpPort` | SMTP port | `nil` (but moodle internal default is 25) | -| `smtpProtocol` | SMTP Protocol (options: ssl,tls, nil) | `nil` | -| `smtpUser` | SMTP user | `nil` | -| `smtpPassword` | SMTP password | `nil` | -| `serviceType` | Kubernetes Service type | `LoadBalancer` | -| `ingress.enabled` | If ingress should be created | `false` | -| `ingress.annotations` | Any ingress annotations | `nil` | -| `ingress.hosts` | List of Ingress hosts | `nil` | -| `ingress.tls` | List of certs. If defined, https is set | `nil` | -| `affinity` | Set affinity for the moodle pods | `nil` | -| `resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | -| `persistence.enabled` | Enable persistence using PVC | `true` | -| `persistence.storageClass` | PVC Storage Class for Moodle volume | `nil` (uses alpha storage class annotation) | -| `persistence.accessMode` | PVC Access Mode for Moodle volume | `ReadWriteOnce` | -| `persistence.size` | PVC Storage Request for Moodle volume | `8Gi` | -| `persistence.existingClaim` | If PVC exists&bounded for Moodle | `nil` (when nil, new one is requested) | -| `allowEmptyPassword` | Allow DB blank passwords | `yes` | -| `externalDatabase.host` | Host of the external database | `nil` | -| `externalDatabase.port` | Port of the external database | `3306` | -| `externalDatabase.user` | Existing username in the external db | `bn_moodle` | -| `externalDatabase.password` | Password for the above username | `nil` | -| `externalDatabase.database` | Name of the existing databse | `bitnami_moodle` | -| `mariadb.enabled` | Wheter to use or not the mariadb chart | `true` | -| `mariadb.mariadbDatabase` | Database name to create | `bitnami_moodle` | -| `mariadb.mariadbUser` | Database user to create | `bn_moodle` | -| `mariadb.mariadbPassword` | Password for the database | `nil` | -| `mariadb.mariadbRootPassword` | MariaDB admin password | `nil` | -| `mariadb.persistence.enabled` | Enable MariaDB persistence using PVC | `true` | -| `mariadb.persistence.storageClass` | PVC Storage Class for MariaDB volume | `generic` | -| `mariadb.persistence.accessMode` | PVC Access Mode for MariaDB volume | `ReadWriteOnce` | -| `mariadb.persistence.size` | PVC Storage Request for MariaDB volume | `8Gi` | -| `mariadb.persistence.existingClaim` | If PVC exists&bounded for MariaDB | `nil` (when nil, new one is requested) | -| `mariadb.affinity` | Set affinity for the MariaDB pods | `nil` | -| `mariadb.resources` | CPU/Memory resource requests/limits | Memory: `256Mi`, CPU: `250m` | +| Parameter | Description | Default | +|-------------------------------------|-----------------------------------------|-------------------------------------------------------- | +| `image.registry` | Moodle image registry | `docker.io` | +| `image.repository` | Moodle Image name | `bitnami/moodle` | +| `image.tag` | Moodle Image tag | `{VERSION}` | +| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | +| `image.pullSecrets` | Specify image pull secrets | `nil` | +| `moodleUsername` | User of the application | `user` | +| `moodlePassword` | Application password | _random 10 character alphanumeric string_ | +| `moodleEmail` | Admin email | `user@example.com` | +| `smtpHost` | SMTP host | `nil` | +| `smtpPort` | SMTP port | `nil` (but moodle internal default is 25) | +| `smtpProtocol` | SMTP Protocol (options: ssl,tls, nil) | `nil` | +| `smtpUser` | SMTP user | `nil` | +| `smtpPassword` | SMTP password | `nil` | +| `serviceType` | Kubernetes Service type | `LoadBalancer` | +| `ingress.enabled` | If ingress should be created | `false` | +| `ingress.annotations` | Any ingress annotations | `nil` | +| `ingress.hosts` | List of Ingress hosts | `nil` | +| `ingress.tls` | List of certs. If defined, https is set | `nil` | +| `affinity` | Set affinity for the moodle pods | `nil` | +| `resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | +| `persistence.enabled` | Enable persistence using PVC | `true` | +| `persistence.storageClass` | PVC Storage Class for Moodle volume | `nil` (uses alpha storage class annotation) | +| `persistence.accessMode` | PVC Access Mode for Moodle volume | `ReadWriteOnce` | +| `persistence.size` | PVC Storage Request for Moodle volume | `8Gi` | +| `persistence.existingClaim` | If PVC exists&bounded for Moodle | `nil` (when nil, new one is requested) | +| `allowEmptyPassword` | Allow DB blank passwords | `yes` | +| `externalDatabase.host` | Host of the external database | `nil` | +| `externalDatabase.port` | Port of the external database | `3306` | +| `externalDatabase.user` | Existing username in the external db | `bn_moodle` | +| `externalDatabase.password` | Password for the above username | `nil` | +| `externalDatabase.database` | Name of the existing database | `bitnami_moodle` | +| `mariadb.enabled` | Whether to install the MariaDB chart | `true` | +| `mariadb.mariadbDatabase` | Database name to create | `bitnami_moodle` | +| `mariadb.mariadbUser` | Database user to create | `bn_moodle` | +| `mariadb.mariadbPassword` | Password for the database | `nil` | +| `mariadb.mariadbRootPassword` | MariaDB admin password | `nil` | +| `mariadb.persistence.enabled` | Enable MariaDB persistence using PVC | `true` | +| `mariadb.persistence.storageClass` | PVC Storage Class for MariaDB volume | `generic` | +| `mariadb.persistence.accessMode` | PVC Access Mode for MariaDB volume | `ReadWriteOnce` | +| `mariadb.persistence.size` | PVC Storage Request for MariaDB volume | `8Gi` | +| `mariadb.persistence.existingClaim` | If PVC exists&bounded for MariaDB | `nil` (when nil, new one is requested) | +| `mariadb.affinity` | Set affinity for the MariaDB pods | `nil` | +| `mariadb.resources` | CPU/Memory resource requests/limits | Memory: `256Mi`, CPU: `250m` | The above parameters map to the env variables defined in [bitnami/moodle](http://github.com/bitnami/bitnami-docker-moodle). For more information please refer to the [bitnami/moodle](http://github.com/bitnami/bitnami-docker-moodle) image documentation. @@ -98,7 +101,7 @@ $ helm install --name my-release \ stable/moodle ``` -The above command sets the Moodle administrator account username and password to `admin` and `password` respectively. Additionally it sets the MariaDB `root` user password to `secretpassword`. +The above command sets the Moodle administrator account username and password to `admin` and `password` respectively. Additionally, it sets the MariaDB `root` user password to `secretpassword`. Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, @@ -109,7 +112,9 @@ $ helm install --name my-release -f values.yaml stable/moodle > **Tip**: You can use the default [values.yaml](values.yaml) ### Ingress without TLS -For using ingress (example without tls): + +For using ingress (example without TLS): + ```console $ helm install --name my-release \ --set ingress.enabled=True,ingress.hosts[0]=moodle.domain.com,serviceType=ClusterIP,moodleUsername=admin,moodlePassword=password,mariadb.mariadbRootPassword=secretpassword stable/moodle @@ -119,6 +124,7 @@ These are the *3 mandatory parameters* when *Ingress* is desired: `ingress.enabled=True,ingress.hosts[0]=moodle.domain.com,serviceType=ClusterIP` ### Ingress TLS + If your cluster allows automatic creation/retrieval of TLS certificates (e.g. [kube-lego](https://github.com/jetstack/kube-lego)), please refer to the documentation for that mechanism. To manually configure TLS, first create/retrieve a key & certificate pair for the address(es) you wish to protect. Then create a TLS secret in the namespace: @@ -162,4 +168,4 @@ The [Bitnami Moodle](https://github.com/bitnami/bitnami-docker-moodle) image sto Persistent Volume Claims are used to keep the data across deployments. This is known to work in GCE, AWS, vpshere, and minikube. See the [Configuration](#configuration) section to configure the PVC or to disable persistence. -You may want to review the [PV reclaim policy](https://kubernetes.io/docs/tasks/administer-cluster/change-pv-reclaim-policy/), and update as required. By default it's set to delete, and when moodle is uninstalled, data is also removed. +You may want to review the [PV reclaim policy](https://kubernetes.io/docs/tasks/administer-cluster/change-pv-reclaim-policy/) and update as required. By default, it's set to delete, and when Moodle is uninstalled, data is also removed. diff --git a/upstreamed/moodle/templates/deployment.yaml b/upstreamed/moodle/templates/deployment.yaml index 085839692..565b1a448 100644 --- a/upstreamed/moodle/templates/deployment.yaml +++ b/upstreamed/moodle/templates/deployment.yaml @@ -16,11 +16,17 @@ spec: {{- if .Values.affinity }} affinity: {{ toYaml .Values.affinity | indent 8 }} + {{- end }} + {{- if .Values.image.pullSecrets }} + imagePullSecrets: + {{- range .Values.image.pullSecrets }} + - name: {{ . }} + {{- end}} {{- end }} containers: - name: {{ template "moodle.fullname" . }} - image: "{{ .Values.image }}" - imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }} + image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} env: - name: ALLOW_EMPTY_PASSWORD value: {{ .Values.allowEmptyPassword | quote }} diff --git a/upstreamed/moodle/values.yaml b/upstreamed/moodle/values.yaml index 3af1e4ed5..35d15cd85 100644 --- a/upstreamed/moodle/values.yaml +++ b/upstreamed/moodle/values.yaml @@ -1,13 +1,21 @@ -## Bitnami Moodle` image version +## Bitnami Moodle image version ## ref: https://hub.docker.com/r/bitnami/moodle/tags/ ## -image: bitnami/moodle:3.4.1-r4 - -## Specify a imagePullPolicy -## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' -## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images -## -imagePullPolicy: IfNotPresent +image: + registry: docker.io + repository: bitnami/moodle + tag: 3.4.2 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: + # - myRegistrKeySecretName ## User of the application ## ref: https://github.com/bitnami/bitnami-docker-moodle#configuration diff --git a/upstreamed/odoo/Chart.yaml b/upstreamed/odoo/Chart.yaml index 211e086ae..4f82d3282 100644 --- a/upstreamed/odoo/Chart.yaml +++ b/upstreamed/odoo/Chart.yaml @@ -1,6 +1,6 @@ name: odoo -version: 0.7.6 -appVersion: 11.0.20180315 +version: 0.7.10 +appVersion: 11.0.20180415 description: A suite of web based open source business apps. keywords: - odoo diff --git a/upstreamed/odoo/OWNERS b/upstreamed/odoo/OWNERS index 0d4d6f129..4bf8a5c42 100644 --- a/upstreamed/odoo/OWNERS +++ b/upstreamed/odoo/OWNERS @@ -2,7 +2,9 @@ approvers: - prydonius - tompizmor - sameersbn +- carrodher reviewers: - prydonius - tompizmor - sameersbn +- carrodher diff --git a/upstreamed/odoo/README.md b/upstreamed/odoo/README.md index fbc46f2e8..13e0e4e06 100644 --- a/upstreamed/odoo/README.md +++ b/upstreamed/odoo/README.md @@ -1,6 +1,6 @@ # Odoo -[Odoo](https://www.odoo.com/) is a suite of web based open source business apps. The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, Purchase Management, ... +[Odoo](https://www.odoo.com/) is a suite of web-based open source business apps. The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, Purchase Management, ... Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps. @@ -43,30 +43,33 @@ The command removes all the Kubernetes components associated with the chart and ## Configuration -The following tables lists the configurable parameters of the Odoo chart and their default values. +The following table lists the configurable parameters of the Odoo chart and their default values. -| Parameter | Description | Default | -|---------------------------------------|-------------------------------------------|---------------------------------------------| -| `imageTag` | `bitnami/odoo` image tag | Odoo image version | -| `imagePullPolicy` | Image pull policy | `IfNotPresent` | -| `odooUsername` | User of the application | `user@example.com` | -| `odooPassword` | Admin account password | `bitnami` | -| `odooEmail` | Admin account email | `user@example.com` | -| `smtpHost` | SMTP host | `nil` | -| `smtpPort` | SMTP port | `nil` | -| `smtpUser` | SMTP user | `nil` | -| `smtpPassword` | SMTP password | `nil` | -| `smtpProtocol` | SMTP protocol [`ssl`, `tls`] | `nil` | -| `serviceType` | Kubernetes Service type | `LoadBalancer` | -| `resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | -| `persistence.storageClass` | PVC Storage Class | `nil` (uses alpha storage class annotation) | -| `persistence.accessMode` | PVC Access Mode | `ReadWriteOnce` | -| `persistence.size` | PVC Storage Request | `8Gi` | -| `postgresql.postgresqlPassword` | PostgreSQL password | `nil` | -| `postgresql.persistence.enabled` | Enable PostgreSQL persistence using PVC | `true` | -| `postgresql.persistence.storageClass` | PVC Storage Class for PostgreSQL volume | `nil` (uses alpha storage class annotation) | -| `postgresql.persistence.accessMode` | PVC Access Mode for PostgreSQL volume | `ReadWriteOnce` | -| `postgresql.persistence.size` | PVC Storage Request for PostgreSQL volume | `8Gi` | +| Parameter | Description | Default | +|---------------------------------------|-------------------------------------------|-------------------------------------------------------- | +| `image.registry` | Odoo image registry | `docker.io` | +| `image.repository` | Odoo Image name | `bitnami/odoo` | +| `image.tag` | Odoo Image tag | `{VERSION}` | +| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | +| `image.pullSecrets` | Specify image pull secrets | `nil` | +| `odooUsername` | User of the application | `user@example.com` | +| `odooPassword` | Admin account password | `bitnami` | +| `odooEmail` | Admin account email | `user@example.com` | +| `smtpHost` | SMTP host | `nil` | +| `smtpPort` | SMTP port | `nil` | +| `smtpUser` | SMTP user | `nil` | +| `smtpPassword` | SMTP password | `nil` | +| `smtpProtocol` | SMTP protocol [`ssl`, `tls`] | `nil` | +| `serviceType` | Kubernetes Service type | `LoadBalancer` | +| `resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | +| `persistence.storageClass` | PVC Storage Class | `nil` (uses alpha storage class annotation) | +| `persistence.accessMode` | PVC Access Mode | `ReadWriteOnce` | +| `persistence.size` | PVC Storage Request | `8Gi` | +| `postgresql.postgresqlPassword` | PostgreSQL password | `nil` | +| `postgresql.persistence.enabled` | Enable PostgreSQL persistence using PVC | `true` | +| `postgresql.persistence.storageClass` | PVC Storage Class for PostgreSQL volume | `nil` (uses alpha storage class annotation) | +| `postgresql.persistence.accessMode` | PVC Access Mode for PostgreSQL volume | `ReadWriteOnce` | +| `postgresql.persistence.size` | PVC Storage Request for PostgreSQL volume | `8Gi` | The above parameters map to the env variables defined in [bitnami/odoo](http://github.com/bitnami/bitnami-docker-odoo). For more information please refer to the [bitnami/odoo](http://github.com/bitnami/bitnami-docker-odoo) image documentation. diff --git a/upstreamed/odoo/templates/deployment.yaml b/upstreamed/odoo/templates/deployment.yaml index 7b51d9143..1a7ebb4f9 100644 --- a/upstreamed/odoo/templates/deployment.yaml +++ b/upstreamed/odoo/templates/deployment.yaml @@ -13,10 +13,16 @@ spec: labels: app: {{ template "odoo.fullname" . }} spec: + {{- if .Values.image.pullSecrets }} + imagePullSecrets: + {{- range .Values.image.pullSecrets }} + - name: {{ . }} + {{- end}} + {{- end }} containers: - name: {{ template "odoo.fullname" . }} - image: "{{ .Values.image }}" - imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }} + image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} env: - name: POSTGRESQL_HOST value: {{ template "odoo.postgresql.fullname" . }} @@ -54,7 +60,7 @@ spec: httpGet: path: / port: http - initialDelaySeconds: 180 + initialDelaySeconds: 300 timeoutSeconds: 30 readinessProbe: httpGet: diff --git a/upstreamed/odoo/values.yaml b/upstreamed/odoo/values.yaml index 658fe0129..11864a2c9 100644 --- a/upstreamed/odoo/values.yaml +++ b/upstreamed/odoo/values.yaml @@ -1,12 +1,21 @@ ## Bitnami Odoo image version ## ref: https://hub.docker.com/r/bitnami/odoo/tags/ ## -image: bitnami/odoo:11.0.20180315-r0 - -## Specify a imagePullPolicy -## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images -## -imagePullPolicy: IfNotPresent +image: + registry: docker.io + repository: bitnami/odoo + tag: 11.0.20180415 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: + # - myRegistrKeySecretName ## User of the application ## ref: https://github.com/bitnami/bitnami-docker-odoo#configuration diff --git a/upstreamed/opencart/Chart.yaml b/upstreamed/opencart/Chart.yaml index 6f292ef35..835270a8e 100644 --- a/upstreamed/opencart/Chart.yaml +++ b/upstreamed/opencart/Chart.yaml @@ -1,5 +1,5 @@ name: opencart -version: 0.7.0 +version: 1.0.5 appVersion: 3.0.2 description: A free and open source e-commerce platform for online merchants. It provides a professional and reliable foundation for a successful online store. diff --git a/upstreamed/opencart/OWNERS b/upstreamed/opencart/OWNERS index 0d4d6f129..4bf8a5c42 100644 --- a/upstreamed/opencart/OWNERS +++ b/upstreamed/opencart/OWNERS @@ -2,7 +2,9 @@ approvers: - prydonius - tompizmor - sameersbn +- carrodher reviewers: - prydonius - tompizmor - sameersbn +- carrodher diff --git a/upstreamed/opencart/README.md b/upstreamed/opencart/README.md index fb38216f8..ef1720c7e 100644 --- a/upstreamed/opencart/README.md +++ b/upstreamed/opencart/README.md @@ -10,7 +10,7 @@ $ helm install stable/opencart ## Introduction -This chart bootstraps a [OpenCart](https://github.com/bitnami/bitnami-docker-opencart) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. +This chart bootstraps an [OpenCart](https://github.com/bitnami/bitnami-docker-opencart) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. It also packages the [Bitnami MariaDB chart](https://github.com/kubernetes/charts/tree/master/stable/mariadb) which is required for bootstrapping a MariaDB deployment for the database requirements of the OpenCart application. @@ -43,12 +43,15 @@ The command removes all the Kubernetes components associated with the chart and ## Configuration -The following tables lists the configurable parameters of the OpenCart chart and their default values. +The following table lists the configurable parameters of the OpenCart chart and their default values. | Parameter | Description | Default | |-------------------------------------|-------------------------------------------|----------------------------------------------------------| -| `image` | OpenCart image | `bitnami/opencart:{VERSION}` | -| `imagePullPolicy` | Image pull policy | `Always` if `image` tag is `latest`, else `IfNotPresent` | +| `image.registry` | OpenCart image registry | `docker.io` | +| `image.repository` | OpenCart Image name | `bitnami/opencart` | +| `image.tag` | OpenCart Image tag | `{VERSION}` | +| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | +| `image.pullSecrets` | Specify image pull secrets | `nil` | | `opencartHost` | OpenCart host to create application URLs | `nil` | | `opencartLoadBalancerIP` | `loadBalancerIP` for the OpenCart Service | `nil` | | `opencartUsername` | User of the application | `user` | @@ -64,8 +67,8 @@ The following tables lists the configurable parameters of the OpenCart chart and | `externalDatabase.port` | Port of the external database | `3306` | | `externalDatabase.user` | Existing username in the external db | `bn_opencart` | | `externalDatabase.password` | Password for the above username | `nil` | -| `externalDatabase.database` | Name of the existing databse | `bitnami_opencart` | -| `mariadb.enabled` | Wheter to use or not the mariadb chart | `true` | +| `externalDatabase.database` | Name of the existing database | `bitnami_opencart` | +| `mariadb.enabled` | Whether to use MariaDB chart | `true` | | `mariadb.mariadbDatabase` | Database name to create | `bitnami_opencart` | | `mariadb.mariadbUser` | Database user to create | `bn_opencart` | | `mariadb.mariadbPassword` | Password for the database | `nil` | @@ -104,7 +107,7 @@ $ helm install --name my-release \ stable/opencart ``` -The above command sets the OpenCart administrator account username and password to `admin` and `password` respectively. Additionally it sets the MariaDB `root` user password to `secretpassword`. +The above command sets the OpenCart administrator account username and password to `admin` and `password` respectively. Additionally, it sets the MariaDB `root` user password to `secretpassword`. Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, diff --git a/upstreamed/opencart/templates/NOTES.txt b/upstreamed/opencart/templates/NOTES.txt index eff87e1c7..562392e63 100644 --- a/upstreamed/opencart/templates/NOTES.txt +++ b/upstreamed/opencart/templates/NOTES.txt @@ -51,7 +51,7 @@ host. To configure OpenCart with the URL of your service: kubectl port-forward $POD_NAME 8080:80 {{- else }} echo URL : http://{{ include "opencart.host" . }}/ - echo Adminstration URL : http://{{ include "opencart.host" . }}/admin + echo Administration URL : http://{{ include "opencart.host" . }}/admin {{- end }} 2. Get your OpenCart login credentials by running: diff --git a/upstreamed/opencart/templates/deployment.yaml b/upstreamed/opencart/templates/deployment.yaml index ecde22aec..e1cb82bbd 100644 --- a/upstreamed/opencart/templates/deployment.yaml +++ b/upstreamed/opencart/templates/deployment.yaml @@ -14,10 +14,16 @@ spec: labels: app: {{ template "opencart.fullname" . }} spec: + {{- if .Values.image.pullSecrets }} + imagePullSecrets: + {{- range .Values.image.pullSecrets }} + - name: {{ . }} + {{- end}} + {{- end }} containers: - name: {{ template "opencart.fullname" . }} - image: "{{ .Values.image }}" - imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }} + image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} env: - name: ALLOW_EMPTY_PASSWORD value: {{ .Values.allowEmptyPassword | quote }} diff --git a/upstreamed/opencart/values.yaml b/upstreamed/opencart/values.yaml index 196910ea1..2d42e4784 100644 --- a/upstreamed/opencart/values.yaml +++ b/upstreamed/opencart/values.yaml @@ -1,13 +1,21 @@ ## Bitnami OpenCart image version ## ref: https://hub.docker.com/r/bitnami/opencart/tags/ ## -image: bitnami/opencart:3.0.2-0-r4 - -## Specify a imagePullPolicy -## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' -## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images -## -# imagePullPolicy: +image: + registry: docker.io + repository: bitnami/opencart + tag: 3.0.2-0 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: + # - myRegistrKeySecretName ## OpenCart host to create application URLs ## ref: https://github.com/bitnami/bitnami-docker-opencart#configuration diff --git a/upstreamed/owncloud/Chart.yaml b/upstreamed/owncloud/Chart.yaml index 720b6acb7..088236480 100644 --- a/upstreamed/owncloud/Chart.yaml +++ b/upstreamed/owncloud/Chart.yaml @@ -1,5 +1,5 @@ name: owncloud -version: 0.6.0 +version: 1.0.5 appVersion: 10.0.7 description: A file sharing server that puts the control and security of your own data back into your hands. keywords: diff --git a/upstreamed/owncloud/OWNERS b/upstreamed/owncloud/OWNERS index 0d4d6f129..4bf8a5c42 100644 --- a/upstreamed/owncloud/OWNERS +++ b/upstreamed/owncloud/OWNERS @@ -2,7 +2,9 @@ approvers: - prydonius - tompizmor - sameersbn +- carrodher reviewers: - prydonius - tompizmor - sameersbn +- carrodher diff --git a/upstreamed/owncloud/README.md b/upstreamed/owncloud/README.md index b796ce222..9bd616652 100644 --- a/upstreamed/owncloud/README.md +++ b/upstreamed/owncloud/README.md @@ -10,7 +10,7 @@ $ helm install stable/owncloud ## Introduction -This chart bootstraps a [ownCloud](https://github.com/bitnami/bitnami-docker-owncloud) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. +This chart bootstraps an [ownCloud](https://github.com/bitnami/bitnami-docker-owncloud) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. It also packages the [Bitnami MariaDB chart](https://github.com/kubernetes/charts/tree/master/stable/mariadb) which is required for bootstrapping a MariaDB deployment for the database requirements of the ownCloud application. @@ -43,46 +43,48 @@ The command removes all the Kubernetes components associated with the chart and ## Configuration -The following tables lists the configurable parameters of the ownCloud chart and their default values. - -| Parameter | Description | Default | -|-------------------------------------|-------------------------------------------|---------------------------------------------| -| `image` | ownCloud image | `bitnami/owncloud:{VERSION}` | -| `imagePullPolicy` | Image pull policy | `IfNotPresent` | -| `ingress.enabled` | Enable use of ingress controllers | `false` | -| `ingress.servicePort` | Ingress' backend servicePort | `http` | -| `ingress.annotations` | An array of service annotations | `nil` | -| `ingress.tls` | Ingress TLS configuration | `[]` | -| `networkPolicyApiVersion` | The kubernetes network API version | `extensions/v1beta1` | -| `owncloudHost` | ownCloud host to create application URLs | `nil` | -| `owncloudLoadBalancerIP` | `loadBalancerIP` for the owncloud Service | `nil` | -| `owncloudUsername` | User of the application | `user` | -| `owncloudPassword` | Application password | Randomly generated | -| `owncloudEmail` | Admin email | `user@example.com` | -| `externalDatabase.host` | Host of the external database | `nil` | -| `allowEmptyPassword` | Allow DB blank passwords | `yes` | -| `externalDatabase.host` | Host of the external database | `nil` | -| `externalDatabase.port` | Port of the external database | `3306` | -| `externalDatabase.database` | Name of the existing databse | `bitnami_owncloud` | -| `externalDatabase.user` | Existing username in the external db | `bn_owncloud` | -| `externalDatabase.password` | Password for the above username | `nil` | -| `mariadb.mariadbDatabase` | Database name to create | `bitnami_owncloud` | -| `mariadb.enabled` | Wheter to use or not the mariadb chart | `true` | -| `mariadb.mariadbPassword` | Password for the database | `nil` | -| `mariadb.mariadbUser` | Database user to create | `bn_owncloud` | -| `mariadb.mariadbRootPassword` | MariaDB admin password | `nil` | -| `serviceType` | Kubernetes Service type | `LoadBalancer` | -| `persistence.enabled` | Enable persistence using PVC | `true` | -| `persistence.apache.storageClass` | PVC Storage Class for Apache volume | `nil` (uses alpha storage class annotation) | -| `persistence.apache.existingClaim` | An Existing PVC name for Apache volume | `nil` (uses alpha storage class annotation) | -| `persistence.apache.accessMode` | PVC Access Mode for Apache volume | `ReadWriteOnce` | -| `persistence.apache.size` | PVC Storage Request for Apache volume | `1Gi` | -| `persistence.owncloud.storageClass` | PVC Storage Class for ownCloud volume | `nil` (uses alpha storage class annotation) | -| `persistence.owncloud.existingClaim`| An Existing PVC name for ownCloud volume | `nil` (uses alpha storage class annotation) | -| `persistence.owncloud.accessMode` | PVC Access Mode for ownCloud volume | `ReadWriteOnce` | -| `persistence.owncloud.size` | PVC Storage Request for ownCloud volume | `8Gi` | -| `resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | +The following table lists the configurable parameters of the ownCloud chart and their default values. +| Parameter | Description | Default | +|-------------------------------------|-------------------------------------------|-------------------------------------------------------- | +| `image.registry` | ownCloud image registry | `docker.io` | +| `image.repository` | ownCloud Image name | `bitnami/owncloud` | +| `image.tag` | ownCloud Image tag | `{VERSION}` | +| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | +| `image.pullSecrets` | Specify image pull secrets | `nil` | +| `ingress.enabled` | Enable use of ingress controllers | `false` | +| `ingress.servicePort` | Ingress' backend servicePort | `http` | +| `ingress.annotations` | An array of service annotations | `nil` | +| `ingress.tls` | Ingress TLS configuration | `[]` | +| `networkPolicyApiVersion` | The kubernetes network API version | `extensions/v1beta1` | +| `owncloudHost` | ownCloud host to create application URLs | `nil` | +| `owncloudLoadBalancerIP` | `loadBalancerIP` for the owncloud Service | `nil` | +| `owncloudUsername` | User of the application | `user` | +| `owncloudPassword` | Application password | Randomly generated | +| `owncloudEmail` | Admin email | `user@example.com` | +| `externalDatabase.host` | Host of the external database | `nil` | +| `allowEmptyPassword` | Allow DB blank passwords | `yes` | +| `externalDatabase.host` | Host of the external database | `nil` | +| `externalDatabase.port` | Port of the external database | `3306` | +| `externalDatabase.database` | Name of the existing database | `bitnami_owncloud` | +| `externalDatabase.user` | Existing username in the external db | `bn_owncloud` | +| `externalDatabase.password` | Password for the above username | `nil` | +| `mariadb.mariadbDatabase` | Database name to create | `bitnami_owncloud` | +| `mariadb.enabled` | Whether to use the MariaDB chart | `true` | +| `mariadb.mariadbPassword` | Password for the database | `nil` | +| `mariadb.mariadbUser` | Database user to create | `bn_owncloud` | +| `mariadb.mariadbRootPassword` | MariaDB admin password | `nil` | +| `serviceType` | Kubernetes Service type | `LoadBalancer` | +| `persistence.enabled` | Enable persistence using PVC | `true` | +| `persistence.apache.storageClass` | PVC Storage Class for Apache volume | `nil` (uses alpha storage class annotation) | +| `persistence.apache.existingClaim` | An Existing PVC name for Apache volume | `nil` (uses alpha storage class annotation) | +| `persistence.apache.accessMode` | PVC Access Mode for Apache volume | `ReadWriteOnce` | +| `persistence.apache.size` | PVC Storage Request for Apache volume | `1Gi` | +| `persistence.owncloud.storageClass` | PVC Storage Class for ownCloud volume | `nil` (uses alpha storage class annotation) | +| `persistence.owncloud.existingClaim`| An Existing PVC name for ownCloud volume | `nil` (uses alpha storage class annotation) | +| `persistence.owncloud.accessMode` | PVC Access Mode for ownCloud volume | `ReadWriteOnce` | +| `persistence.owncloud.size` | PVC Storage Request for ownCloud volume | `8Gi` | +| `resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | The above parameters map to the env variables defined in [bitnami/owncloud](http://github.com/bitnami/bitnami-docker-owncloud). For more information please refer to the [bitnami/owncloud](http://github.com/bitnami/bitnami-docker-owncloud) image documentation. @@ -108,7 +110,7 @@ $ helm install --name my-release \ stable/owncloud ``` -The above command sets the ownCloud administrator account username and password to `admin` and `password` respectively. Additionally it sets the MariaDB `root` user password to `secretpassword`. +The above command sets the ownCloud administrator account username and password to `admin` and `password` respectively. Additionally, it sets the MariaDB `root` user password to `secretpassword`. Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, diff --git a/upstreamed/owncloud/templates/deployment.yaml b/upstreamed/owncloud/templates/deployment.yaml index 2ba8610cf..e159f6d7f 100644 --- a/upstreamed/owncloud/templates/deployment.yaml +++ b/upstreamed/owncloud/templates/deployment.yaml @@ -15,10 +15,16 @@ spec: labels: app: {{ template "owncloud.fullname" . }} spec: + {{- if .Values.image.pullSecrets }} + imagePullSecrets: + {{- range .Values.image.pullSecrets }} + - name: {{ . }} + {{- end}} + {{- end }} containers: - name: {{ template "owncloud.fullname" . }} - image: "{{ .Values.image }}" - imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }} + image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} env: - name: ALLOW_EMPTY_PASSWORD value: {{ .Values.allowEmptyPassword | quote }} diff --git a/upstreamed/owncloud/values.yaml b/upstreamed/owncloud/values.yaml index dffd18cb2..517a021d1 100644 --- a/upstreamed/owncloud/values.yaml +++ b/upstreamed/owncloud/values.yaml @@ -1,12 +1,21 @@ ## Bitnami ownCloud image version ## ref: https://hub.docker.com/r/bitnami/owncloud/tags/ ## -image: bitnami/owncloud:10.0.7-r4 - -## Specify a imagePullPolicy -## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images -## -imagePullPolicy: IfNotPresent +image: + registry: docker.io + repository: bitnami/owncloud + tag: 10.0.7 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: + # - myRegistrKeySecretName ## For Kubernetes v1.4, v1.5 and v1.6, use 'extensions/v1beta1' ## For Kubernetes v1.7, use 'networking.k8s.io/v1' diff --git a/upstreamed/parse/Chart.yaml b/upstreamed/parse/Chart.yaml index 4491692c3..22b9f02b6 100644 --- a/upstreamed/parse/Chart.yaml +++ b/upstreamed/parse/Chart.yaml @@ -1,5 +1,5 @@ name: parse -version: 0.3.9 +version: 1.0.2 appVersion: 2.7.4 description: Parse is a platform that enables users to add a scalable and powerful backend to launch a full-featured app for iOS, Android, JavaScript, Windows, Unity, and more. keywords: diff --git a/upstreamed/parse/OWNERS b/upstreamed/parse/OWNERS index 0d4d6f129..4bf8a5c42 100644 --- a/upstreamed/parse/OWNERS +++ b/upstreamed/parse/OWNERS @@ -2,7 +2,9 @@ approvers: - prydonius - tompizmor - sameersbn +- carrodher reviewers: - prydonius - tompizmor - sameersbn +- carrodher diff --git a/upstreamed/parse/README.md b/upstreamed/parse/README.md index 42cb77d31..e47a8205d 100644 --- a/upstreamed/parse/README.md +++ b/upstreamed/parse/README.md @@ -41,34 +41,40 @@ The command removes all the Kubernetes components associated with the chart and ## Configuration -The following tables lists the configurable parameters of the Parse chart and their default values. +The following table lists the configurable parameters of the Parse chart and their default values. -| Parameter | Description | Default | -|------------------------------------|----------------------------------------|---------------------------------------------| -| `serviceType` | Kubernetes Service type | `LoadBalancer` | -| `loadBalancerIP` | `loadBalancerIP` for the Parse Service | `nil` | -| `server.image` | Parse server image | `bitnami/parse:{VERSION}` | -| `server.imagePullPolicy` | Parse server image pull policy | `IfNotPresent` | -| `server.port` | Parse server server port | `1337` | -| `server.mountPath` | Parse server API mount path | `/parse` | -| `server.appId` | Parse server App Id | `myappID` | -| `server.masterKey` | Parse server Master Key | `random 10 character alphanumeric string` | -| `server.resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | -| `dashboard.enabled` | Enable parse dashboard | `true` | -| `dashboard.image` | Dashboard image | `bitnami/parse-dashboard:{VERSION}` | -| `dashboard.imagePullPolicy` | Dashboard image pull policy | `IfNotPresent` | -| `dashboard.username` | Dashboard username | `user` | -| `dashboard.password` | Dashboard user password | `random 10 character alphanumeric string` | -| `dashboard.appName` | Dashboard application name | `MyDashboard` | -| `dashboard.resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | -| `persistence.enabled` | Enable Parse persistence using PVC | `true` | -| `persistence.storageClass` | PVC Storage Class for Parse volume | `nil` (uses alpha storage class annotation) | -| `persistence.accessMode` | PVC Access Mode for Parse volume | `ReadWriteOnce` | -| `persistence.size` | PVC Storage Request for Parse volume | `8Gi` | -| `mongodb.persistence.enabled` | Enable MongoDB persistence using PVC | `true` | -| `mongodb.persistence.storageClass` | PVC Storage Class for MongoDB volume | `nil` (uses alpha storage class annotation) | -| `mongodb.persistence.accessMode` | PVC Access Mode for MongoDB volume | `ReadWriteOnce` | -| `mongodb.persistence.size` | PVC Storage Request for MongoDB volume | `8Gi` | +| Parameter | Description | Default | +|------------------------------------|----------------------------------------|-------------------------------------------------------- | +| `serviceType` | Kubernetes Service type | `LoadBalancer` | +| `loadBalancerIP` | `loadBalancerIP` for the Parse Service | `nil` | +| `server.image.registry` | Parse image registry | `docker.io` | +| `server.image.repository` | Parse image name | `bitnami/parse` | +| `server.image.tag` | Parse image tag | `{VERSION}` | +| `server.image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | +| `server.image.pullSecrets` | Specify image pull secrets | `nil` | +| `server.port` | Parse server server port | `1337` | +| `server.mountPath` | Parse server API mount path | `/parse` | +| `server.appId` | Parse server App Id | `myappID` | +| `server.masterKey` | Parse server Master Key | `random 10 character alphanumeric string` | +| `server.resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | +| `dashboard.enabled` | Enable parse dashboard | `true` | +| `dashboard.image.registry` | Dashboard image registry | `docker.io` | +| `dashboard.image.repository` | Dashboard image name | `bitnami/parse-dashboard` | +| `dashboard.image.tag` | Dashboard image tag | `{VERSION}` | +| `dashboard.image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | +| `dashboard.image.pullSecrets` | Specify image pull secrets | `nil` | +| `dashboard.username` | Dashboard username | `user` | +| `dashboard.password` | Dashboard user password | `random 10 character alphanumeric string` | +| `dashboard.appName` | Dashboard application name | `MyDashboard` | +| `dashboard.resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | +| `persistence.enabled` | Enable Parse persistence using PVC | `true` | +| `persistence.storageClass` | PVC Storage Class for Parse volume | `nil` (uses alpha storage class annotation) | +| `persistence.accessMode` | PVC Access Mode for Parse volume | `ReadWriteOnce` | +| `persistence.size` | PVC Storage Request for Parse volume | `8Gi` | +| `mongodb.persistence.enabled` | Enable MongoDB persistence using PVC | `true` | +| `mongodb.persistence.storageClass` | PVC Storage Class for MongoDB volume | `nil` (uses alpha storage class annotation) | +| `mongodb.persistence.accessMode` | PVC Access Mode for MongoDB volume | `ReadWriteOnce` | +| `mongodb.persistence.size` | PVC Storage Request for MongoDB volume | `8Gi` | The above parameters map to the env variables defined in [bitnami/parse](http://github.com/bitnami/bitnami-docker-parse). For more information please refer to the [bitnami/parse](http://github.com/bitnami/bitnami-docker-parse) image documentation. diff --git a/upstreamed/parse/templates/dashboard-deployment.yaml b/upstreamed/parse/templates/dashboard-deployment.yaml index abe28a61e..6df1eb419 100644 --- a/upstreamed/parse/templates/dashboard-deployment.yaml +++ b/upstreamed/parse/templates/dashboard-deployment.yaml @@ -18,10 +18,16 @@ spec: release: "{{ .Release.Name }}" component: "dashboard" spec: + {{- if .Values.dashboard.image.pullSecrets }} + imagePullSecrets: + {{- range .Values.dashboard.image.pullSecrets }} + - name: {{ . }} + {{- end}} + {{- end }} containers: - name: {{ template "parse.fullname" . }} image: "{{ .Values.dashboard.image.registry }}/{{ .Values.dashboard.image.repository }}:{{ .Values.dashboard.image.tag }}" - imagePullPolicy: {{ default .Values.dashboard.image.pullPolicy | quote }} + imagePullPolicy: {{ .Values.dashboard.image.pullPolicy | quote }} env: - name: PARSE_DASHBOARD_USER value: {{ .Values.dashboard.username }} diff --git a/upstreamed/parse/templates/server-deployment.yaml b/upstreamed/parse/templates/server-deployment.yaml index c2bddaece..2c6fc3f9e 100644 --- a/upstreamed/parse/templates/server-deployment.yaml +++ b/upstreamed/parse/templates/server-deployment.yaml @@ -17,10 +17,16 @@ spec: release: "{{ .Release.Name }}" component: "server" spec: + {{- if .Values.server.image.pullSecrets }} + imagePullSecrets: + {{- range .Values.server.image.pullSecrets }} + - name: {{ . }} + {{- end}} + {{- end }} containers: - name: {{ template "parse.fullname" . }} image: "{{ .Values.server.image.registry }}/{{ .Values.server.image.repository }}:{{ .Values.server.image.tag }}" - imagePullPolicy: {{ default .Values.server.image.pullPolicy | quote }} + imagePullPolicy: {{ .Values.server.image.pullPolicy | quote }} env: - name: PARSE_HOST value: "0.0.0.0" diff --git a/upstreamed/parse/values.yaml b/upstreamed/parse/values.yaml index 5c25516c8..aa2badfea 100644 --- a/upstreamed/parse/values.yaml +++ b/upstreamed/parse/values.yaml @@ -15,13 +15,18 @@ server: image: registry: docker.io repository: bitnami/parse - tag: 2.7.4-r0 + tag: 2.7.4 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## pullPolicy: IfNotPresent - - ## Specify a imagePullPolicy - ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images - ## - imagePullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: + # - myRegistrKeySecretName ## Parse Server Port ## ref: https://github.com/bitnami/bitnami-docker-parse#configuration @@ -62,13 +67,18 @@ dashboard: image: registry: docker.io repository: bitnami/parse-dashboard - tag: 1.1.2-r2 + tag: 1.2.0 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## pullPolicy: IfNotPresent - - ## Specify a imagePullPolicy - ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images - ## - imagePullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: + # - myRegistrKeySecretName ## Parse Dashboard application username ## ref: https://github.com/bitnami/bitnami-docker-parse-dashboard#configuration diff --git a/upstreamed/rabbitmq/Chart.yaml b/upstreamed/rabbitmq/Chart.yaml index 6fbb9f8a5..5065595df 100644 --- a/upstreamed/rabbitmq/Chart.yaml +++ b/upstreamed/rabbitmq/Chart.yaml @@ -1,5 +1,5 @@ name: rabbitmq -version: 0.6.25 +version: 0.7.6 appVersion: 3.7.4 description: Open source message broker software that implements the Advanced Message Queuing Protocol (AMQP) keywords: diff --git a/upstreamed/rabbitmq/OWNERS b/upstreamed/rabbitmq/OWNERS index 0d4d6f129..4bf8a5c42 100644 --- a/upstreamed/rabbitmq/OWNERS +++ b/upstreamed/rabbitmq/OWNERS @@ -2,7 +2,9 @@ approvers: - prydonius - tompizmor - sameersbn +- carrodher reviewers: - prydonius - tompizmor - sameersbn +- carrodher diff --git a/upstreamed/rabbitmq/README.md b/upstreamed/rabbitmq/README.md index e85fdfc07..a17b05c32 100644 --- a/upstreamed/rabbitmq/README.md +++ b/upstreamed/rabbitmq/README.md @@ -41,31 +41,47 @@ The command removes all the Kubernetes components associated with the chart and ## Configuration -The following tables lists the configurable parameters of the RabbitMQ chart and their default values. +The following table lists the configurable parameters of the RabbitMQ chart and their default values. | Parameter | Description | Default | |-----------------------------|---------------------------------------------------------|----------------------------------------------------------| -| `image` | RabbitMQ image | `bitnami/rabbitmq:{VERSION}` | -| `imagePullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent`. | -| `rabbitmqUsername` | RabbitMQ application username | `user` | -| `rabbitmqPassword` | RabbitMQ application password | _random 10 character long alphanumeric string_ | -| `rabbitmqErlangCookie` | Erlang cookie | _random 32 character long alphanumeric string_ | -| `rabbitmqNodePort` | Node port | `5672` | -| `rabbitmqNodeType` | Node type | `stats` | -| `rabbitmqNodeName` | Node name | `rabbit` | -| `rabbitmqClusterNodeName` | Node name to cluster with. e.g.: `clusternode@hostname` | `nil` | -| `rabbitmqVhost` | RabbitMQ application vhost | `/` | -| `rabbitmqManagerPort` | RabbitMQ Manager port | `15672` | -| `rabbitmqDiskFreeLimit` | Disk free limit | `"6GiB"` | +| `image.registry` | Rabbitmq Image registry | `docker.io` | +| `image.repository` | Rabbitmq Image name | `bitnami/rabbitmq` | +| `image.tag` | Rabbitmq Image tag | `{VERSION}` | +| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | +| `image.pullSecrets` | Specify docker-ragistry secret names as an array | `nil` | +| `image.debug` | Specify if debug values should be set | `false` | +| `rbacEnabled` | Specify if rbac is enabled in your cluster | `false` | +| `rabbitmq.username` | RabbitMQ application username | `user` | +| `rabbitmq.password` | RabbitMQ application password | _random 10 character long alphanumeric string_ | +| `rabbitmq.erlangCookie` | Erlang cookie | _random 32 character long alphanumeric string_ | +| `rabbitmq.nodePort` | Node port | `5672` | +| `rabbitmq.managerPort` | RabbitMQ Manager port | `15672` | +| `rabbitmq.diskFreeLimit` | Disk free limit | `"6GiB"` | +| `rabbitmq.plugins` | configuration file for plugins to enable | `[rabbitmq_management,rabbitmq_peer_discovery_k8s].` | +| `rabbitmq.configuration` | rabbitmq.conf content | see values.yaml | | `serviceType` | Kubernetes Service type | `ClusterIP` | | `persistence.enabled` | Use a PVC to persist data | `true` | | `persistence.existingClaim` | Use an existing PVC to persist data | `nil` | | `persistence.storageClass` | Storage class of backing PVC | `nil` (uses alpha storage class annotation) | | `persistence.accessMode` | Use volume as ReadOnly or ReadWrite | `ReadWriteOnce` | | `persistence.size` | Size of data volume | `8Gi` | +| `resources` | resource needs and limits to apply to the pod | {} | | `nodeSelector` | Node labels for pod assignment | {} | | `affinity` | Affinity settings for pod assignment | {} | | `tolerations` | Toleration labels for pod assignment | [] | +| `ingress.enabled` | enable ingress for management console | `false` | +| `ingress.tls` | enable ingress with tls | `false` | +| `ingress.tlsSecret` | tls type secret to be used | `myTlsSecret` | +| `ingress.annotations` | ingress annotations as an array | [] | +| `livenessProbe.enabled` | would you like a livessProbed to be enabled | `true` | +| `livenessProbe.initialDelaySeconds` | number of seconds | 120 | +| `livenessProbe.timeoutSeconds` | number of seconds | 5 | +| `livenessProbe.failureThreshold` | number of failures | 6 | +| `readinessProbe.enabled` | would you like a readinessProbe to be enabled | `true` | +| `readinessProbe.initialDelaySeconds` | number of seconds | 10 | +| `readinessProbe.timeoutSeconds` | number of seconds | 3 | +| `readinessProbe.periodSeconds ` | number of seconds | 5 | The above parameters map to the env variables defined in [bitnami/rabbitmq](http://github.com/bitnami/bitnami-docker-rabbitmq). For more information please refer to the [bitnami/rabbitmq](http://github.com/bitnami/bitnami-docker-rabbitmq) image documentation. @@ -73,7 +89,7 @@ Specify each parameter using the `--set key=value[,key=value]` argument to `helm ```bash $ helm install --name my-release \ - --set rabbitmqUsername=admin,rabbitmqPassword=secretpassword,rabbitmqErlangCookie=secretcookie \ + --set rabbitmq.username=admin,rabbitmq.password=secretpassword,rabbitmq.erlangCookie=secretcookie \ stable/rabbitmq ``` @@ -87,18 +103,24 @@ $ helm install --name my-release -f values.yaml stable/rabbitmq > **Tip**: You can use the default [values.yaml](values.yaml) +## Production configuration +A standard configuration is provided by default that will run on most development environments. To operate this chart in a production environment, we recommend you use the alternative file values-production.yaml provided in this repository. +```bash +$ helm install --name my-release -f values-production.yaml stable/rabbitmq +``` + ## Persistence The [Bitnami RabbitMQ](https://github.com/bitnami/bitnami-docker-rabbitmq) image stores the RabbitMQ data and configurations at the `/bitnami/rabbitmq` path of the container. -The chart mounts a [Persistent Volume](http://kubernetes.io/docs/user-guide/persistent-volumes/) volume at this location. By default, the volume is created using dynamic volume provisioning. An existing PersistentVolumeClaim can also be defined. - +The chart mounts a [Persistent Volume](http://kubernetes.io/docs/user-guide/persistent-volumes/) at this location. By default, the volume is created using dynamic volume provisioning. An existing PersistentVolumeClaim can also be defined. ### Existing PersistentVolumeClaims 1. Create the PersistentVolume 1. Create the PersistentVolumeClaim 1. Install the chart + ```bash $ helm install --set persistence.existingClaim=PVC_NAME rabbitmq ``` diff --git a/upstreamed/rabbitmq/templates/NOTES.txt b/upstreamed/rabbitmq/templates/NOTES.txt index f6c45d4a7..eb751c76e 100644 --- a/upstreamed/rabbitmq/templates/NOTES.txt +++ b/upstreamed/rabbitmq/templates/NOTES.txt @@ -1,55 +1,61 @@ ** Please be patient while the chart is being deployed ** - Credentials: +Credentials: - echo Username : {{ .Values.rabbitmqUsername }} + Username : {{ .Values.rabbitmq.username }} echo Password : $(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "rabbitmq.fullname" . }} -o jsonpath="{.data.rabbitmq-password}" | base64 --decode) echo ErLang Cookie : $(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "rabbitmq.fullname" . }} -o jsonpath="{.data.rabbitmq-erlang-cookie}" | base64 --decode) - RabbitMQ can be accessed within the cluster on port {{ .Values.rabbitmqNodePort }} at {{ template "rabbitmq.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local +RabbitMQ can be accessed within the cluster on port {{ .Values.rabbitmq.nodePort }} at {{ template "rabbitmq.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local - To access for outside the cluster execute the following commands: +To access for outside the cluster, perform the following steps: {{- if contains "NodePort" .Values.serviceType }} +Obtain the NodePort IP and ports: + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") export NODE_PORT_AMQP=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[1].nodePort}" services {{ template "rabbitmq.fullname" . }}) export NODE_PORT_STATS=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[3].nodePort}" services {{ template "rabbitmq.fullname" . }}) - To Access the RabbitMQ AMQP port: +To Access the RabbitMQ AMQP port: - echo amqp://$NODE_IP:$NODE_PORT_AMQP/ + echo URL : amqp://$NODE_IP:$NODE_PORT_AMQP/ - To Access the RabbitMQ Management interface: +To Access the RabbitMQ Management interface: - echo http://$NODE_IP:$NODE_PORT_STATS/ + echo URL : http://$NODE_IP:$NODE_PORT_STATS/ {{- else if contains "LoadBalancer" .Values.serviceType }} - NOTE: It may take a few minutes for the LoadBalancer IP to be available. - Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "rabbitmq.fullname" . }}' +Obtain the LoadBalancer IP: + +NOTE: It may take a few minutes for the LoadBalancer IP to be available. + Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "rabbitmq.fullname" . }}' export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "rabbitmq.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') - To Access the RabbitMQ AMQP port: +To Access the RabbitMQ AMQP port: - echo amqp://$SERVICE_IP:{{ .Values.rabbitmqNodePort }}/ + echo URL : amqp://$SERVICE_IP:{{ .Values.rabbitmq.nodePort }}/ - To Access the RabbitMQ Management interface: +To Access the RabbitMQ Management interface: - echo http://$SERVICE_IP:{{ .Values.rabbitmqManagerPort }}/ + echo URL : http://$SERVICE_IP:{{ .Values.rabbitmq.managerPort }}/ {{- else if contains "ClusterIP" .Values.serviceType }} - export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "rabbitmq.fullname" . }}" -o jsonpath="{.items[0].metadata.name}") - kubectl port-forward $POD_NAME {{ .Values.rabbitmqNodePort }}:{{ .Values.rabbitmqNodePort }} {{ .Values.rabbitmqManagerPort }}:{{ .Values.rabbitmqManagerPort }} +Create a proxy server between localhost and the Kubernetes API Server: - To Access the RabbitMQ AMQP port: + kubectl proxy --port 8002 - echo amqp://127.0.0.1:{{ .Values.rabbitmqNodePort }}/ +To Access the RabbitMQ AMQP port: - To Access the RabbitMQ Management interface: + URL : amqp://127.0.0.1:8002/api/v1/proxy/namespaces/{{ .Release.Namespace }}/services/{{ template "rabbitmq.fullname" . }}:{{ .Values.rabbitmq.nodePort }}/ + +To Access the RabbitMQ Management interface: + + URL : http://127.0.0.1:8002/api/v1/proxy/namespaces/{{ .Release.Namespace }}/services/{{ template "rabbitmq.fullname" . }}:{{ .Values.rabbitmq.managerPort }}/ - echo URL : http://127.0.0.1:{{ .Values.rabbitmqManagerPort }} {{- end }} diff --git a/upstreamed/rabbitmq/templates/_helpers.tpl b/upstreamed/rabbitmq/templates/_helpers.tpl index 9a8a29ec9..bff1dbccd 100644 --- a/upstreamed/rabbitmq/templates/_helpers.tpl +++ b/upstreamed/rabbitmq/templates/_helpers.tpl @@ -9,8 +9,24 @@ Expand the name of the chart. {{/* 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). +If release name contains chart name it will be used as a full name. */}} {{- define "rabbitmq.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} {{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} {{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "rabbitmq.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} \ No newline at end of file diff --git a/upstreamed/rabbitmq/templates/configuration.yaml b/upstreamed/rabbitmq/templates/configuration.yaml new file mode 100644 index 000000000..fc8dbffd4 --- /dev/null +++ b/upstreamed/rabbitmq/templates/configuration.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "rabbitmq.fullname" . }}-config + labels: + app: {{ template "rabbitmq.name" . }} + chart: {{ template "rabbitmq.chart" . }} + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +data: + enabled_plugins: |- +{{ .Values.rabbitmq.plugins | indent 4 }} + rabbitmq.conf: |- + ##username and password + default_user={{.Values.rabbitmq.username}} + default_pass=CHANGEME +{{ .Values.rabbitmq.configuration | indent 4 }} + + \ No newline at end of file diff --git a/upstreamed/rabbitmq/templates/ingress.yaml b/upstreamed/rabbitmq/templates/ingress.yaml new file mode 100644 index 000000000..4c0f21ac6 --- /dev/null +++ b/upstreamed/rabbitmq/templates/ingress.yaml @@ -0,0 +1,41 @@ +{{- if .Values.ingress.enabled }} +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: "{{ template "rabbitmq.fullname" . }}" + labels: + app: {{ template "rabbitmq.name" . }} + chart: {{ template "rabbitmq.chart" . }} + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + annotations: + {{- if .Values.ingress.tls }} + ingress.kubernetes.io/secure-backends: "true" + {{- end }} + {{- range $key, $value := .Values.ingress.annotations }} + {{ $key }}: {{ $value | quote }} + {{- end }} +spec: + rules: + {{- if .Values.ingress.hostName }} + - host: {{ .Values.ingress.hostName }} + http: + {{- else }} + - http: + {{- end }} + paths: + - path: {{ default "/" .path }} + backend: + serviceName: {{ template "rabbitmq.fullname" . }} + servicePort: {{ .Values.rabbitmq.managerPort }} +{{- if .Values.ingress.tls }} + tls: + - hosts: + {{- if .Values.ingress.hostName }} + - {{ .Values.ingress.hostName }} + secretName: {{ .Values.ingress.tlsSecret }} + {{- else}} + - secretName: {{ .Values.ingress.tlsSecret }} + {{- end }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/upstreamed/rabbitmq/templates/pvc.yaml b/upstreamed/rabbitmq/templates/pvc.yaml index 455e2d80c..2d62f9bff 100644 --- a/upstreamed/rabbitmq/templates/pvc.yaml +++ b/upstreamed/rabbitmq/templates/pvc.yaml @@ -3,6 +3,11 @@ kind: PersistentVolumeClaim apiVersion: v1 metadata: name: {{ template "rabbitmq.fullname" . }} + labels: + app: {{ template "rabbitmq.name" . }} + chart: {{ template "rabbitmq.chart" . }} + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" spec: accessModes: - {{ .Values.persistence.accessMode | quote }} diff --git a/upstreamed/rabbitmq/templates/role.yaml b/upstreamed/rabbitmq/templates/role.yaml new file mode 100644 index 000000000..f4bea319c --- /dev/null +++ b/upstreamed/rabbitmq/templates/role.yaml @@ -0,0 +1,15 @@ +{{- if .Values.rbacEnabled }} +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ template "rabbitmq.fullname" . }}-endpoint-reader + labels: + app: {{ template "rabbitmq.name" . }} + chart: {{ template "rabbitmq.chart" . }} + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +rules: +- apiGroups: [""] + resources: ["endpoints"] + verbs: ["get"] +{{- end }} diff --git a/upstreamed/rabbitmq/templates/rolebinding.yaml b/upstreamed/rabbitmq/templates/rolebinding.yaml new file mode 100644 index 000000000..bf315b5ea --- /dev/null +++ b/upstreamed/rabbitmq/templates/rolebinding.yaml @@ -0,0 +1,18 @@ +{{- if .Values.rbacEnabled }} +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: {{ template "rabbitmq.fullname" . }}-endpoint-reader + labels: + app: {{ template "rabbitmq.name" . }} + chart: {{ template "rabbitmq.chart" . }} + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +subjects: +- kind: ServiceAccount + name: {{ template "rabbitmq.fullname" . }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ template "rabbitmq.fullname" . }}-endpoint-reader +{{- end }} diff --git a/upstreamed/rabbitmq/templates/secrets.yaml b/upstreamed/rabbitmq/templates/secrets.yaml index 4ae5fd0d1..b5362f142 100644 --- a/upstreamed/rabbitmq/templates/secrets.yaml +++ b/upstreamed/rabbitmq/templates/secrets.yaml @@ -3,19 +3,19 @@ kind: Secret metadata: name: {{ template "rabbitmq.fullname" . }} labels: - app: {{ template "rabbitmq.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + app: {{ template "rabbitmq.name" . }} + chart: {{ template "rabbitmq.chart" . }} release: "{{ .Release.Name }}" heritage: "{{ .Release.Service }}" type: Opaque data: - {{ if .Values.rabbitmqPassword }} - rabbitmq-password: {{ .Values.rabbitmqPassword | b64enc | quote }} + {{ if .Values.rabbitmq.password }} + rabbitmq-password: {{ .Values.rabbitmq.password | b64enc | quote }} {{ else }} rabbitmq-password: {{ randAlphaNum 10 | b64enc | quote }} {{ end }} - {{ if .Values.rabbitmqErlangCookie }} - rabbitmq-erlang-cookie: {{ .Values.rabbitmqErlangCookie | b64enc | quote }} + {{ if .Values.rabbitmq.erlangCookie }} + rabbitmq-erlang-cookie: {{ .Values.rabbitmq.erlangCookie | b64enc | quote }} {{ else }} rabbitmq-erlang-cookie: {{ randAlphaNum 32 | b64enc | quote }} {{ end }} diff --git a/upstreamed/rabbitmq/templates/serviceaccount.yaml b/upstreamed/rabbitmq/templates/serviceaccount.yaml new file mode 100644 index 000000000..19b4911ab --- /dev/null +++ b/upstreamed/rabbitmq/templates/serviceaccount.yaml @@ -0,0 +1,11 @@ +{{- if .Values.rbacEnabled }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "rabbitmq.fullname" . }} + labels: + app: {{ template "rabbitmq.name" . }} + chart: {{ template "rabbitmq.chart" . }} + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +{{- end }} diff --git a/upstreamed/rabbitmq/templates/statefulset.yaml b/upstreamed/rabbitmq/templates/statefulset.yaml new file mode 100644 index 000000000..36804f382 --- /dev/null +++ b/upstreamed/rabbitmq/templates/statefulset.yaml @@ -0,0 +1,152 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: {{ template "rabbitmq.fullname" . }} + labels: + app: {{ template "rabbitmq.name" . }} + chart: {{ template "rabbitmq.chart" . }} + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +spec: + serviceName: {{ template "rabbitmq.fullname" . }} + replicas: {{ .Values.replicas }} + selector: + matchLabels: + app: {{ template "rabbitmq.name" . }} + release: "{{ .Release.Name }}" + template: + metadata: + labels: + app: {{ template "rabbitmq.name" . }} + release: "{{ .Release.Name }}" + spec: + {{- if .Values.image.pullSecrets }} + imagePullSecrets: + {{- range .Values.image.pullSecrets }} + - name: {{ . }} + {{- end}} + {{- end }} + {{- if .Values.rbacEnabled}} + serviceAccountName: {{ template "rabbitmq.fullname" . }} + {{- end }} + {{- if .Values.affinity }} + affinity: +{{ toYaml .Values.affinity | indent 8 }} + {{- end }} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 8 }} + {{- end }} + {{- if .Values.tolerations }} + tolerations: +{{ toYaml .Values.tolerations | indent 8 }} + {{- end }} + terminationGracePeriodSeconds: 10 + containers: + - name: {{ template "rabbitmq.fullname" . }} + image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} + command: + - bash + - -ec + - | + #create the var/lib/rabbitmq directory under the bitnami folder + mkdir -p /opt/bitnami/rabbitmq/var/lib/rabbitmq/ + + #persist the erlang cookie in both places for server and cli tools + echo $RABBITMQ_ERL_COOKIE > /opt/bitnami/rabbitmq/var/lib/rabbitmq/.erlang.cookie + cp /opt/bitnami/rabbitmq/var/lib/rabbitmq/.erlang.cookie /root + + #change permision so only the user has access to the cookie file + chmod 400 /root/.erlang.cookie + chmod 400 /opt/bitnami/rabbitmq/var/lib/rabbitmq/.erlang.cookie + + #copy the mounted configuration to both places + cp /opt/bitnami/rabbitmq/conf/* /opt/bitnami/rabbitmq/etc/rabbitmq + + #replace the default password that is generated + sed -i "s/CHANGEME/$RABBITMQ_PASSWORD/g" /opt/bitnami/rabbitmq/etc/rabbitmq/rabbitmq.conf + + exec rabbitmq-server + {{- if .Values.resources }} + resources: +{{ toYaml .Values.resources | indent 10 }} + {{- end }} + volumeMounts: + - name: config-volume + mountPath: /opt/bitnami/rabbitmq/conf + - name: data + mountPath: /bitnami/rabbitmq + ports: + - name: epmd + containerPort: 4369 + - name: amqp + containerPort: {{ .Values.rabbitmq.nodePort }} + - name: dist + containerPort: {{ .Values.rabbitmq.nodePort | add 20000 }} + - name: stats + containerPort: {{ .Values.rabbitmq.managerPort }} + {{- if .Values.livenessProbe.enabled }} + livenessProbe: + exec: + command: + - rabbitmqctl + - status + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + {{- end }} + {{- if .Values.readinessProbe.enabled }} + readinessProbe: + exec: + command: + - rabbitmqctl + - status + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + {{- end }} + env: + {{- if .Values.image.debug}} + - name: BASH_DEBUG + value: 1 + - name: NAMI_DEBUG + value: 1 + {{- end }} + - name: MY_POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: RABBITMQ_USE_LONGNAME + value: "true" + - name: RABBITMQ_NODENAME + value: "rabbit@$(MY_POD_IP)" + - name: K8S_SERVICE_NAME + value: "{{ template "rabbitmq.fullname" . }}" + - name: RABBITMQ_ERL_COOKIE + valueFrom: + secretKeyRef: + name: {{ template "rabbitmq.fullname" . }} + key: rabbitmq-erlang-cookie + - name: RABBITMQ_PASSWORD + valueFrom: + secretKeyRef: + name: {{ template "rabbitmq.fullname" . }} + key: rabbitmq-password + volumes: + - name: config-volume + configMap: + name: {{ template "rabbitmq.fullname" . }}-config + items: + - key: rabbitmq.conf + path: rabbitmq.conf + - key: enabled_plugins + path: enabled_plugins + - name: data + {{- if .Values.persistence.enabled }} + persistentVolumeClaim: + claimName: {{ .Values.persistence.existingClaim | default (include "rabbitmq.fullname" .) }} + {{- else }} + emptyDir: {} + {{- end -}} + diff --git a/upstreamed/rabbitmq/templates/svc.yaml b/upstreamed/rabbitmq/templates/svc.yaml index a429c288c..daa6e4154 100644 --- a/upstreamed/rabbitmq/templates/svc.yaml +++ b/upstreamed/rabbitmq/templates/svc.yaml @@ -3,8 +3,8 @@ kind: Service metadata: name: {{ template "rabbitmq.fullname" . }} labels: - app: {{ template "rabbitmq.fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + app: {{ template "rabbitmq.name" . }} + chart: {{ template "rabbitmq.chart" . }} release: "{{ .Release.Name }}" heritage: "{{ .Release.Service }}" spec: @@ -14,13 +14,14 @@ spec: port: 4369 targetPort: epmd - name: amqp - port: {{ default "5672" .Values.rabbitmqNodePort }} + port: {{ .Values.rabbitmq.nodePort }} targetPort: amqp - name: dist - port: {{ default "5672" .Values.rabbitmqNodePort | add 20000 }} + port: {{ .Values.rabbitmq.nodePort | add 20000 }} targetPort: dist - name: stats - port: {{ default "15672" .Values.rabbitmqManagerPort }} + port: {{ .Values.rabbitmq.managerPort }} targetPort: stats selector: - app: {{ template "rabbitmq.fullname" . }} + app: {{ template "rabbitmq.name" . }} + release: "{{ .Release.Name }}" diff --git a/upstreamed/rabbitmq/values-production.yaml b/upstreamed/rabbitmq/values-production.yaml new file mode 100644 index 000000000..2e1ffd25d --- /dev/null +++ b/upstreamed/rabbitmq/values-production.yaml @@ -0,0 +1,170 @@ +## Bitnami RabbitMQ image version +## ref: https://hub.docker.com/r/bitnami/rabbitmq/tags/ +## +image: + registry: docker.io + repository: bitnami/rabbitmq + tag: 3.7.4-r1 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## + pullPolicy: IfNotPresent + + ## set to true if you would like to see extra information on logs + ## it turns BASH and NAMI debugging in minideb + ## ref: https://github.com/bitnami/minideb-extras/#turn-on-bash-debugging + debug: false + + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: + # - myRegistrKeySecretName + + +## does your cluster have rbac enabled? +rbacEnabled: true + +## section of specific values for rabbitmq +rabbitmq: + ## RabbitMQ application username + ## ref: https://github.com/bitnami/bitnami-docker-rabbitmq/blob/master/README.md#creating-a-database-user-on-first-run + ## + username: user + + ## RabbitMQ application password + ## ref: https://github.com/bitnami/bitnami-docker-rabbitmq/blob/master/README.md#creating-a-database-user-on-first-run + ## + # password: + + ## Erlang cookie to determine whether different nodes are allowed to communicate with each other + ## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables + ## + # erlangCookie: + + ## Node port + ## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables + ## + nodePort: 5672 + + ## Node name to cluster with. e.g.: `clusternode@hostname` + ## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables + ## + # rabbitmqClusterNodeName: + + ## RabbitMQ Manager port + ## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables + ## + managerPort: 15672 + + ## RabbitMQ Disk free limit + ## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables + ## ref: https://www.rabbitmq.com/disk-alarms.html + ## + diskFreeLimit: '"6GiB"' + + ## Plugins to enable + plugins: |- + [rabbitmq_management,rabbitmq_peer_discovery_k8s]. + + ## Configution file content + configuration: |- + ## Clustering + cluster_formation.peer_discovery_backend = rabbit_peer_discovery_k8s + cluster_formation.k8s.host = kubernetes.default.svc.cluster.local + cluster_formation.k8s.address_type = ip + cluster_formation.node_cleanup.interval = 10 + cluster_formation.node_cleanup.only_log_warning = false + cluster_partition_handling = autoheal + ## queue master locator + queue_master_locator=min-masters + ## enable guest user + loopback_users.guest = false +## Kubernetes service type +serviceType: ClusterIP + +persistence: + enabled: true + + ## A manually managed Persistent Volume and Claim + ## Requires persistence.enabled: true + ## If defined, PVC must be created manually before volume will be bound + # existingClaim: + + ## rabbitmq data Persistent Volume Storage Class + ## If defined, storageClassName: + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + ## + # storageClass: "-" + accessMode: ReadWriteOnce + + # If you change this value, you might have to adjust `rabbitmq.diskFreeLimit` as well. + size: 8Gi + +## Configure resource requests and limits +## ref: http://kubernetes.io/docs/user-guide/compute-resources/ +## +resources: + requests: + memory: 256Mi + cpu: 100m + +## Replica count, set to 3 to provide a default available cluster +replicas: 3 + +## Node labels and tolerations for pod assignment +## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector +## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature +nodeSelector: + beta.kubernetes.io/arch: amd64 +tolerations: [] +affinity: {} + +## Configure the ingress resource that allows you to access the +## Wordpress installation. Set up the URL +## ref: http://kubernetes.io/docs/user-guide/ingress/ +## +ingress: + ## Set to true to enable ingress record generation + enabled: false + + ## The list of hostnames to be covered with this ingress record. + ## Most likely this will be just one host, but in the event more hosts are needed, this is an array + ## hostName: foo.bar.com + + ## Set this to true in order to enable TLS on the ingress record + ## A side effect of this will be that the backend wordpress service will be connected at port 443 + tls: true + + ## If TLS is set to true, you must declare what secret will store the key/certificate for TLS + tlsSecret: myTlsSecret + + ## Ingress annotations done as key:value pairs + ## If you're using kube-lego, you will want to add: + ## kubernetes.io/tls-acme: true + ## + ## For a full list of possible ingress annotations, please see + ## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/annotations.md + ## + ## If tls is set to true, annotation ingress.kubernetes.io/secure-backends: "true" will automatically be set + annotations: + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: true + + #The following settings are to configure the frequency of the lifeness and readiness probes +livenessProbe: + enabled: true + initialDelaySeconds: 120 + timeoutSeconds: 5 + failureThreshold: 6 + +readinessProbe: + enabled: true + initialDelaySeconds: 10 + timeoutSeconds: 3 + periodSeconds: 5 diff --git a/upstreamed/rabbitmq/values.yaml b/upstreamed/rabbitmq/values.yaml index b4d344607..02c26484f 100644 --- a/upstreamed/rabbitmq/values.yaml +++ b/upstreamed/rabbitmq/values.yaml @@ -1,70 +1,92 @@ ## Bitnami RabbitMQ image version ## ref: https://hub.docker.com/r/bitnami/rabbitmq/tags/ ## -image: bitnami/rabbitmq:3.7.4-r1 +image: + registry: docker.io + repository: bitnami/rabbitmq + tag: 3.7.4 -## Specify a imagePullPolicy -## 'Always' if imageTag is 'latest', else set to 'IfNotPresent' -## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images -## -# imagePullPolicy: + ## set to true if you would like to see extra information on logs + ## it turns BASH and NAMI debugging in minideb + ## ref: https://github.com/bitnami/minideb-extras/#turn-on-bash-debugging + debug: false -## RabbitMQ application username -## ref: https://github.com/bitnami/bitnami-docker-rabbitmq/blob/master/README.md#creating-a-database-user-on-first-run -## -rabbitmqUsername: user + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: + # - myRegistrKeySecretName -## RabbitMQ application password -## ref: https://github.com/bitnami/bitnami-docker-rabbitmq/blob/master/README.md#creating-a-database-user-on-first-run -## -# rabbitmqPassword: +## does your cluster have rbac enabled? assume no by default +rbacEnabled: false -## Erlang cookie to determine whether different nodes are allowed to communicate with each other -## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables -## -# rabbitmqErlangCookie: +## section of specific values for rabbitmq +rabbitmq: + ## RabbitMQ application username + ## ref: https://github.com/bitnami/bitnami-docker-rabbitmq/blob/master/README.md#creating-a-database-user-on-first-run + ## + username: user -## Node port -## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables -## -rabbitmqNodePort: 5672 + ## RabbitMQ application password + ## ref: https://github.com/bitnami/bitnami-docker-rabbitmq/blob/master/README.md#creating-a-database-user-on-first-run + ## + # password: -## Node Type -## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables -## -rabbitmqNodeType: stats + ## Erlang cookie to determine whether different nodes are allowed to communicate with each other + ## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables + ## + # erlangCookie: -## Node Name -## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables -## -rabbitmqNodeName: rabbit + ## Node port + ## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables + ## + nodePort: 5672 -## Node name to cluster with. e.g.: `clusternode@hostname` -## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables -## -# rabbitmqClusterNodeName: + ## Node name to cluster with. e.g.: `clusternode@hostname` + ## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables + ## + # rabbitmqClusterNodeName: -## RabbitMQ application vhost -## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables -## -rabbitmqVhost: / + ## RabbitMQ Manager port + ## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables + ## + managerPort: 15672 -## RabbitMQ Manager port -## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables -## -rabbitmqManagerPort: 15672 + ## RabbitMQ Disk free limit + ## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables + ## ref: https://www.rabbitmq.com/disk-alarms.html + ## + diskFreeLimit: '"6GiB"' -## RabbitMQ Disk free limit -## ref: https://github.com/bitnami/bitnami-docker-rabbitmq#environment-variables -## ref: https://www.rabbitmq.com/disk-alarms.html -## -rabbitmqDiskFreeLimit: '"6GiB"' + ## Plugins to enable + plugins: |- + [rabbitmq_management,rabbitmq_peer_discovery_k8s]. + + ## Configution file content + configuration: |- + ## Clustering + cluster_formation.peer_discovery_backend = rabbit_peer_discovery_k8s + cluster_formation.k8s.host = kubernetes.default.svc.cluster.local + cluster_formation.k8s.address_type = ip + cluster_formation.node_cleanup.interval = 10 + cluster_formation.node_cleanup.only_log_warning = false + cluster_partition_handling = autoheal + ## queue master locator + queue_master_locator=min-masters + ## enable guest user + loopback_users.guest = false ## Kubernetes service type serviceType: ClusterIP persistence: - enabled: true + enabled: false ## A manually managed Persistent Volume and Claim ## Requires persistence.enabled: true @@ -81,16 +103,16 @@ persistence: # storageClass: "-" accessMode: ReadWriteOnce - # If you change this value, you might have to adjust `rabbitmqDiskFreeLimit` as well. + # If you change this value, you might have to adjust `rabbitmq.diskFreeLimit` as well. size: 8Gi ## Configure resource requests and limits ## ref: http://kubernetes.io/docs/user-guide/compute-resources/ ## -resources: - requests: - memory: 256Mi - cpu: 100m +resources: {} + +## Replica count, set to 1 to provide a default available cluster +replicas: 1 ## Node labels and tolerations for pod assignment ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector @@ -98,3 +120,48 @@ resources: nodeSelector: {} tolerations: [] affinity: {} + + +## Configure the ingress resource that allows you to access the +## Wordpress installation. Set up the URL +## ref: http://kubernetes.io/docs/user-guide/ingress/ +## +ingress: + ## Set to true to enable ingress record generation + enabled: false + + ## The list of hostnames to be covered with this ingress record. + ## Most likely this will be just one host, but in the event more hosts are needed, this is an array + ## hostName: foo.bar.com + + ## Set this to true in order to enable TLS on the ingress record + ## A side effect of this will be that the backend wordpress service will be connected at port 443 + tls: false + + ## If TLS is set to true, you must declare what secret will store the key/certificate for TLS + tlsSecret: myTlsSecret + + ## Ingress annotations done as key:value pairs + ## If you're using kube-lego, you will want to add: + ## kubernetes.io/tls-acme: true + ## + ## For a full list of possible ingress annotations, please see + ## ref: https://github.com/kubernetes/ingress-nginx/blob/master/docs/annotations.md + ## + ## If tls is set to true, annotation ingress.kubernetes.io/secure-backends: "true" will automatically be set + annotations: + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: true + +## The following settings are to configure the frequency of the lifeness and readiness probes +livenessProbe: + enabled: true + initialDelaySeconds: 120 + timeoutSeconds: 5 + failureThreshold: 6 + +readinessProbe: + enabled: true + initialDelaySeconds: 10 + timeoutSeconds: 3 + periodSeconds: 5 diff --git a/upstreamed/redmine/Chart.yaml b/upstreamed/redmine/Chart.yaml index b1ef5570c..bae946aad 100644 --- a/upstreamed/redmine/Chart.yaml +++ b/upstreamed/redmine/Chart.yaml @@ -1,6 +1,6 @@ name: redmine -version: 2.0.4 -appVersion: 3.4.4 +version: 3.0.2 +appVersion: 3.4.5 description: A flexible project management web application. keywords: - redmine diff --git a/upstreamed/redmine/OWNERS b/upstreamed/redmine/OWNERS index 0d4d6f129..4bf8a5c42 100644 --- a/upstreamed/redmine/OWNERS +++ b/upstreamed/redmine/OWNERS @@ -2,7 +2,9 @@ approvers: - prydonius - tompizmor - sameersbn +- carrodher reviewers: - prydonius - tompizmor - sameersbn +- carrodher diff --git a/upstreamed/redmine/README.md b/upstreamed/redmine/README.md index fad82927e..8b0b67429 100644 --- a/upstreamed/redmine/README.md +++ b/upstreamed/redmine/README.md @@ -51,39 +51,42 @@ helm install --name my-release stable/redmine --set databaseType.mariadb=false,d ## Configuration -The following tables lists the configurable parameters of the Redmine chart and their default values. +The following table lists the configurable parameters of the Redmine chart and their default values. -| Parameter | Description | Default | -| --------- | ----------- | ------- | -| `image` | Redmine image | `bitnami/redmine:{VERSION}` | -| `imagePullPolicy` | Image pull policy | `IfNotPresent` | -| `redmineUsername` | User of the application | `user` | -| `redminePassword` | Application password | _random 10 character long alphanumeric string_ | -| `redmineEmail` | Admin email | `user@example.com` | -| `redmineLanguage` | Redmine default data language | `en` | -| `extraVars` | Environment variables, passed to redmine | `nil` | -| `smtpHost` | SMTP host | `nil` | -| `smtpPort` | SMTP port | `nil` | -| `smtpUser` | SMTP user | `nil` | -| `smtpPassword` | SMTP password | `nil` | -| `smtpTls` | Use TLS encryption with SMTP | `nil` | -| `databaseType.postgresql` | Select postgresql database | `false` | -| `databaseType.mariadb` | Select mariadb database | `true` | -| `mariadb.mariadbRootPassword` | MariaDB admin password | `nil` | -| `postgresql.postgresqlPassword` | PostgreSQL admin password | `nil` | -| `serviceType` | Kubernetes Service type | `LoadBalancer` | -| `serviceLoadBalancerSourceRanges` | An array of load balancer sources | `0.0.0.0/0` | -| `ingress.enabled` | Enable or disable the ingress | `false` | -| `ingress.hostname` | The virtual host name | `redmine.cluster.local` | -| `ingress.annotations` | An array of service annotations | `nil` | -| `ingress.tls[i].secretName | The secret kubernetes.io/tls | `nil` | -| `ingress.tls[i].hosts[j] | The virtual host name | `nil` | -| `networkPolicyApiVersion` | The kubernetes network API version | `extensions/v1beta1` | -| `persistence.enabled` | Enable persistence using PVC | `true` | -| `persistence.existingClaim` | The name of an existing PVC | `nil` | -| `persistence.storageClass` | PVC Storage Class | `nil` (uses alpha storage class annotation) | -| `persistence.accessMode` | PVC Access Mode | `ReadWriteOnce` | -| `persistence.size` | PVC Storage Request | `8Gi` | +| Parameter | Description | Default | +| --------------------------------- | ---------------------------------------- | ------------------------------------------------------- | +| `image.registry` | Redmine image registry | `docker.io` | +| `image.repository` | Redmine image name | `bitnami/redmine` | +| `image.tag` | Redmine image tag | `{VERSION}` | +| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | +| `image.pullSecrets` | Specify image pull secrets | `nil` | +| `redmineUsername` | User of the application | `user` | +| `redminePassword` | Application password | _random 10 character long alphanumeric string_ | +| `redmineEmail` | Admin email | `user@example.com` | +| `redmineLanguage` | Redmine default data language | `en` | +| `extraVars` | Environment variables, passed to redmine | `nil` | +| `smtpHost` | SMTP host | `nil` | +| `smtpPort` | SMTP port | `nil` | +| `smtpUser` | SMTP user | `nil` | +| `smtpPassword` | SMTP password | `nil` | +| `smtpTls` | Use TLS encryption with SMTP | `nil` | +| `databaseType.postgresql` | Select postgresql database | `false` | +| `databaseType.mariadb` | Select mariadb database | `true` | +| `mariadb.mariadbRootPassword` | MariaDB admin password | `nil` | +| `postgresql.postgresqlPassword` | PostgreSQL admin password | `nil` | +| `serviceType` | Kubernetes Service type | `LoadBalancer` | +| `serviceLoadBalancerSourceRanges` | An array of load balancer sources | `0.0.0.0/0` | +| `ingress.enabled` | Enable or disable the ingress | `false` | +| `ingress.hostname` | The virtual host name | `redmine.cluster.local` | +| `ingress.annotations` | An array of service annotations | `nil` | +| `ingress.tls[i].secretName` | The secret kubernetes.io/tls | `nil` | +| `ingress.tls[i].hosts[j]` | The virtual host name | `nil` | +| `networkPolicyApiVersion` | The kubernetes network API version | `extensions/v1beta1` | +| `persistence.enabled` | Enable persistence using PVC | `true` | +| `persistence.existingClaim` | The name of an existing PVC | `nil` | +| `persistence.storageClass` | PVC Storage Class | `nil` (uses alpha storage class annotation) | +| `persistence.accessMode` | PVC Access Mode | `ReadWriteOnce` | +| `persistence.size` | PVC Storage Request | `8Gi` | The above parameters map to the env variables defined in [bitnami/redmine](http://github.com/bitnami/bitnami-docker-redmine). For more information please refer to the [bitnami/redmine](http://github.com/bitnami/bitnami-docker-redmine) image documentation. @@ -95,7 +98,7 @@ $ helm install --name my-release \ stable/redmine ``` -The above command sets the Redmine administrator account username and password to `admin` and `password` respectively. Additionally it sets the MariaDB `root` user password to `secretpassword`. +The above command sets the Redmine administrator account username and password to `admin` and `password` respectively. Additionally, it sets the MariaDB `root` user password to `secretpassword`. Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, @@ -113,16 +116,15 @@ Persistent Volume Claims are used to keep the data across deployments. This is k See the [Configuration](#configuration) section to configure the PVC or to disable persistence. - ### Existing PersistentVolumeClaims -The following example includes two PVCs, one for redmine and another for Maria DB. +The following example includes two PVCs, one for Redmine and another for MariaDB. 1. Create the PersistentVolume 1. Create the PersistentVolumeClaim 1. Create the directory, on a worker 1. Install the chart + ```bash $ helm install --name test --set persistence.existingClaim=PVC_REDMINE,mariadb.persistence.existingClaim=PVC_MARIADB redmine ``` - diff --git a/upstreamed/redmine/templates/deployment.yaml b/upstreamed/redmine/templates/deployment.yaml index 739beecda..51c2a65da 100644 --- a/upstreamed/redmine/templates/deployment.yaml +++ b/upstreamed/redmine/templates/deployment.yaml @@ -14,10 +14,16 @@ spec: labels: app: {{ template "redmine.fullname" . }} spec: + {{- if .Values.image.pullSecrets }} + imagePullSecrets: + {{- range .Values.image.pullSecrets }} + - name: {{ . }} + {{- end}} + {{- end }} containers: - name: {{ template "redmine.fullname" . }} - image: "{{ .Values.image }}" - imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }} + image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} env: {{- if .Values.extraVars }} {{ toYaml .Values.extraVars | indent 8 }} diff --git a/upstreamed/redmine/values.yaml b/upstreamed/redmine/values.yaml index 329541552..c3f58386e 100644 --- a/upstreamed/redmine/values.yaml +++ b/upstreamed/redmine/values.yaml @@ -1,12 +1,21 @@ ## Bitnami Redmine image version ## ref: https://hub.docker.com/r/bitnami/redmine/tags/ ## -image: bitnami/redmine:3.4.4-r2 - -## Specify a imagePullPolicy -## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images -## -imagePullPolicy: IfNotPresent +image: + registry: docker.io + repository: bitnami/redmine + tag: 3.4.5 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: + # - myRegistrKeySecretName ## User of the application ## ref: https://github.com/bitnami/bitnami-docker-redmine/#environment-variables diff --git a/upstreamed/sugarcrm/Chart.yaml b/upstreamed/sugarcrm/Chart.yaml index 84ef89ee2..737fb10a2 100644 --- a/upstreamed/sugarcrm/Chart.yaml +++ b/upstreamed/sugarcrm/Chart.yaml @@ -1,5 +1,5 @@ name: sugarcrm -version: 0.3.1 +version: 1.0.5 appVersion: 6.5.26 description: SugarCRM enables businesses to create extraordinary customer relationships with the most innovative and affordable CRM solution in the market. keywords: diff --git a/upstreamed/sugarcrm/OWNERS b/upstreamed/sugarcrm/OWNERS index 0d4d6f129..4bf8a5c42 100644 --- a/upstreamed/sugarcrm/OWNERS +++ b/upstreamed/sugarcrm/OWNERS @@ -2,7 +2,9 @@ approvers: - prydonius - tompizmor - sameersbn +- carrodher reviewers: - prydonius - tompizmor - sameersbn +- carrodher diff --git a/upstreamed/sugarcrm/README.md b/upstreamed/sugarcrm/README.md index ba9225ba5..12de997f2 100644 --- a/upstreamed/sugarcrm/README.md +++ b/upstreamed/sugarcrm/README.md @@ -1,6 +1,6 @@ # SugarCRM -[SugarCRM](https://www.sugarcrm.com) Sugar offers the most innovative, flexible and affordable CRM in the market and delivers the best all-around value of any CRM. +[SugarCRM](https://www.sugarcrm.com) offers the most innovative, flexible and affordable CRM in the market and delivers the best all-around value of any CRM. ## TL;DR; @@ -43,43 +43,46 @@ The command removes all the Kubernetes components associated with the chart and ## Configuration -The following tables lists the configurable parameters of the SugarCRM chart and their default values. +The following table lists the configurable parameters of the SugarCRM chart and their default values. -| Parameter | Description | Default | -|-------------------------------------|-----------------------------------------|---------------------------------------------| -| `image` | SugarCRM image | `bitnami/sugarcrm:{VERSION}` | -| `imagePullPolicy` | Image pull policy | `IfNotPresent` | -| `sugarcrmUsername` | User of the application | `user` | -| `sugarcrmPassword` | Application password | _random 10 character alphanumeric string_ | -| `sugarcrmEmail` | Admin email | `user@example.com` | -| `sugarcrmLastname` | Last name | `Name` | -| `sugarcrmHost` | Host domain or IP | `nil` | -| `sugarcrmLoadBalancerIP` | `loadBalancerIP` of the application | `nil` | -| `sugarcrmSmtpHost` | SMTP host | `nil` | -| `sugarcrmSmtpPort` | SMTP port | `nil` | -| `sugarcrmSmtpProtocol` | SMTP Protocol | `nil` | -| `sugarcrmSmtpUser` | SMTP user | `nil` | -| `sugarcrmSmtpPassword` | SMTP password | `nil` | -| `allowEmptyPassword` | Allow DB blank passwords | `yes` | -| `externalDatabase.host` | Host of the external database | `nil` | -| `externalDatabase.port` | Port of the external database | `3306` | -| `externalDatabase.user` | Existing username in the external db | `bn_sugarcrm` | -| `externalDatabase.password` | Password for the above username | `nil` | -| `externalDatabase.database` | Name of the existing databse | `bitnami_sugarcrm` | -| `mariadb.enabled` | Wheter to use or not the mariadb chart | `true` | -| `mariadb.mariadbDatabase` | Database name to create | `bitnami_sugarcrm` | -| `mariadb.mariadbUser` | Database user to create | `bn_sugarcrm` | -| `mariadb.mariadbPassword` | Password for the database | `nil` | -| `mariadb.mariadbRootPassword` | MariaDB admin password | `nil` | -| `serviceType` | Kubernetes Service type | `LoadBalancer` | -| `persistence.enabled` | Enable persistence using PVC | `true` | -| `persistence.apache.storageClass` | PVC Storage Class for apache volume | `nil` (uses alpha storage class annotation) | -| `persistence.apache.accessMode` | PVC Access Mode for apache volume | `ReadWriteOnce` | -| `persistence.apache.size` | PVC Storage Request for apache volume | `1Gi` | -| `persistence.sugarcrm.storageClass` | PVC Storage Class for SugarCRM volume | `nil` (uses alpha storage class annotation) | -| `persistence.sugarcrm.accessMode` | PVC Access Mode for SugarCRM volume | `ReadWriteOnce` | -| `persistence.sugarcrm.size` | PVC Storage Request for SugarCRM volume | `8Gi` | -| `resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | +| Parameter | Description | Default | +|-------------------------------------|-----------------------------------------|-------------------------------------------------------- | +| `image.registry` | SugarCRM image registry | `docker.io` | +| `image.repository` | SugarCRM image name | `bitnami/sugarcrm` | +| `image.tag` | SugarCRM image tag | `{VERSION}` | +| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | +| `image.pullSecrets` | Specify image pull secrets | `nil` | +| `sugarcrmUsername` | User of the application | `user` | +| `sugarcrmPassword` | Application password | _random 10 character alphanumeric string_ | +| `sugarcrmEmail` | Admin email | `user@example.com` | +| `sugarcrmLastname` | Last name | `Name` | +| `sugarcrmHost` | Host domain or IP | `nil` | +| `sugarcrmLoadBalancerIP` | `loadBalancerIP` of the application | `nil` | +| `sugarcrmSmtpHost` | SMTP host | `nil` | +| `sugarcrmSmtpPort` | SMTP port | `nil` | +| `sugarcrmSmtpProtocol` | SMTP Protocol | `nil` | +| `sugarcrmSmtpUser` | SMTP user | `nil` | +| `sugarcrmSmtpPassword` | SMTP password | `nil` | +| `allowEmptyPassword` | Allow DB blank passwords | `yes` | +| `externalDatabase.host` | Host of the external database | `nil` | +| `externalDatabase.port` | Port of the external database | `3306` | +| `externalDatabase.user` | Existing username in the external db | `bn_sugarcrm` | +| `externalDatabase.password` | Password for the above username | `nil` | +| `externalDatabase.database` | Name of the existing database | `bitnami_sugarcrm` | +| `mariadb.enabled` | Whether to use the MariaDB chart | `true` | +| `mariadb.mariadbDatabase` | Database name to create | `bitnami_sugarcrm` | +| `mariadb.mariadbUser` | Database user to create | `bn_sugarcrm` | +| `mariadb.mariadbPassword` | Password for the database | `nil` | +| `mariadb.mariadbRootPassword` | MariaDB admin password | `nil` | +| `serviceType` | Kubernetes Service type | `LoadBalancer` | +| `persistence.enabled` | Enable persistence using PVC | `true` | +| `persistence.apache.storageClass` | PVC Storage Class for apache volume | `nil` (uses alpha storage class annotation) | +| `persistence.apache.accessMode` | PVC Access Mode for apache volume | `ReadWriteOnce` | +| `persistence.apache.size` | PVC Storage Request for apache volume | `1Gi` | +| `persistence.sugarcrm.storageClass` | PVC Storage Class for SugarCRM volume | `nil` (uses alpha storage class annotation) | +| `persistence.sugarcrm.accessMode` | PVC Access Mode for SugarCRM volume | `ReadWriteOnce` | +| `persistence.sugarcrm.size` | PVC Storage Request for SugarCRM volume | `8Gi` | +| `resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | The above parameters map to the env variables defined in [bitnami/sugarcrm](http://github.com/bitnami/bitnami-docker-sugarcrm). For more information please refer to the [bitnami/sugarcrm](http://github.com/bitnami/bitnami-docker-sugarcrm) image documentation. @@ -105,7 +108,7 @@ $ helm install --name my-release \ stable/sugarcrm ``` -The above command sets the SugarCRM administrator account username and password to `admin` and `password` respectively. Additionally it sets the MariaDB `root` user password to `secretpassword`. +The above command sets the SugarCRM administrator account username and password to `admin` and `password` respectively. Additionally, it sets the MariaDB `root` user password to `secretpassword`. Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, diff --git a/upstreamed/sugarcrm/templates/deployment.yaml b/upstreamed/sugarcrm/templates/deployment.yaml index 5ef0274fa..867d76ab6 100644 --- a/upstreamed/sugarcrm/templates/deployment.yaml +++ b/upstreamed/sugarcrm/templates/deployment.yaml @@ -15,10 +15,16 @@ spec: app: {{ template "name" . }} release: "{{ .Release.Name }}" spec: + {{- if .Values.image.pullSecrets }} + imagePullSecrets: + {{- range .Values.image.pullSecrets }} + - name: {{ . }} + {{- end}} + {{- end }} containers: - name: {{ template "fullname" . }} - image: "{{ .Values.image }}" - imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} env: - name: ALLOW_EMPTY_PASSWORD value: {{ .Values.allowEmptyPassword | quote }} diff --git a/upstreamed/sugarcrm/values.yaml b/upstreamed/sugarcrm/values.yaml index eaecd0917..d45557fa2 100644 --- a/upstreamed/sugarcrm/values.yaml +++ b/upstreamed/sugarcrm/values.yaml @@ -1,12 +1,21 @@ ## Bitnami SugarCRM image version ## ref: https://hub.docker.com/r/bitnami/sugarcrm/tags/ ## -image: bitnami/sugarcrm:6.5.26-r3 - -## Specify a imagePullPolicy -## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images -## -imagePullPolicy: IfNotPresent +image: + registry: docker.io + repository: bitnami/sugarcrm + tag: 6.5.26 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: + # - myRegistrKeySecretName ## SugarCRM host to create application URLs ## ref: https://github.com/bitnami/bitnami-docker-sugarcrm#configuration diff --git a/upstreamed/suitecrm/Chart.yaml b/upstreamed/suitecrm/Chart.yaml index de8eff538..8c6e8b3f7 100644 --- a/upstreamed/suitecrm/Chart.yaml +++ b/upstreamed/suitecrm/Chart.yaml @@ -1,6 +1,6 @@ name: suitecrm -version: 0.4.0 -appVersion: 7.10.2 +version: 1.0.4 +appVersion: 7.10.4 description: SuiteCRM is a completely open source enterprise-grade Customer Relationship Management (CRM) application. SuiteCRM is a software fork of the popular customer relationship management (CRM) system SugarCRM. keywords: - suitecrm diff --git a/upstreamed/suitecrm/OWNERS b/upstreamed/suitecrm/OWNERS index 0d4d6f129..4bf8a5c42 100644 --- a/upstreamed/suitecrm/OWNERS +++ b/upstreamed/suitecrm/OWNERS @@ -2,7 +2,9 @@ approvers: - prydonius - tompizmor - sameersbn +- carrodher reviewers: - prydonius - tompizmor - sameersbn +- carrodher diff --git a/upstreamed/suitecrm/README.md b/upstreamed/suitecrm/README.md index 47a9cb9aa..038d48780 100644 --- a/upstreamed/suitecrm/README.md +++ b/upstreamed/suitecrm/README.md @@ -1,6 +1,6 @@ # SuiteCRM -[SuiteCRM](https://www.suitecrm.com) SuiteCRM is a completely open source enterprise-grade Customer Relationship Management (CRM) application. SuiteCRM is a software fork of the popular customer relationship management (CRM) system SugarCRM. +[SuiteCRM](https://www.suitecrm.com) is a completely open source enterprise-grade Customer Relationship Management (CRM) application. SuiteCRM is a software fork of the popular customer relationship management (CRM) system SugarCRM. ## TL;DR; @@ -43,43 +43,46 @@ The command removes all the Kubernetes components associated with the chart and ## Configuration -The following tables lists the configurable parameters of the SuiteCRM chart and their default values. +The following table lists the configurable parameters of the SuiteCRM chart and their default values. -| Parameter | Description | Default | -|-------------------------------------|-------------------------------------------|---------------------------------------------| -| `imageTag` | `bitnami/suitecrm` image tag. | SuiteCRM image version | -| `imagePullPolicy` | Image pull policy. | `IfNotPresent` | -| `suitecrmHost` | SuiteCRM host to create application URLs | `nil` | -| `suitecrmLoadBalancerIP` | `loadBalancerIP` for the SuiteCRM Service | `nil` | -| `suitecrmUsername` | User of the application | `user` | -| `suitecrmPassword` | Application password | _random 10 character alphanumeric string_ | -| `suitecrmEmail` | Admin email | `user@example.com` | -| `suitecrmLastName` | Last name | `Last` | -| `suitecrmSmtpHost` | SMTP host | `nil` | -| `suitecrmSmtpPort` | SMTP port | `nil` | -| `suitecrmSmtpUser` | SMTP user | `nil` | -| `suitecrmSmtpPassword` | SMTP password | `nil` | -| `suitecrmSmtpProtocol` | SMTP protocol [`ssl`, `tls`] | `nil` | -| `allowEmptyPassword` | Allow DB blank passwords | `yes` | -| `externalDatabase.host` | Host of the external database | `nil` | -| `externalDatabase.port` | Port of the external database | `3306` | -| `externalDatabase.user` | Existing username in the external db | `bn_suitecrm` | -| `externalDatabase.password` | Password for the above username | `nil` | -| `externalDatabase.database` | Name of the existing databse | `bitnami_suitecrm` | -| `mariadb.enabled` | Wheter to use or not the mariadb chart | `true` | -| `mariadb.mariadbDatabase` | Database name to create | `bitnami_suitecrm` | -| `mariadb.mariadbUser` | Database user to create | `bn_suitecrm` | -| `mariadb.mariadbPassword` | Password for the database | `nil` | -| `mariadb.mariadbRootPassword` | MariaDB admin password | `nil` | -| `serviceType` | Kubernetes Service type | `LoadBalancer` | -| `persistence.enabled` | Enable persistence using PVC | `true` | -| `persistence.apache.storageClass` | PVC Storage Class for apache volume | `nil` (uses alpha storage class annotation) | -| `persistence.apache.accessMode` | PVC Access Mode for apache volume | `ReadWriteOnce` | -| `persistence.apache.size` | PVC Storage Request for apache volume | `1Gi` | -| `persistence.suitecrm.storageClass` | PVC Storage Class for SuiteCRM volume | `nil` (uses alpha storage class annotation) | -| `persistence.suitecrm.accessMode` | PVC Access Mode for SuiteCRM volume | `ReadWriteOnce` | -| `persistence.suitecrm.size` | PVC Storage Request for SuiteCRM volume | `8Gi` | -| `resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | +| Parameter | Description | Default | +|-------------------------------------|-------------------------------------------|-------------------------------------------------------- | +| `image.registry` | SuiteCRM image registry | `docker.io` | +| `image.repository` | SuiteCRM image name | `bitnami/suitecrm` | +| `image.tag` | SuiteCRM image tag | `{VERSION}` | +| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | +| `image.pullSecrets` | Specify image pull secrets | `nil` | +| `suitecrmHost` | SuiteCRM host to create application URLs | `nil` | +| `suitecrmLoadBalancerIP` | `loadBalancerIP` for the SuiteCRM Service | `nil` | +| `suitecrmUsername` | User of the application | `user` | +| `suitecrmPassword` | Application password | _random 10 character alphanumeric string_ | +| `suitecrmEmail` | Admin email | `user@example.com` | +| `suitecrmLastName` | Last name | `Last` | +| `suitecrmSmtpHost` | SMTP host | `nil` | +| `suitecrmSmtpPort` | SMTP port | `nil` | +| `suitecrmSmtpUser` | SMTP user | `nil` | +| `suitecrmSmtpPassword` | SMTP password | `nil` | +| `suitecrmSmtpProtocol` | SMTP protocol [`ssl`, `tls`] | `nil` | +| `allowEmptyPassword` | Allow DB blank passwords | `yes` | +| `externalDatabase.host` | Host of the external database | `nil` | +| `externalDatabase.port` | Port of the external database | `3306` | +| `externalDatabase.user` | Existing username in the external db | `bn_suitecrm` | +| `externalDatabase.password` | Password for the above username | `nil` | +| `externalDatabase.database` | Name of the existing database | `bitnami_suitecrm` | +| `mariadb.enabled` | Whether to use the MariaDB chart | `true` | +| `mariadb.mariadbDatabase` | Database name to create | `bitnami_suitecrm` | +| `mariadb.mariadbUser` | Database user to create | `bn_suitecrm` | +| `mariadb.mariadbPassword` | Password for the database | `nil` | +| `mariadb.mariadbRootPassword` | MariaDB admin password | `nil` | +| `serviceType` | Kubernetes Service type | `LoadBalancer` | +| `persistence.enabled` | Enable persistence using PVC | `true` | +| `persistence.apache.storageClass` | PVC Storage Class for apache volume | `nil` (uses alpha storage class annotation) | +| `persistence.apache.accessMode` | PVC Access Mode for apache volume | `ReadWriteOnce` | +| `persistence.apache.size` | PVC Storage Request for apache volume | `1Gi` | +| `persistence.suitecrm.storageClass` | PVC Storage Class for SuiteCRM volume | `nil` (uses alpha storage class annotation) | +| `persistence.suitecrm.accessMode` | PVC Access Mode for SuiteCRM volume | `ReadWriteOnce` | +| `persistence.suitecrm.size` | PVC Storage Request for SuiteCRM volume | `8Gi` | +| `resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` | The above parameters map to the env variables defined in [bitnami/suitecrm](http://github.com/bitnami/bitnami-docker-suitecrm). For more information please refer to the [bitnami/suitecrm](http://github.com/bitnami/bitnami-docker-suitecrm) image documentation. @@ -105,7 +108,7 @@ $ helm install --name my-release \ stable/suitecrm ``` -The above command sets the SuiteCRM administrator account username and password to `admin` and `password` respectively. Additionally it sets the MariaDB `root` user password to `secretpassword`. +The above command sets the SuiteCRM administrator account username and password to `admin` and `password` respectively. Additionally, it sets the MariaDB `root` user password to `secretpassword`. Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, diff --git a/upstreamed/suitecrm/templates/deployment.yaml b/upstreamed/suitecrm/templates/deployment.yaml index d7e057177..4cbf36339 100644 --- a/upstreamed/suitecrm/templates/deployment.yaml +++ b/upstreamed/suitecrm/templates/deployment.yaml @@ -15,10 +15,16 @@ spec: app: {{ template "name" . }} release: "{{ .Release.Name }}" spec: + {{- if .Values.image.pullSecrets }} + imagePullSecrets: + {{- range .Values.image.pullSecrets }} + - name: {{ . }} + {{- end}} + {{- end }} containers: - name: {{ template "fullname" . }} - image: "{{ .Values.image }}" - imagePullPolicy: {{ .Values.imagePullPolicy | quote }} + image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} env: - name: ALLOW_EMPTY_PASSWORD value: {{ .Values.allowEmptyPassword | quote }} diff --git a/upstreamed/suitecrm/values.yaml b/upstreamed/suitecrm/values.yaml index 9597314b1..40f2a5d00 100644 --- a/upstreamed/suitecrm/values.yaml +++ b/upstreamed/suitecrm/values.yaml @@ -1,12 +1,21 @@ ## Bitnami SuiteCRM image version ## ref: https://hub.docker.com/r/bitnami/suitecrm/tags/ ## -image: bitnami/suitecrm:7.10.2-r1 - -## Specify a imagePullPolicy -## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images -## -imagePullPolicy: IfNotPresent +image: + registry: docker.io + repository: bitnami/suitecrm + tag: 7.10.4 + ## Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + ## + pullPolicy: IfNotPresent + ## Optionally specify an array of imagePullSecrets. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: + # - myRegistrKeySecretName ## SuiteCRM host to create application URLs ## ref: https://github.com/bitnami/bitnami-docker-suitecrm#configuration From 5ff6cd05394b6434d383b355abfdc25dfa61e6c1 Mon Sep 17 00:00:00 2001 From: tompizmor Date: Wed, 30 May 2018 12:50:45 +0200 Subject: [PATCH 2/3] Fix imagePullPolicy for apache bitnami chart --- bitnami/apache/README.md | 2 +- bitnami/apache/values.yaml | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/bitnami/apache/README.md b/bitnami/apache/README.md index b93297c70..2f8bf1893 100644 --- a/bitnami/apache/README.md +++ b/bitnami/apache/README.md @@ -47,7 +47,7 @@ The following tables lists the configurable parameters of the Apache chart and t | `image.registry` | Apache image registry | `docker.io` | | `image.repository` | Apache Image name | `bitnami/apache` | | `image.tag` | Apache Image tag | `{VERSION}` | -| `image.pullPolicy` | Apache image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | +| `image.pullPolicy` | Apache image pull policy | `Always` | | `image.pullSecrets` | Specify image pull secrets | `nil` (does not add image pull secrets to deployed pods) | Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, diff --git a/bitnami/apache/values.yaml b/bitnami/apache/values.yaml index e45d76294..62720be50 100644 --- a/bitnami/apache/values.yaml +++ b/bitnami/apache/values.yaml @@ -6,10 +6,9 @@ image: repository: bitnami/apache tag: 2.4.33 ## Specify a imagePullPolicy - ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images ## - pullPolicy: IfNotPresent + pullPolicy: Always ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ From 5e988229e41265ef5c0398f8222d355c395cb194 Mon Sep 17 00:00:00 2001 From: tompizmor Date: Wed, 30 May 2018 12:51:45 +0200 Subject: [PATCH 3/3] bum chart version --- bitnami/apache/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bitnami/apache/Chart.yaml b/bitnami/apache/Chart.yaml index 65f562ee7..a8311ca01 100644 --- a/bitnami/apache/Chart.yaml +++ b/bitnami/apache/Chart.yaml @@ -1,5 +1,5 @@ name: apache -version: 0.3.11 +version: 0.3.12 appVersion: 2.4.33 description: Chart for Apache HTTP Server keywords: