From abfe5e2484493778320ad69c5a2537886e41f766 Mon Sep 17 00:00:00 2001 From: ivan Date: Tue, 30 Jun 2026 15:13:19 +0300 Subject: [PATCH 1/4] Modernize volume mounts: paths -> mounted-volumes + volumes Co-Authored-By: Claude Opus 4.8 (1M context) --- drupal-stack.yaml | 40 ++++++++++++++++++++++++---------------- drupal.yaml | 12 ++++++------ 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/drupal-stack.yaml b/drupal-stack.yaml index 5971d3e88f98..45bed23ff785 100644 --- a/drupal-stack.yaml +++ b/drupal-stack.yaml @@ -37,8 +37,12 @@ stack-db: description: Sensitive PostgreSQL password shared with Drupal. Production deployments should set secret("drupal-db-password"). containers: postgres: - paths: - - <- `${volume-path}/drupal-stack-postgres:/var/lib/postgresql/data` + mounted-volumes: + data: + path: /var/lib/postgresql/data + volumes: + data: + kind: local files: drupal-postgres-init: container: postgres @@ -123,17 +127,17 @@ stack-app: type: string value: <- $stack-public-url description: Public URL expected for Drupal when routed through Monk ingress. - files-volume-name: - type: string - value: drupal-stack-files - description: Monk volume subdirectory used for production Drupal files. containers: drupal: image: drupal image-tag: <- $drupal-image-tag restart: unless-stopped - paths: - - <- `${volume-path}/${files-volume-name}:/opt/drupal/web/sites/default/files` + mounted-volumes: + files: + path: /opt/drupal/web/sites/default/files + volumes: + files: + kind: local services: http: container: drupal @@ -240,8 +244,12 @@ stack-local-db: description: Sensitive generated PostgreSQL password for local verification. containers: postgres: - paths: - - <- `${volume-path}/drupal-stack-local-postgres:/var/lib/postgresql/data` + mounted-volumes: + data: + path: /var/lib/postgresql/data + volumes: + data: + kind: local checks: readiness: code: tcp-check-service("drupal/stack-local-db", "postgres") @@ -304,10 +312,6 @@ stack-local-app: type: string value: http://localhost:18081 description: Local URL used for external HTTP verification. - files-volume-name: - type: string - value: drupal-stack-local-files - description: Monk volume subdirectory used for local Drupal files. drupal-image-tag: type: string value: 11-apache @@ -325,8 +329,12 @@ stack-local-app: image: drupal image-tag: <- $drupal-image-tag restart: unless-stopped - paths: - - <- `${volume-path}/${files-volume-name}:/opt/drupal/web/sites/default/files` + mounted-volumes: + files: + path: /opt/drupal/web/sites/default/files + volumes: + files: + kind: local services: http: container: drupal diff --git a/drupal.yaml b/drupal.yaml index aef566ccad39..7df8b3ef745b 100644 --- a/drupal.yaml +++ b/drupal.yaml @@ -70,17 +70,17 @@ base: type: string value: https://drupal.example.com description: Public base URL expected for the Drupal site when exposed through ingress. - files-volume-name: - type: string - value: drupal-files - description: Monk volume subdirectory used for Drupal uploaded files and generated assets. containers: drupal: image: drupal image-tag: <- $drupal-image-tag restart: unless-stopped - paths: - - <- `${volume-path}/${files-volume-name}:/opt/drupal/web/sites/default/files` + mounted-volumes: + files: + path: /opt/drupal/web/sites/default/files + volumes: + files: + kind: local files: settings-php: container: drupal From c25301b4b45f711d8a80a3f75cf6b02ac0adea51 Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 1 Jul 2026 12:01:41 +0300 Subject: [PATCH 2/4] Fix: postgres runnables inherit db-v17 to avoid double-mount Co-Authored-By: Claude Opus 4.8 --- drupal-stack.yaml | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/drupal-stack.yaml b/drupal-stack.yaml index 45bed23ff785..e7c51adde912 100644 --- a/drupal-stack.yaml +++ b/drupal-stack.yaml @@ -2,7 +2,7 @@ namespace: drupal stack-db: defines: runnable - inherits: postgresql/db + inherits: postgresql/db-v17 metadata: name: Drupal Stack PostgreSQL description: | @@ -35,14 +35,6 @@ stack-db: env: POSTGRES_PASSWORD value: <- $stack-db-password description: Sensitive PostgreSQL password shared with Drupal. Production deployments should set secret("drupal-db-password"). - containers: - postgres: - mounted-volumes: - data: - path: /var/lib/postgresql/data - volumes: - data: - kind: local files: drupal-postgres-init: container: postgres @@ -242,14 +234,6 @@ stack-local-db: env: POSTGRES_PASSWORD value: <- $stack-local-db-password description: Sensitive generated PostgreSQL password for local verification. - containers: - postgres: - mounted-volumes: - data: - path: /var/lib/postgresql/data - volumes: - data: - kind: local checks: readiness: code: tcp-check-service("drupal/stack-local-db", "postgres") From 87a7bfac73e58494db6d7206a1ced453614a1751 Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 1 Jul 2026 12:39:19 +0300 Subject: [PATCH 3/4] Remove publish: true (keep host-port); services internal by default --- drupal-stack.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/drupal-stack.yaml b/drupal-stack.yaml index e7c51adde912..5da263cf329c 100644 --- a/drupal-stack.yaml +++ b/drupal-stack.yaml @@ -324,7 +324,6 @@ stack-local-app: container: drupal port: <- $app-port protocol: tcp - publish: true host-port: <- $host-port description: Published local Drupal HTTP endpoint for external verification. connections: From 97d5b41a3c8bf860607e946e672ec159b401445d Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 3 Jul 2026 13:10:38 +0300 Subject: [PATCH 4/4] Keep publish: true on user-facing web endpoints Co-Authored-By: Claude Opus 4.8 --- drupal-stack.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/drupal-stack.yaml b/drupal-stack.yaml index 5da263cf329c..e7c51adde912 100644 --- a/drupal-stack.yaml +++ b/drupal-stack.yaml @@ -324,6 +324,7 @@ stack-local-app: container: drupal port: <- $app-port protocol: tcp + publish: true host-port: <- $host-port description: Published local Drupal HTTP endpoint for external verification. connections: