Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion charts/drupal/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ name: drupal
description: Production-ready Drupal CMS with seeded sites persistence, S3 backups, and safe horizontal scaling controls
type: application
version: 1.2.8
appVersion: "11.3.13"
appVersion: "11.4.0"
kubeVersion: ">=1.26.0-0"
maintainers:
- name: helmforgedev
Expand Down
19 changes: 12 additions & 7 deletions charts/drupal/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Important runtime note:

- This chart uses `docker.io/library/drupal`.
- Drupal upstream does not currently publish its own upstream-maintained runtime container image.
- HelmForge pins the Docker Official Apache image explicitly to `11.3.13-php8.5-apache-bookworm`, which is published by the Docker Official Drupal image repository.
- HelmForge pins the Docker Official Apache image explicitly to `11.4.0-php8.5-apache-bookworm`, which is published by the Docker Official Drupal image repository.
- The chart prepares runtime, persistence, ingress, backup automation, and database connectivity, then guides the final site installation through Drupal's web installer.

## Install
Expand Down Expand Up @@ -44,7 +44,7 @@ Then:

## Why This Chart Is Different

- **Pinned production image** — uses `drupal:11.3.13-php8.5-apache-bookworm`, keeping the Drupal release, PHP runtime, and Debian base explicit
- **Pinned production image** — uses `drupal:11.4.0-php8.5-apache-bookworm`, keeping the Drupal release, PHP runtime, and Debian base explicit
- **Seeded `sites/` persistence** — preserves installer output and uploads without masking Drupal core files from the image
- **Built-in backup automation** — archives `sites/` and backs up either MySQL or SQLite to S3-compatible storage
- **Safe scaling model** — single replica by default, with fail-fast guardrails for multi-replica or HPA use
Expand All @@ -53,10 +53,15 @@ Then:

## Upstream Version Notes

Drupal `11.3.13` is an upstream patch release for Drupal 11. The official
release notes state that it is ready for production use and resolves Composer
security errors from third-party components when installing
`drupal/core-recommended`.
Drupal `11.4.0` is an upstream feature minor release for Drupal 11 and is
marked by upstream as ready for production sites. The release changes the
Composer dependency policy for `drupal/core-recommended`: Guzzle, Twig, and
Symfony polyfills are no longer pinned there, so security and patch updates can
be applied without waiting for a new Drupal core release.

Before upgrading production workloads, test the site in staging with the same
PHP extensions, Composer dependency set, storage class, and database mode used
in production.

## Production Example

Expand Down Expand Up @@ -144,7 +149,7 @@ mysql:
|-----|---------|-------------|
| `replicaCount` | `1` | Number of Drupal replicas. |
| `image.repository` | `docker.io/library/drupal` | Drupal image repository. |
| `image.tag` | `11.3.13-php8.5-apache-bookworm` | Drupal image tag. |
| `image.tag` | `11.4.0-php8.5-apache-bookworm` | Drupal image tag. |
| `database.mode` | `auto` | Database mode: `auto`, `external`, `mysql`, or `sqlite`. |
| `mysql.enabled` | `true` | Deploy bundled MySQL. |
| `mysql.auth.database` | `drupal` | Database name created by the MySQL subchart. |
Expand Down
4 changes: 2 additions & 2 deletions charts/drupal/tests/deployment_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ tests:
asserts:
- equal:
path: spec.template.spec.containers[0].image
value: docker.io/library/drupal:11.3.13-php8.5-apache-bookworm
value: docker.io/library/drupal:11.4.0-php8.5-apache-bookworm

- it: should include the seed-sites init container
template: templates/deployment.yaml
Expand All @@ -62,7 +62,7 @@ tests:
value: seed-sites
- equal:
path: spec.template.spec.initContainers[0].image
value: docker.io/library/drupal:11.3.13-php8.5-apache-bookworm
value: docker.io/library/drupal:11.4.0-php8.5-apache-bookworm

- it: should mount the sites directory
template: templates/deployment.yaml
Expand Down
2 changes: 1 addition & 1 deletion charts/drupal/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ image:
# -- Drupal container image repository
repository: docker.io/library/drupal
# -- Drupal container image tag
tag: "11.3.13-php8.5-apache-bookworm"
tag: "11.4.0-php8.5-apache-bookworm"
# -- Image pull policy
pullPolicy: IfNotPresent

Expand Down