[stable/prestashop] Allow use of external database (#4188)

* [stable/prestashop] Allow use of external database

* Fix typo

* Update image tag
This commit is contained in:
Tomas Pizarro
2018-03-16 11:00:24 -07:00
committed by k8s-ci-robot
parent ff0e0d970c
commit af184b9aeb
8 changed files with 140 additions and 8 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
name: prestashop
version: 0.5.7
version: 0.6.0
appVersion: 1.7.3
description: A popular open source ecommerce solution. Professional tools are easily
accessible to increase online sales including instant guest checkout, abandoned
+10
View File
@@ -61,6 +61,16 @@ The following tables lists the configurable parameters of the PrestaShop chart a
| `smtpUser` | SMTP user | `nil` |
| `smtpPassword` | SMTP password | `nil` |
| `smtpProtocol` | SMTP protocol [`ssl`, `tls`] | `nil` |
| `allowEmptyPassword` | Allow DB blank passwords | `yes` |
| `externalDatabase.host` | Host of the external database | `nil` |
| `externalDatabase.port` | SMTP protocol [`ssl`, `none`] | `3306` |
| `externalDatabase.user` | Existing username in the external db | `bn_prestashop` |
| `externalDatabase.password` | Password for the above username | `nil` |
| `externalDatabase.database` | Name of the existing databse | `bitnami_prestashop` |
| `mariadb.enabled` | Wheter to use or not the mariadb chart | `true` |
| `mariadb.mariadbDatabase` | Database name to create | `bitnami_prestashop` |
| `mariadb.mariadbUser` | Database user to create | `bn_prestashop` |
| `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` |
+2 -2
View File
@@ -2,5 +2,5 @@ dependencies:
- name: mariadb
repository: https://kubernetes-charts.storage.googleapis.com/
version: 0.7.0
digest: sha256:e1af13ac4ac21f67582006f12d2b4eb78a1a2a59b34338fac850f2bec0b08b41
generated: 2017-08-09T22:52:58.303930422-04:00
digest: sha256:f59f68030aa5c50b9e776b813804875fac911f91c2aa384e991f37a795c5ae34
generated: 2018-03-15T17:02:26.357827+01:00
+1
View File
@@ -2,3 +2,4 @@ dependencies:
- name: mariadb
version: 0.7.0
repository: https://kubernetes-charts.storage.googleapis.com/
condition: mariadb.enabled
+45 -2
View File
@@ -1,3 +1,5 @@
{{- if or .Values.mariadb.enabled .Values.externalDatabase.host -}}
{{- if empty (include "prestashop.host" .) -}}
###############################################################################
### ERROR: You did not provide an external host in your 'helm install' call ###
@@ -27,8 +29,17 @@ host. To configure PrestaShop with the URL of your service:
2. Complete your PrestaShop deployment by running:
helm upgrade {{ .Release.Name }} \
--set prestashopHost=$APP_HOST,prestashopPassword=$APP_PASSWORD{{ if .Values.mariadb.mariadbRootPassword }},mariadb.mariadbRootPassword=$APP_DATABASE_PASSWORD{{ end }} stable/prestashop
{{- if .Values.mariadb.enabled }}
helm upgrade {{ .Release.Name }} stable/prestashop \
--set prestashopHost=$APP_HOST,prestashopPassword=$APP_PASSWORD{{ if .Values.mariadb.mariadbRootPassword }},mariadb.mariadbRootPassword=$APP_DATABASE_PASSWORD{{ end }}
{{- else }}
## PLEASE UPDATE THE EXTERNAL DATABASE CONNECTION PARAMETERS IN THE FOLLOWING COMMAND AS NEEDED ##
helm upgrade {{ .Release.Name }} stable/prestashop \
--set prestashopPassword=$APP_PASSWORD,prestashopHost=$APP_HOST,serviceType={{ .Values.serviceType }},mariadb.enabled=false{{- if not (empty .Values.externalDatabase.host) }},externalDatabase.host={{ .Values.externalDatabase.host }}{{- end }}{{- if not (empty .Values.externalDatabase.user) }},externalDatabase.user={{ .Values.externalDatabase.user }}{{- end }}{{- if not (empty .Values.externalDatabase.password) }},externalDatabase.password={{ .Values.externalDatabase.password }}{{- end }}{{- if not (empty .Values.externalDatabase.database) }},externalDatabase.database={{ .Values.externalDatabase.database }}{{- end }}
{{- end }}
{{- else -}}
1. Get the PrestaShop URL by running:
@@ -50,3 +61,35 @@ host. To configure PrestaShop with the URL of your service:
echo Admin Username: {{ .Values.prestashopUsername }}
echo Admin Password: $(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "prestashop.fullname" . }} -o jsonpath="{.data.prestashop-password}" | base64 --decode)
{{- end }}
{{- else -}}
########################################################################################
### ERROR: You did not provide an external database host in your 'helm install' call ###
########################################################################################
This deployment will be incomplete until you configure PrestaShop with a resolvable database
host. To configure PrestaShop to use and external database host:
1. Complete your PrestaShop deployment by running:
{{- if contains "NodePort" .Values.serviceType }}
export APP_HOST=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
{{- 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 "prestashop.fullname" . }}'
export APP_HOST=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "prestashop.fullname" . }} --template "{{ "{{ range (index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}" }}")
{{- else }}
export APP_HOST=127.0.0.1
{{- end }}
export APP_PASSWORD=$(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "prestashop.fullname" . }} -o jsonpath="{.data.prestashop-password}" | base64 --decode)
## PLEASE UPDATE THE EXTERNAL DATABASE CONNECTION PARAMETERS IN THE FOLLOWING COMMAND AS NEEDED ##
helm upgrade {{ .Release.Name }} stable/prestashop \
--set prestashopPassword=$APP_PASSWORD,prestashopHost=$APP_HOST,serviceType={{ .Values.serviceType }},mariadb.enabled=false{{- if not (empty .Values.externalDatabase.user) }},externalDatabase.user={{ .Values.externalDatabase.user }}{{- end }}{{- if not (empty .Values.externalDatabase.password) }},externalDatabase.password={{ .Values.externalDatabase.password }}{{- end }}{{- if not (empty .Values.externalDatabase.database) }},externalDatabase.database={{ .Values.externalDatabase.database }}{{- end }},externalDatabase.host=YOUR_EXTERNAL_DATABASE_HOST
{{- end }}
+24 -2
View File
@@ -19,15 +19,37 @@ spec:
image: "{{ .Values.image }}"
imagePullPolicy: {{ .Values.imagePullPolicy | quote }}
env:
- name: ALLOW_EMPTY_PASSWORD
value: {{ .Values.allowEmptyPassword | quote }}
{{- if .Values.mariadb.enabled }}
- name: MARIADB_HOST
value: {{ template "prestashop.mariadb.fullname" . }}
- name: MARIADB_PORT_NUMBER
value: "3306"
- name: MARIADB_PASSWORD
- name: PRESTASHOP_DATABASE_NAME
value: {{ .Values.mariadb.mariadbDatabase | quote }}
- name: PRESTASHOP_DATABASE_USER
value: {{ .Values.mariadb.mariadbUser | quote }}
- name: PRESTASHOP_DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "prestashop.mariadb.fullname" . }}
key: mariadb-root-password
key: mariadb-password
{{- else }}
- name: MARIADB_HOST
value: {{ .Values.externalDatabase.host | quote }}
- name: MARIADB_PORT_NUMBER
value: {{ .Values.externalDatabase.port | quote }}
- name: PRESTASHOP_DATABASE_NAME
value: {{ .Values.externalDatabase.database | quote }}
- name: PRESTASHOP_DATABASE_USER
value: {{ .Values.externalDatabase.user | quote }}
- name: PRESTASHOP_DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: {{ printf "%s-%s" .Release.Name "externaldb" }}
key: db-password
{{- end }}
- name: PRESTASHOP_HOST
value: {{ include "prestashop.host" . | quote }}
- name: PRESTASHOP_USERNAME
@@ -0,0 +1,14 @@
{{- if not .Values.mariadb.enabled }}
apiVersion: v1
kind: Secret
metadata:
name: {{ printf "%s-%s" .Release.Name "externaldb" }}
labels:
app: {{ printf "%s-%s" .Release.Name "externaldb" }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
type: Opaque
data:
db-password: {{ default "" .Values.externalDatabase.password | b64enc | quote }}
{{- end }}
+43 -1
View File
@@ -1,7 +1,7 @@
## Bitnami PrestaShop image version
## ref: https://hub.docker.com/r/bitnami/prestashop/tags/
##
image: bitnami/prestashop:1.7.3-0-r0
image: bitnami/prestashop:1.7.3-0-r1
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
@@ -45,6 +45,30 @@ prestashopFirstName: Bitnami
##
prestashopLastName: User
## Set to `yes` to allow the container to be started with blank passwords
## ref: https://github.com/bitnami/bitnami-docker-prestashop#environment-variables
allowEmptyPassword: "yes"
##
## External database configuration
##
externalDatabase:
## Database host
host:
## Database host
port: 3306
## Database user
user: bn_jasperreports
## Database password
password:
## Database name
database: bitnami_prestashop
## SMTP mail delivery configuration
## ref: https://github.com/bitnami/bitnami-docker-prestashop/#smtp-configuration
##
@@ -58,6 +82,24 @@ prestashopLastName: User
## MariaDB chart configuration
##
mariadb:
## Whether to deploy a mariadb server to satisfy the applications database requirements. To use an external database set this to false and configure the externalDatabase parameters
enabled: true
## Create a database
## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#creating-a-database-on-first-run
##
mariadbDatabase: bitnami_prestashop
## Create a database user
## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#creating-a-database-user-on-first-run
##
mariadbUser: bn_prestashop
## Password for mariadbUser
## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#creating-a-database-user-on-first-run
##
# mariadbPassword:
## MariaDB admin password
## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#setting-the-root-password-on-first-run
##