villebro opened a new pull request, #24:
URL: https://github.com/apache/superset-kubernetes-operator/pull/24

   ## Summary
   
   Replaces the single `SupersetInit` CRD and `spec.init` field with a 
general-purpose `SupersetTask` CRD and `spec.lifecycle` field that splits 
database migration and application initialization into two sequential, 
independently-configurable tasks.
   
   This is the foundation for intelligent upgrade lifecycle management — a 
significant differentiator over the Helm chart, which has no concept of 
database-migration-aware deployment orchestration.
   
   ## Key changes
   
   - Two-task split: `superset db upgrade` (migrate) and `superset init` (init) 
run as separate `SupersetTask` CRs (`{parent}-migrate`, `{parent}-init`), each 
with independent retry/timeout
   - Image-change detection: tasks only run when the image actually changes 
(`VersionChange` strategy). Config-only changes trigger rolling restart via pod 
annotations — no task pods needed
   - Downgrade blocking: semver comparison detects downgrades and blocks with a 
clear error (Alembic migrations are forward-only)
   - Supervised mode: `upgradeMode: Supervised` pauses the lifecycle until the 
user approves via annotation
   - Task strategies: `VersionChange` (default), `Always`, `Never` — per-task 
control over when each runs
   - Extensible design: `SupersetTask` CRD is generic enough for future task 
types (probes, hooks, staging) without breaking changes
   
   ### Breaking changes
   
   - `spec.init` → `spec.lifecycle` (field rename + restructure)
   - `SupersetInit` CRD → SupersetTask CRD (kind rename)
   - Config-only changes no longer trigger task pods
   - `status.init` → `status.lifecycle`
   
   ### Test plan
   
   - `go test ./...` passes (unit + integration)
   - make lint — 0 issues
   - make codegen — all generated artifacts up to date
   - Version comparison: upgrade, downgrade, rebuild, unknown, v-prefix, 
pre-release, SHA tags
   - Lifecycle gating: components don't deploy until tasks complete
   - Strategy=Never: task CR not created
   - Supervised mode: blocks until approval annotation
   - Downgrade: blocks with condition + event
   - E2E with Kind cluster (manual)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to