This module deploys and configures Drupal WxT inside a Kubernetes Cluster.
The following security controls can be met through configuration of this template:
- TBD
- None
- None
module "helm_drupalwxt" { source = "git::https://github.com/drupalwxt/terraform-kubernetes-drupalwxt.git" chart_version = "0.6.8" depends_on = [ module.namespace_drupal, module.drupal_database, ] helm_namespace = "drupal" helm_repository = "https://drupalwxt.github.io/helm-drupal" values = <<EOF ingress: enabled: true annotations: kubernetes.io/ingress.class: nginx kubernetes.io/tls-acme: "true" kubernetes.io/ingress.class: istio path: /* hosts: - drupal.${var.ingress_domain} drupal: ## Drupal image version ## ref: https://hub.docker.com/drupalwxt/site-wxt/tags/ ## image: drupalwxt/site-wxt ## Note that by default we use appVersion to get image tag tag: 6.1.0 ## Site configuration ## profile: wxt siteEmail: admin@example.com siteName: Drupal Install Profile (WxT) ## User of the application ## username: admin ## Application password ## password: ${var.drupal_password} # php-fpm healthcheck # Requires https://github.com/renatomefi/php-fpm-healthcheck in the container. # (note: official images do not contain this feature yet) healthcheck: enabled: true # Switch to canada.ca theme (only used if install and/or reconfigure are enabled) # Common options include: theme-wet-boew, theme-gcweb-legacy wxtTheme: theme-gcweb ## Extra settings.php settings ## extraSettings: |- $settings['trusted_host_patterns'] = ['^drupal\.example\.ca$', '^drupalwxt-nginx$']; ## Extra CLI scripts ## extraInstallScripts: '' # |- # drush config-set system.performance js.preprocess 0 -y; # drush config-set system.performance css.preprocess 0 -y; # Install Drupal automatically install: true # Run migrations for default content migrate: true # Reconfigure on upgrade reconfigure: true # php-fpm healthcheck # Requires https://github.com/renatomefi/php-fpm-healthcheck in the container. # (note: official images do not contain this feature yet) healthcheck: enabled: true # Allows custom /var/www/html/sites/default/files and /var/www/private mounts disableDefaultFilesMount: true # kubectl create secret generic drupal-storage --from-literal=azurestorageaccountname=$STORAGE_ACCOUNT_NAME --from-literal=azurestorageaccountkey=$STORAGE_KEY -n drupal volumes: - name: files-public azureFile: secretName: drupal-storage shareName: drupal-public - name: files-private azureFile: secretName: drupal-storage shareName: drupal-private volumeMounts: - name: files-public mountPath: /var/www/html/sites/default/files - name: files-private mountPath: /var/www/private initContainers: # Pre-create the media-icons folder - name: init-media-icons-folder image: alpine:3.10 command: - mkdir - -p - /files/media-icons/generic volumeMounts: - name: files-public mountPath: /files nginx: tag: 6.1.0 # Set your cluster's DNS resolution service here resolver: 10.0.0.10 # kubectl create secret generic drupal-storage --from-literal=azurestorageaccountname=$STORAGE_ACCOUNT_NAME --from-literal=azurestorageaccountkey=$STORAGE_KEY -n drupal volumes: - name: files-public azureFile: secretName: drupal-storage shareName: drupal-public volumeMounts: - name: files-public mountPath: /var/www/html/sites/default/files external: enabled: true driver: pgsql port: 5432 host: 127.0.0.1 database: drupal user: ${module.drupal_database.administrator_login}@${module.drupal_database.name} password: ${var.managed_postgresql_password} files: provider: none minio: enabled: false mysql: enabled: false postgresql: enabled: false pgbouncer: enabled: true host: ${module.drupal_database.name}.postgres.database.azure.com user: ${module.drupal_database.administrator_login}@${module.drupal_database.name} password: ${var.managed_postgresql_password} poolSize: 25 maxClientConnections: 500 redis: enabled: true varnish: enabled: true EOF }
Name | Type | Required | Value |
---|---|---|---|
chart_version | string | yes | Version of the Helm Chart |
helm_namespace | string | yes | The namespace Helm will install the chart under |
helm_repository | string | yes | The repository where the Helm chart is stored |
values | list | no | Values to be passed to the Helm Chart |
Date | Release | Change |
---|---|---|
20210829 | 20210829.1 | Update to latest Terraform compatibility 1.0.x |
20190909 | 20190909.1 | 1st release |
20191220 | 20191220.1 | Updates to specification as Azure File is now in chart |