Helm Chart for deploying an enterprise-grade Drupal environment.
Homepage: http://www.drupal.org/project/drupal
| Name | Url | |
|---|---|---|
| sylus | william.hearn@canada.ca | |
| zachomedia | zachary.seguin@canada.ca |
| Repository | Name | Version |
|---|---|---|
| https://charts.bitnami.com/bitnami | mysql(mysql) | 14.0.3 |
| https://charts.bitnami.com/bitnami | postgresql | 15.5.38 |
| https://charts.bitnami.com/bitnami | solr | 7.5.1 |
| https://drupalwxt.github.io/helm-drupal | varnish | 0.2.5 |
| https://valkey-io.github.io/valkey-helm | redis(valkey) | 0.9.3 |
- Kubernetes 1.21+
- Helm v3.10.0+
To install the chart with the release name my-release:
helm repo add drupalwxt https://drupalwxt.github.io/helm-drupal
"drupalwxt" has been added to your repositories
helm install my-release drupalwxt/drupal
NAME: my-releaseOptionally you can git clone the helm chart and select the appropriate values file:
git clone https://github.com/drupalwxt/helm-drupal
cd helm-drupal/drupal
helm install --name drupal -f values-<override>.yaml| Key | Type | Default | Description |
|---|---|---|---|
| ingress.annotations | object | {} |
|
| ingress.enabled | bool | false |
|
| ingress.hosts[0] | string | "chart-example.local" |
|
| ingress.path | string | "/" |
|
| ingress.tls | list | [] |
| Key | Type | Default | Description |
|---|---|---|---|
| drupal.additionalCrons | object | {} |
|
| drupal.args | list | [] |
|
| drupal.autoscaling.enabled | bool | false |
|
| drupal.autoscaling.maxReplicas | int | 11 |
|
| drupal.autoscaling.minReplicas | int | 1 |
|
| drupal.autoscaling.targetCPUUtilizationPercentage | int | 50 |
|
| drupal.autoscaling.targetMemoryUtilizationPercentage | int | 50 |
|
| drupal.backup.cleanup.enabled | bool | false |
|
| drupal.backup.enabled | bool | false |
|
| drupal.backup.filesArgs | string | "" |
|
| drupal.backup.persistence.accessMode | string | "ReadWriteOnce" |
|
| drupal.backup.persistence.annotations | object | {} |
|
| drupal.backup.persistence.enabled | bool | false |
|
| drupal.backup.persistence.size | string | "8Gi" |
|
| drupal.backup.privateArgs | string | "" |
|
| drupal.backup.schedule | string | "0 0 * * *" |
|
| drupal.backup.sqlDumpArgs | string | "" |
|
| drupal.backup.volume | object | {} |
|
| drupal.cacheRebuildBeforeDatabaseMigration | bool | true |
|
| drupal.command | list | [] |
|
| drupal.configSplit.enabled | bool | false |
|
| drupal.configSync.directory | string | "/private/config/sync" |
|
| drupal.cron.enabled | bool | true |
|
| drupal.cron.failedJobsHistoryLimit | int | 1 |
|
| drupal.cron.preInstallScripts | string | "" |
|
| drupal.cron.schedule | string | "0 * * * *" |
|
| drupal.cron.successfulJobsHistoryLimit | int | 3 |
|
| drupal.dbAvailabilityScript | string | "until drush sql:query 'SHOW TABLES;'; do echo Waiting for DB; sleep 3; done\necho DB available" |
default script used to detect when the DB is ready |
| drupal.disableDefaultFilesMount | bool | false |
|
| drupal.extensions.enabled | bool | true |
|
| drupal.extraSettings | string | "" |
|
| drupal.healthcheck.enabled | bool | true |
|
| drupal.healthcheck.probes.livenessProbe.exec.command[0] | string | "php-fpm-healthcheck" |
|
| drupal.healthcheck.probes.livenessProbe.failureThreshold | int | 3 |
|
| drupal.healthcheck.probes.livenessProbe.initialDelaySeconds | int | 1 |
|
| drupal.healthcheck.probes.livenessProbe.periodSeconds | int | 5 |
|
| drupal.healthcheck.probes.livenessProbe.successThreshold | int | 1 |
|
| drupal.healthcheck.probes.livenessProbe.timeoutSeconds | int | 1 |
|
| drupal.healthcheck.probes.readinessProbe.exec.command[0] | string | "php-fpm-healthcheck" |
|
| drupal.healthcheck.probes.readinessProbe.failureThreshold | int | 3 |
|
| drupal.healthcheck.probes.readinessProbe.initialDelaySeconds | int | 1 |
|
| drupal.healthcheck.probes.readinessProbe.periodSeconds | int | 5 |
|
| drupal.healthcheck.probes.readinessProbe.successThreshold | int | 1 |
|
| drupal.healthcheck.probes.readinessProbe.timeoutSeconds | int | 1 |
|
| drupal.image | string | "drupalwxt/site-wxt" |
|
| drupal.imagePullPolicy | string | "IfNotPresent" |
|
| drupal.initContainerImage | string | "alpine:3.10" |
|
| drupal.install | bool | true |
|
| drupal.migrate | bool | true |
|
| drupal.nodeSelector | object | {} |
|
| drupal.persistence.accessMode | string | "ReadWriteOnce" |
|
| drupal.persistence.annotations | object | {} |
|
| drupal.persistence.enabled | bool | false |
|
| drupal.persistence.size | string | "8Gi" |
|
| drupal.php.fpm | string | "pm.max_children = 50\npm.start_servers = 5\npm.min_spare_servers = 5\npm.max_spare_servers = 35" |
|
| drupal.php.ini | object | {} |
|
| drupal.podAnnotations | object | {} |
|
| drupal.postInstallScripts | string | "" |
|
| drupal.postUpgradeScripts | string | "" |
|
| drupal.preInstallScripts | string | "" |
|
| drupal.preUpgradeScripts | string | "" |
|
| drupal.profile | string | "wxt" |
|
| drupal.reconfigure.enabled | bool | true |
|
| drupal.reconfigure.resources.limits.cpu | string | "250m" |
|
| drupal.reconfigure.resources.limits.memory | string | "512Mi" |
|
| drupal.reconfigure.resources.requests.cpu | string | "50m" |
|
| drupal.reconfigure.resources.requests.memory | string | "256Mi" |
|
| drupal.replicas | int | 1 |
|
| drupal.resources | object | {} |
|
| drupal.restore.convert | bool | false |
|
| drupal.restore.db | bool | true |
|
| drupal.restore.enabled | bool | false |
|
| drupal.restore.files | bool | false |
|
| drupal.restore.name | string | "latest" |
|
| drupal.restore.suppressTarErrors | bool | false |
|
| drupal.restore.volume | object | {} |
|
| drupal.securityContext | object | {} |
|
| drupal.serviceAccount.annotations | object | {} |
|
| drupal.serviceAccount.automountServiceAccountToken | bool | true |
|
| drupal.serviceAccount.create | bool | true |
|
| drupal.serviceAccount.name | string | "" |
|
| drupal.serviceType | string | "ClusterIP" |
|
| drupal.services | string | "" |
|
| drupal.siteEmail | string | "admin@example.com" |
|
| drupal.siteName | string | "Drupal Install Profile (WxT)" |
|
| drupal.siteRoot | string | "/" |
|
| drupal.smtp.auth.enabled | bool | false |
|
| drupal.smtp.auth.method | string | "LOGIN" |
|
| drupal.smtp.auth.password | string | "" |
|
| drupal.smtp.auth.user | string | "" |
|
| drupal.smtp.host | string | "mail" |
|
| drupal.smtp.starttls | bool | true |
|
| drupal.smtp.tls | bool | true |
|
| drupal.tolerations | list | [] |
|
| drupal.updateDBBeforeDatabaseMigration | bool | true |
|
| drupal.username | string | "admin" |
|
| drupal.version | string | "d11" |
|
| drupal.volumeMounts | string | nil |
|
| drupal.volumePermissions.enabled | bool | false |
|
| drupal.volumes | string | nil |
| Key | Type | Default | Description |
|---|---|---|---|
| nginx.autoscaling.enabled | bool | false |
|
| nginx.autoscaling.maxReplicas | int | 11 |
|
| nginx.autoscaling.minReplicas | int | 1 |
|
| nginx.autoscaling.targetCPUUtilizationPercentage | int | 50 |
|
| nginx.autoscaling.targetMemoryUtilizationPercentage | int | 50 |
|
| nginx.client_max_body_size | string | "20m" |
|
| nginx.customLocations | string | "" |
|
| nginx.gzip | bool | true |
|
| nginx.healthcheck.enabled | bool | true |
|
| nginx.healthcheck.livenessProbe.failureThreshold | int | 3 |
|
| nginx.healthcheck.livenessProbe.httpGet.path | string | "/_healthz" |
|
| nginx.healthcheck.livenessProbe.httpGet.port | int | 8080 |
|
| nginx.healthcheck.livenessProbe.initialDelaySeconds | int | 1 |
|
| nginx.healthcheck.livenessProbe.periodSeconds | int | 5 |
|
| nginx.healthcheck.livenessProbe.successThreshold | int | 1 |
|
| nginx.healthcheck.livenessProbe.timeoutSeconds | int | 1 |
|
| nginx.healthcheck.readinessProbe.failureThreshold | int | 3 |
|
| nginx.healthcheck.readinessProbe.httpGet.path | string | "/_healthz" |
|
| nginx.healthcheck.readinessProbe.httpGet.port | int | 8080 |
|
| nginx.healthcheck.readinessProbe.initialDelaySeconds | int | 1 |
|
| nginx.healthcheck.readinessProbe.periodSeconds | int | 5 |
|
| nginx.healthcheck.readinessProbe.successThreshold | int | 1 |
|
| nginx.healthcheck.readinessProbe.timeoutSeconds | int | 1 |
|
| nginx.image | string | "drupalwxt/site-wxt" |
|
| nginx.imagePullPolicy | string | "IfNotPresent" |
|
| nginx.nodeSelector | object | {} |
|
| nginx.real_ip_header | string | "X-Forwarded-For" |
|
| nginx.replicas | int | 1 |
|
| nginx.resolver | string | "kube-dns.kube-system.svc.cluster.local" |
|
| nginx.resources | object | {} |
|
| nginx.securityContext | object | {} |
|
| nginx.serviceType | string | "ClusterIP" |
|
| nginx.tolerations | list | [] |
|
| nginx.volumeMounts | string | nil |
|
| nginx.volumes | string | nil |
| Key | Type | Default | Description |
|---|---|---|---|
| mysql.auth.database | string | "wxt" |
|
| mysql.auth.password | string | "" |
|
| mysql.auth.rootPassword | string | "" |
|
| mysql.auth.username | string | "wxt" |
|
| mysql.enabled | bool | true |
|
| mysql.image.pullPolicy | string | "IfNotPresent" |
|
| mysql.image.registry | string | "docker.io" |
|
| mysql.image.repository | string | "bitnamilegacy/mysql" |
|
| mysql.image.tag | string | "8.0" |
|
| mysql.primary.extraFlags | string | "--default-authentication-plugin=mysql_native_password --skip-name-resolve --max_allowed_packet=256M --innodb_buffer_pool_size=4096M --innodb_buffer_pool_instances=4 --table_definition_cache=4096 --table_open_cache=8192 --innodb_flush_log_at_trx_commit=2 --skip_ssl --require_secure_transport=OFF" |
|
| mysql.primary.persistence.enabled | bool | true |
|
| mysql.primary.persistence.size | string | "128Gi" |
|
| mysql.primary.resources.limits.cpu | string | "4000m" |
|
| mysql.primary.resources.limits.memory | string | "8Gi" |
|
| mysql.primary.resources.requests.cpu | string | "2000m" |
|
| mysql.primary.resources.requests.memory | string | "4Gi" |
|
| mysql.volumePermissions.enabled | bool | true |
|
| mysql.volumePermissions.image.registry | string | "docker.io" |
|
| mysql.volumePermissions.image.repository | string | "bitnamilegacy/os-shell" |
|
| mysql.volumePermissions.image.tag | string | "12-debian-12" |
| Key | Type | Default | Description |
|---|---|---|---|
| proxysql.admin.password | string | "password" |
|
| proxysql.admin.user | string | "username@hostname" |
|
| proxysql.configuration.maxConnections | int | 2048 |
|
| proxysql.configuration.serverVersion | string | "5.7.28" |
|
| proxysql.configuration.stackSize | int | 1048576 |
|
| proxysql.enabled | bool | false |
|
| proxysql.monitor.password | string | "password" |
|
| proxysql.monitor.user | string | "username@hostname" |
| Key | Type | Default | Description |
|---|---|---|---|
| postgresql.auth.database | string | "wxt" |
|
| postgresql.auth.enablePostgresUser | bool | true |
|
| postgresql.auth.password | string | "example" |
|
| postgresql.auth.postgresPassword | string | "example" |
|
| postgresql.auth.username | string | "wxt" |
|
| postgresql.enabled | bool | false |
|
| postgresql.image.pullPolicy | string | "IfNotPresent" |
|
| postgresql.image.registry | string | "docker.io" |
|
| postgresql.image.repository | string | "bitnamilegacy/postgresql" |
|
| postgresql.image.tag | string | "16" |
|
| postgresql.primary.extendedConfiguration | string | "listen_addresses='*'\nmax_connections=200\nshared_buffers='512MB'\nwork_mem='2048MB'\neffective_cache_size='512MB'\nmaintenance_work_mem='32MB'\nmin_wal_size='512MB'\nmax_wal_size='512MB'\nbytea_output='escape'" |
|
| postgresql.primary.persistence.enabled | bool | true |
|
| postgresql.primary.persistence.size | string | "128Gi" |
|
| postgresql.volumePermissions.enabled | bool | true |
|
| postgresql.volumePermissions.image.registry | string | "docker.io" |
|
| postgresql.volumePermissions.image.repository | string | "bitnamilegacy/os-shell" |
|
| postgresql.volumePermissions.image.tag | string | "12-debian-12" |
| Key | Type | Default | Description |
|---|---|---|---|
| pgbouncer.enabled | bool | false |
|
| pgbouncer.host | string | "mypgserver.postgres.database.azure.com" |
|
| pgbouncer.maxClientConnections | int | 400 |
|
| pgbouncer.password | string | "password" |
|
| pgbouncer.poolSize | int | 50 |
|
| pgbouncer.user | string | "username@hostname" |
| Key | Type | Default | Description |
|---|---|---|---|
| external.database | string | "wxt" |
|
| external.driver | string | "mysql" |
|
| external.enabled | bool | false |
|
| external.host | string | "mysql.example.org" |
|
| external.password | string | "password" |
|
| external.port | int | 3306 |
|
| external.user | string | "wxt" |
| Key | Type | Default | Description |
|---|---|---|---|
| azure.azureFile.accessMode | string | "ReadWriteMany" |
|
| azure.azureFile.annotations | object | {} |
|
| azure.azureFile.backup.spec | object | {} |
|
| azure.azureFile.enabled | bool | false |
|
| azure.azureFile.folders[0] | string | "backup" |
|
| azure.azureFile.folders[1] | string | "private" |
|
| azure.azureFile.folders[2] | string | "public" |
|
| azure.azureFile.folders[3] | string | "tmp" |
|
| azure.azureFile.initMediaIconsFolder | bool | true |
|
| azure.azureFile.private.spec | object | {} |
|
| azure.azureFile.protocol | string | "smb" |
|
| azure.azureFile.public.spec | object | {} |
|
| azure.azureFile.size | string | "256Gi" |
|
| azure.azureFile.skuName | string | "Standard_LRS" |
|
| azure.azureFile.tmp.spec | object | {} |
| Key | Type | Default | Description |
|---|---|---|---|
| azure.sharedDisk.accessMode | string | "ReadWriteMany" |
|
| azure.sharedDisk.annotations | object | {} |
|
| azure.sharedDisk.enabled | bool | false |
|
| azure.sharedDisk.folders[0] | string | "private" |
|
| azure.sharedDisk.folders[1] | string | "public" |
|
| azure.sharedDisk.initMediaIconsFolder | bool | true |
|
| azure.sharedDisk.maxShares | int | 2 |
|
| azure.sharedDisk.private.spec | object | {} |
|
| azure.sharedDisk.public.spec | object | {} |
|
| azure.sharedDisk.size | string | "256Gi" |
| Key | Type | Default | Description |
|---|---|---|---|
| redis.architecture | string | "standalone" |
|
| redis.auth.aclUsers.default.password | string | "secretpass" |
|
| redis.auth.aclUsers.default.permissions | string | "~* &* +@all" |
|
| redis.auth.enabled | bool | true |
|
| redis.configuration | string | "appendonly no\nsave \"\"" |
|
| redis.enabled | bool | true |
|
| redis.primary.persistence.enabled | bool | false |
|
| redis.primary.service.type | string | "ClusterIP" |
|
| redis.queue.enabled | bool | true |
|
| redis.replica.replicaCount | int | 0 |
| Key | Type | Default | Description |
|---|---|---|---|
| varnish.affinity | object | {} |
|
| varnish.enabled | bool | true |
|
| varnish.nodeSelector | object | {} |
|
| varnish.resources | object | {} |
|
| varnish.service.port | int | 8080 |
|
| varnish.service.type | string | "ClusterIP" |
|
| varnish.tolerations | list | [] |
|
| varnish.varnishConfigContent | string | `"vcl 4.0;\n\nimport std;\nimport directors;\n\nbackend nginx {\n .host = "{{ include "backend.fullname" . }}-nginx";\n .host_header = "{{ include "backend.fullname" . }}-nginx";\n .port = "8080";\n}\n\nsub vcl_init {\n new backends = directors.round_robin();\n backends.add_backend(nginx);\n}\n\nsub vcl_recv {\n set req.http.X-Forwarded-Host = req.http.Host;\n if (!req.http.X-Forwarded-Proto) {\n set req.http.X-Forwarded-Proto = "http";\n }\n\n # Answer healthcheck\n if (req.url == "/_healthcheck" | |
| varnish.varnishd.image | string | "varnish" |
|
| varnish.varnishd.imagePullPolicy | string | "IfNotPresent" |
|
| varnish.varnishd.tag | string | "6.6.2" |
Autogenerated from chart metadata using helm-docs v1.14.2