* add drupal chart

* review changes
This commit is contained in:
Sertaç Özercan 2017-12-01 14:41:05 -06:00 коммит произвёл Aaron Schlesinger
Родитель d8db6e2b97
Коммит 22b274acd3
17 изменённых файлов: 741 добавлений и 0 удалений

1
drupal/.helmignore Normal file
Просмотреть файл

@ -0,0 +1 @@
.git

20
drupal/Chart.yaml Normal file
Просмотреть файл

@ -0,0 +1,20 @@
name: drupal
version: 0.11.0
appVersion: 8.4.2
description: One of the most versatile open source content management systems.
keywords:
- drupal
- cms
- blog
- http
- web
- application
- php
home: http://www.drupal.org/
icon: https://bitnami.com/assets/stacks/drupal/img/drupal-stack-220x234.png
sources:
- https://github.com/bitnami/bitnami-docker-drupal
maintainers:
- name: bitnami-bot
email: containers@bitnami.com
engine: gotpl

173
drupal/README.md Normal file
Просмотреть файл

@ -0,0 +1,173 @@
# Drupal
[Drupal](https://www.drupal.org/) is one of the most versatile open source content management systems on the market.
This chart bootstraps a
[Drupal](https://github.com/bitnami/bitnami-docker-drupal) deployment on
a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh)
package manager.
It is inspired by the
[upstream drupal chart](https://github.com/kubernetes/charts/tree/master/stable/drupal,
but, by default, utilizes the Azure Service Broker to provision an
[Azure Database for MySQL](https://azure.microsoft.com/en-us/services/mysql/)
database for the Drupal server to use.
# Basic Installation
Installation of this chart is simple. First, ensure that you've [added the
`azure` repository](../README.md#installing-charts). Then, install from the
`azure` repo:
```console
$ helm install azure/drupal
```
## Introduction
This chart bootstraps a [Drupal](https://github.com/bitnami/bitnami-docker-drupal) 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 Drupal application.
# Prerequisites
You will need the following before you can install this chart:
- Kubernetes 1.7+ with RBAC turned on and beta APIs enabled
- [Service Catalog](https://github.com/kubernetes-incubator/service-catalog) installed
- The [Azure Service Broker](https://github.com/Azure/azure-service-broker) installed
- Support for persistent volumes in the underlying infrastructure
Please see the [prerequisities document](../docs/prerequisities/README.md) for
details on how to install everything.
## Installing the Chart
To install the chart with the release name `my-release`:
```console
$ helm install --name my-release --namespace drupal azure/drupal
```
The command deploys Drupal on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
> **Tip**: List all releases using `helm list`
## Uninstalling the Chart
To uninstall/delete the `my-release` deployment:
```console
$ helm delete my-release
```
The command removes all the Kubernetes components associated with the chart and deletes the release.
## Configuration
The following tables lists the configurable parameters of the Drupal chart and their default values.
| Parameter | Description | Default |
| --------------------------------- | ------------------------------------- | --------------------------------------------------------- |
| `image` | Drupal image | `bitnami/drupal:{VERSION}` |
| `imagePullSecrets` | Specify image pull secrets | `nil` (does not add image pull secrets to deployed pods) |
| `imagePullPolicy` | Image pull policy | `IfNotPresent` |
| `drupalUsername` | User of the application | `user` |
| `drupalPassword` | Application password | _random 10 character long alphanumeric string_ |
| `drupalEmail` | Admin email | `user@example.com` |
| `allowEmptyPassword` | Allow DB blank passwords | `yes` |
| `extraVars` | Extra environment variables | `nil` |
| `ingress.annotations` | Specify ingress class | `kubernetes.io/ingress.class: nginx` |
| `ingress.enabled` | Enable ingress controller resource | `false` |
| `ingress.hostname` | URL for your Drupal installation | `drupal.local` |
| `ingress.tls` | Ingress TLS configuration | `[]` |
| `mysql.embeddedMaria` | Whether to fulfill the dependency on MySQL using an embedded (on-cluster) MariaDB database _instead of Aure Database for MySQL. This option is available to enable local or no-cost evaluation of this chart. | `false`
| `mariadb.enabled` | Use or not the mariadb chart | `true` |
| `mariadb.mariadbRootPassword` | MariaDB admin password | `nil` |
| `mariadb.mariadbDatabase` | Database name to create | `bitnami_drupal` |
| `mariadb.mariadbUser` | Database user to create | `bn_drupal` |
| `mariadb.mariadbPassword` | Password for the database | _random 10 character long alphanumeric string_ |
| `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.drupal.storageClass` | PVC Storage Class for Drupal volume | `nil` (uses alpha storage class annotation) |
| `persistence.drupal.accessMode` | PVC Access Mode for Drupal volume | `ReadWriteOnce` |
| `persistence.drupal.existingClaim`| An Existing PVC name | `nil` |
| `persistence.drupal.hostPath` | Host mount path for Drupal volume | `nil` (will not mount to a host path) |
| `persistence.drupal.size` | PVC Storage Request for Drupal volume | `8Gi` |
| `resources` | CPU/Memory resource requests/limits | Memory: `512Mi`, CPU: `300m` |
| `volumeMounts.drupal.mountPath` | Drupal data volume mount path | `/bitnami/drupal` |
| `volumeMounts.apache.mountPath` | Apache data volume mount path | `/bitnami/apache` |
The above parameters map to the env variables defined in [bitnami/drupal](http://github.com/bitnami/bitnami-docker-drupal). For more information please refer to the [bitnami/drupal](http://github.com/bitnami/bitnami-docker-drupal) image documentation.
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
```console
$ helm install --name my-release \
--set drupalUsername=admin,drupalPassword=password,mariadb.mariadbRootPassword=secretpassword \
stable/drupal
```
The above command sets the Drupal 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,
```console
$ helm install --name my-release -f values.yaml stable/drupal
```
> **Tip**: You can use the default [values.yaml](values.yaml)
## Image
The `image` parameter allows specifying which image will be pulled for the chart.
### Private registry
If you configure the `image` value to one in a private registry, you will need to [specify an image pull secret](https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod).
1. Manually create image pull secret(s) in the namespace. See [this YAML example reference](https://kubernetes.io/docs/concepts/containers/images/#creating-a-secret-with-a-docker-config). Consult your image registry's documentation about getting the appropriate secret.
1. Note that the `imagePullSecrets` configuration value cannot currently be passed to helm using the `--set` parameter, so you must supply these using a `values.yaml` file, such as:
```yaml
imagePullSecrets:
- name: SECRET_NAME
```
1. Install the chart
```console
helm install --name my-release -f values.yaml stable/drupal
```
## Persistence
The configured image must store Drupal data and Apache configurations in separate paths of the container.
The [Bitnami Drupal](https://github.com/bitnami/bitnami-docker-drupal) image stores the Drupal data and Apache configurations at the `/bitnami/drupal` and `/bitnami/apache` paths of the container. If you wish to override the `image` value, and your image stores this data and configurations in different paths, you may specify these paths with `volumeMounts.drupal.mountPath` and `volumeMounts.apache.mountPath`.
Persistent Volume Claims are used to keep the data across deployments. This is known to work in GCE, AWS, and minikube.
See the [Configuration](#configuration) section to configure the PVC or to disable persistence.
### Existing PersistentVolumeClaim
1. Create the PersistentVolume
1. Create the PersistentVolumeClaim
1. Install the chart
```bash
$ helm install --name my-release --set persistence.drupal.existingClaim=PVC_NAME stable/drupal
```
### Host path
#### System compatibility
- The local filesystem accessibility to a container in a pod with `hostPath` has been tested on OSX/MacOS with xhyve, and Linux with VirtualBox.
- Windows has not been tested with the supported VM drivers. Minikube does however officially support [Mounting Host Folders](https://github.com/kubernetes/minikube/blob/master/docs/host_folder_mount.md) per pod. Or you may manually sync your container whenever host files are changed with tools like [docker-sync](https://github.com/EugenMayer/docker-sync) or [docker-bg-sync](https://github.com/cweagans/docker-bg-sync).
#### Mounting steps
1. The specified `hostPath` directory must already exist (create one if it does not).
1. Install the chart
```bash
$ helm install --name my-release --set persistence.drupal.hostPath=/PATH/TO/HOST/MOUNT stable/drupal
```
This will mount the `drupal-data` volume into the `hostPath` directory, if the site has not already been initialized. If it has, your host machine changes will persist.
1. Because the container can not control the host machines directory permissions, you must set the Drupal file directory permissions yourself and disable or clear Drupal cache. See Drupal Cores [INSTALL.txt](http://cgit.drupalcode.org/drupal/tree/core/INSTALL.txt?h=8.3.x#n152) for setting file permissions, and see [Drupal handbook page](https://www.drupal.org/node/2598914) to disable cache, or [Drush handbook](https://drushcommands.com/drush-8x/cache/cache-rebuild/) to clear cache.

6
drupal/requirements.lock Normal file
Просмотреть файл

@ -0,0 +1,6 @@
dependencies:
- name: mariadb
repository: https://kubernetes-charts.storage.googleapis.com/
version: 1.0.5
digest: sha256:277208f8ee8fd30e560fcd0ed6c6e1a749f273fab29b0dc31a55dd922ca9c278
generated: 2017-11-30T21:35:05.501264-06:00

5
drupal/requirements.yaml Normal file
Просмотреть файл

@ -0,0 +1,5 @@
dependencies:
- name: mariadb
version: 1.0.5
repository: https://kubernetes-charts.storage.googleapis.com/
condition: mysql.embeddedMaria

Просмотреть файл

@ -0,0 +1,41 @@
*******************************************************************
*** PLEASE BE PATIENT: Drupal may take a few minutes to install ***
*******************************************************************
1. Get the Drupal URL:
{{- if .Values.ingress.hostname }}
You should be able to access your new Drupal installation through
http://{{- .Values.ingress.hostname }}/
{{- 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 "drupal.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "drupal.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo http://$SERVICE_IP/
{{- else if contains "ClusterIP" .Values.serviceType }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "drupal.fullname" . }}" -o jsonpath="{.items[0].metadata.name}")
echo http://127.0.0.1:8080/
kubectl port-forward $POD_NAME 8080:80
{{- end }}
{{- if contains "NodePort" .Values.serviceType }}
Or running:
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "drupal.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT/
{{- end }}
2. Login with the following credentials
echo Username: {{ .Values.drupalUsername }}
echo Password: $(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "drupal.fullname" . }} -o jsonpath="{.data.drupal-password}" | base64 --decode)

Просмотреть файл

@ -0,0 +1,24 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "drupal.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "drupal.fullname" -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "drupal.mariadb.fullname" -}}
{{- printf "%s-%s" .Release.Name "mariadb" | trunc 63 | trimSuffix "-" -}}
{{- end -}}

Просмотреть файл

@ -0,0 +1,24 @@
{{- if and .Values.persistence.enabled .Values.volumeMounts.apache.mountPath -}}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ template "drupal.fullname" . }}-apache
labels:
app: {{ template "drupal.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
accessModes:
- {{ .Values.persistence.apache.accessMode | quote }}
resources:
requests:
storage: {{ .Values.persistence.apache.size | quote }}
{{- if .Values.persistence.apache.storageClass }}
{{- if (eq "-" .Values.persistence.apache.storageClass) }}
storageClassName: ""
{{- else }}
storageClassName: "{{ .Values.persistence.apache.storageClass }}"
{{- end }}
{{- end }}
{{- end -}}

Просмотреть файл

@ -0,0 +1,109 @@
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: {{ template "drupal.fullname" . }}
labels:
app: {{ template "drupal.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
replicas: 1
template:
metadata:
labels:
app: {{ template "drupal.fullname" . }}
spec:
containers:
- name: {{ template "drupal.fullname" . }}
image: "{{ .Values.image }}"
imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }}
env:
{{- if .Values.mysql.embeddedMaria }}
- name: MARIADB_HOST
value: {{ template "drupal.mariadb.fullname" . }}
- name: MARIADB_PORT_NUMBER
value: "3306"
- name: MARIADB_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "drupal.mariadb.fullname" . }}
key: mariadb-root-password
{{- else }}
- name: MARIADB_HOST
valueFrom:
secretKeyRef:
name: {{ template "drupal.fullname" . }}-mysql-secret
key: host
- name: MARIADB_PORT_NUMBER
valueFrom:
secretKeyRef:
name: {{ template "drupal.fullname" . }}-mysql-secret
key: port
- name: DRUPAL_DATABASE_NAME
valueFrom:
secretKeyRef:
name: {{ template "drupal.fullname" . }}-mysql-secret
key: database
- name: DRUPAL_DATABASE_USER
valueFrom:
secretKeyRef:
name: {{ template "drupal.fullname" . }}-mysql-secret
key: username
- name: DRUPAL_DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "drupal.fullname" . }}-mysql-secret
key: password
{{- end }}
- name: DRUPAL_USERNAME
value: {{ default "" .Values.drupalUsername | quote }}
- name: DRUPAL_PASSWORD
valueFrom:
secretKeyRef:
name: {{ template "drupal.fullname" . }}
key: drupal-password
- name: DRUPAL_EMAIL
value: {{ default "" .Values.drupalEmail | quote }}
{{- if .Values.extraVars }}
{{ toYaml .Values.extraVars | indent 8 }}
{{- end }}
ports:
- name: http
containerPort: 80
- name: https
containerPort: 443
livenessProbe:
{{ toYaml .Values.livenessProbe | indent 10 }}
readinessProbe:
{{ toYaml .Values.readinessProbe | indent 10 }}
resources:
{{ toYaml .Values.resources | indent 10 }}
volumeMounts:
- name: drupal-data
mountPath: {{ .Values.volumeMounts.drupal.mountPath }}
{{- if .Values.volumeMounts.apache.mountPath }}
- name: apache-data
mountPath: {{ .Values.volumeMounts.apache.mountPath }}
{{- end }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{ toYaml .Values.imagePullSecrets | indent 8 }}
{{- end }}
volumes:
- name: drupal-data
{{- if .Values.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ .Values.persistence.drupal.existingClaim | default (printf "%s-drupal" (include "drupal.fullname" .)) }}
{{- else }}
emptyDir: {}
{{- end }}
{{- if .Values.volumeMounts.apache.mountPath }}
- name: apache-data
{{- if .Values.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ template "drupal.fullname" . }}-apache
{{- else }}
emptyDir: {}
{{- end }}
{{- end }}

Просмотреть файл

@ -0,0 +1,13 @@
{{- if and .Values.persistence.enabled .Values.persistence.drupal.hostPath (not .Values.persistence.drupal.existingClaim) -}}
apiVersion: v1
kind: PersistentVolume
metadata:
name: {{ template "drupal.fullname" . }}-drupal
spec:
accessModes:
- {{ .Values.persistence.drupal.accessMode | quote }}
capacity:
storage: {{ .Values.persistence.drupal.size | quote }}
hostPath:
path: {{ .Values.persistence.drupal.hostPath | quote }}
{{- end -}}

Просмотреть файл

@ -0,0 +1,27 @@
{{- if and .Values.persistence.enabled (not .Values.persistence.drupal.existingClaim) -}}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ template "drupal.fullname" . }}-drupal
labels:
app: {{ template "drupal.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
{{- if .Values.persistence.drupal.hostPath }}
storageClassName: ""
{{- end }}
accessModes:
- {{ .Values.persistence.drupal.accessMode | quote }}
resources:
requests:
storage: {{ .Values.persistence.drupal.size | quote }}
{{- if and .Values.persistence.drupal.storageClass (not .Values.persistence.drupal.hostPath) -}}
{{- if (eq "-" .Values.persistence.drupal.storageClass) }}
storageClassName: ""
{{- else }}
storageClassName: "{{ .Values.persistence.drupal.storageClass }}"
{{- end }}
{{- end }}
{{- end -}}

Просмотреть файл

@ -0,0 +1,28 @@
{{- if .Values.ingress.enabled -}}
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: {{ template "drupal.fullname" . }}
labels:
app: {{ template "drupal.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
annotations:
{{- range $key, $value := .Values.ingress.annotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
spec:
rules:
- host: {{ .Values.ingress.hostname }}
http:
paths:
- path: /
backend:
serviceName: {{ template "drupal.fullname" . }}
servicePort: 80
{{- if .Values.ingress.tls }}
tls:
{{ toYaml .Values.ingress.tls | indent 4 }}
{{- end -}}
{{- end -}}

Просмотреть файл

@ -0,0 +1,15 @@
{{- if not .Values.mysql.embeddedMaria }}
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceBinding
metadata:
name: {{ template "drupal.fullname" . }}-mysql-binding
labels:
app: {{ template "drupal.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
instanceRef:
name: {{ template "drupal.fullname" . }}-mysql-instance
secretName: {{ template "drupal.fullname" . }}-mysql-secret
{{- end }}

Просмотреть файл

@ -0,0 +1,18 @@
{{- if not .Values.mysql.embeddedMaria }}
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceInstance
metadata:
name: {{ template "drupal.fullname" . }}-mysql-instance
labels:
app: {{ template "drupal.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
clusterServiceClassExternalName: azure-mysqldb
clusterServicePlanExternalName: "{{ .Values.mariadb.planName }}"
parameters:
location: "{{ .Values.mariadb.location }}"
resourceGroup: {{ .Release.Namespace }}
sslEnforcement: disabled
{{- end }}

Просмотреть файл

@ -0,0 +1,16 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ template "drupal.fullname" . }}
labels:
app: {{ template "drupal.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
type: Opaque
data:
{{ if .Values.drupalPassword }}
drupal-password: {{ default "" .Values.drupalPassword | b64enc | quote }}
{{ else }}
drupal-password: {{ randAlphaNum 10 | b64enc | quote }}
{{ end }}

20
drupal/templates/svc.yaml Normal file
Просмотреть файл

@ -0,0 +1,20 @@
apiVersion: v1
kind: Service
metadata:
name: {{ template "drupal.fullname" . }}
labels:
app: {{ template "drupal.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
type: {{ .Values.serviceType }}
ports:
- name: http
port: 80
targetPort: http
- name: https
port: 443
targetPort: https
selector:
app: {{ template "drupal.fullname" . }}

201
drupal/values.yaml Normal file
Просмотреть файл

@ -0,0 +1,201 @@
## Bitnami Drupal image version
## ref: https://hub.docker.com/r/bitnami/drupal/tags/
##
image: bitnami/drupal:8.4.2-r1
## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace.
## ref: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
##
# imagePullSecrets:
# - name: myRegistryKeySecretName
## Specify a imagePullPolicy
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
imagePullPolicy: IfNotPresent
## User of the application
## ref: https://github.com/bitnami/bitnami-docker-drupal#configuration
##
drupalUsername: user
## Application password
## Defaults to a random 10-character alphanumeric string if not set
## ref: https://github.com/bitnami/bitnami-docker-drupal#configuration
##
# drupalPassword:
## Admin email
## ref: https://github.com/bitnami/bitnami-docker-drupal#configuration
##
drupalEmail: user@example.com
## 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
mysql:
embeddedMaria: false
##
## MariaDB chart configuration
##
mariadb:
## Whether to use the database specified as a requirement or not. For example, to configure the chart with an existing database server.
enabled: true
## MariaDB admin password
## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#setting-the-root-password-on-first-run
##
# mariadbRootPassword:
## Related to the Azure Service Broker
# Plan to use for the MySQL Instance
planName: standard800
# Azure Location where to deploy the instance
location: eastus
## Create a database
## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#creating-a-database-on-first-run
##
mariadbDatabase: bitnami_drupal
## 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_drupal
## Password for mariadbUser
## ref: https://github.com/bitnami/bitnami-docker-mariadb/blob/master/README.md#creating-a-database-user-on-first-run
##
# mariadbPassword:
## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
##
persistence:
enabled: true
## mariadb data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## 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
size: 8Gi
## Kubernetes configuration
## For minikube, set this to NodePort, elsewhere use LoadBalancer
## Use ClusterIP if your setup includes ingress controller
##
serviceType: LoadBalancer
## Configure Ingress resource that allow you to access the Drupal installation
## Set up the URL
## ref: http://kubernetes.io/docs/user-guide/ingress/
##
ingress:
enabled: false
# Used to create Ingress record (should used with ServiceType: ClusterIP).
# hostname: drupal.local
## Ingress annotations
##
# annotations:
# kubernetes.io/ingress.class: nginx
## Ingress TLS configuration
## Secrets must be manually created in the namespace
##
# tls:
# - secretName: wordpress.local-tls
# hosts:
# - drupal.local
## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
##
persistence:
enabled: true
apache:
## apache data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## 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
size: 1Gi
drupal:
## drupal data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## 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
size: 8Gi
## A manually managed Persistent Volume Claim
## Requires persistence.enabled: true
## If defined, PVC must be created manually before volume will be bound
##
# existingClaim:
## If defined, the drupal-data volume will mount to the speficied hostPath.
## Requires persistence.enabled: true
## Requires persistence.existingClaim: nil|false
## Default: nil.
##
# hostPath:
## Configure resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
requests:
memory: 512Mi
cpu: 300m
## Configure volume mounts. This is useful for images whose data mount paths are
## different than the default.
## Setting volumeMounts.apache.mountPath to "" prevents Apache config mount.
##
volumeMounts:
drupal:
mountPath: /bitnami/drupal
apache:
mountPath: /bitnami/apache
## Pass extra environment variables to the Drupal container.
##
# extraVars:
# - name: EXTRA_VAR_1
# value: extra-var-value-1
# - name: EXTRA_VAR_2
# value: extra-var-value-2
## Configure liveness and readiness probes.
## Drupal core exposes /user/login to unauthenticated requests, making it a good
## default liveness and readiness path. However, that may not always be the
## case. For example, if the image value is overridden to an image containing a
## module that alters that route, or an image that does not auto-install Drupal.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/
#
livenessProbe:
httpGet:
path: /user/login
port: http
initialDelaySeconds: 120
readinessProbe:
httpGet:
path: /user/login
port: http
initialDelaySeconds: 30