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
14 changes: 7 additions & 7 deletions k8s/helm/durable-workflow/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ type: application
# The chart's own semver version. Bumped on every chart release; treated as
# independent of the server image version (appVersion). Breaking-change rules
# for this version live in docs/UPGRADING.md alongside the chart.
version: 1.5.0
version: 1.6.0
# The immutable native Durable Workflow Server this chart release packages.
# The onboarding default in values.yaml and appVersion are generated from the
# checked-in source release record (helm_chart.app_version).
appVersion: "3.7.0"
appVersion: "3.8.0"
kubeVersion: ">=1.27.0-0"
home: https://durable-workflow.github.io/docs/2.0/deployment
sources:
Expand All @@ -30,14 +30,14 @@ annotations:
# exact commit that most recently changed the packaged chart.
org.opencontainers.image.source: https://github.com/durable-workflow/server
dev.durable-workflow.source-revision: "unreleased"
dev.durable-workflow.image-reference: "docker.io/durableworkflow/server:3.7.0"
dev.durable-workflow.image-reference: "docker.io/durableworkflow/server:3.8.0"
artifacthub.io/license: MIT
artifacthub.io/category: integration-delivery
# Free-form changelog for the current chart release shown by Artifact Hub.
artifacthub.io/changes: |
- kind: changed
description: "Default image changes from native Server 3.6.0 to 3.7.0. MySQL only needs a schema upgrade, 12 to 13: its 75 json columns become exact-text LONGTEXT with json_valid checks, about 2 minutes of downtime per million history rows. Scale to zero, back up, run helm upgrade with native.schemaUpgrade.enabled=true, scale up; rolling back means restoring the backup. MariaDB, PostgreSQL and SQLite have no schema change, so helm upgrade only replaces the image (docs/UPGRADING.md)."
- kind: fixed
description: "Server 3.7.0: MySQL stores JSON documents exactly, so doubles in history, memos, search attributes and heartbeat details come back bit for bit (server#1016)."
description: "Default image changes from native Server 3.7.0 to 3.8.0. Every backend needs a schema upgrade (SQLite 11 to 12, PostgreSQL and MariaDB 12 to 13, MySQL 13 to 14) that only creates the empty dw_task_queue_pauses table and takes seconds. Scale to zero, back up, run helm upgrade with native.schemaUpgrade.enabled=true, scale up; rolling back means restoring the backup (docs/UPGRADING.md)."
- kind: added
description: "Server 3.7.0: redrive keeps start-time memos and search attributes, and describe reports can_redrive and redrive_blocked_reason (server#980). https://github.com/durable-workflow/server/releases/tag/3.7.0"
description: "Server 3.8.0: pause and resume activity dispatch on one task queue, advertised as capabilities.task_queue_activity_dispatch_pause (server#577); redrive reuses recorded side effects and version markers (server#980). https://github.com/durable-workflow/server/releases/tag/3.8.0"
- kind: changed
description: "Server 3.8.0: each MySQL, MariaDB and PostgreSQL pool connection caches up to 200 prepared statements. On MySQL check max_prepared_stmt_count (default 16382 fits about 20 nodes) or lower DW_NATIVE_DB_STATEMENT_CACHE_CAPACITY (server#1174)."
2 changes: 1 addition & 1 deletion k8s/helm/durable-workflow/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ helm install durable-workflow ./k8s/helm/durable-workflow \

```yaml
image:
tag: "3.7.0"
tag: "3.8.0"
# Pin a digest in production:
# digest: "sha256:abc123..."

Expand Down
31 changes: 31 additions & 0 deletions k8s/helm/durable-workflow/docs/UPGRADING.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,37 @@ chart MINOR bump and an entry below.

## Per-version migration notes

### Chart 1.6.0 / Server 3.8.0 (native)

**Every backend needs an explicit native schema upgrade.** Server 3.8.0 adds
one native-only table, `dw_task_queue_pauses`, created empty: SQLite 11 to
12, PostgreSQL 12 to 13, MariaDB 12 to 13 and MySQL 13 to 14. The step
rewrites no rows and takes seconds. Started on the earlier schema, 3.8.0
refuses with `native_schema_upgrade_required`.

1. Scale the Server to zero.
2. Back up the database.
3. Run `helm upgrade` with `native.schemaUpgrade.enabled=true` (or the manual
schema-upgrade Job in the chart README) so the 3.8.0 image runs
`schema-upgrade` once.
4. Scale the Server back up.

Rolling back to 3.7.x requires restoring the backup taken in step 2: 3.7.0
refuses the upgraded database with `native_schema_newer_than_binary`.

From an earlier release, the 3.8.0 image's `schema-upgrade` applies every
earlier step in the same run. On MySQL from Server 3.5.x or 3.6.x that
includes the Chart 1.5.0 JSON rebuild below, with its downtime of about 2
minutes per million history rows.

**MySQL prepared statements.** Each MySQL, MariaDB and PostgreSQL pool
connection now caches up to 200 prepared statements. A native node has 4 pool
connections, so on MySQL keep `replicas × 4 × 200` plus other clients'
statements within `max_prepared_stmt_count` (default 16382, about 20 nodes),
or lower the cache with `DW_NATIVE_DB_STATEMENT_CACHE_CAPACITY` (0 to 4095)
in `config.extraEnv`.
See the [3.8.0 release notes](https://github.com/durable-workflow/server/releases/tag/3.8.0).

### Chart 1.5.0 / Server 3.7.0 (native)

**MySQL only: this upgrade needs an explicit native schema upgrade, 12 to 13.**
Expand Down
2 changes: 1 addition & 1 deletion k8s/helm/durable-workflow/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ image:
# scripts/ci/sync-source-release.mjs. Do not edit this default.
# A tag must match the runtime: 3.x (or latest) for native, 2.x for php.
# The chart refuses a mismatch at render time.
tag: "3.7.0"
tag: "3.8.0"
# Optional digest pin. When set, takes precedence over tag for change control.
# Example: "sha256:abc123..."
# The chart cannot see which runtime a digest names. Pin a native digest
Expand Down
4 changes: 2 additions & 2 deletions resources/release/source-release.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"version": "2.11.8"
},
"helm_chart": {
"version": "1.5.0",
"app_version": "3.7.0"
"version": "1.6.0",
"app_version": "3.8.0"
}
}
Loading