Skip to content

add kind: stateful workload support - #70

Merged
atkrad merged 2 commits into
mainfrom
add-stateful-workloads
Aug 7, 2026
Merged

add kind: stateful workload support#70
atkrad merged 2 commits into
mainfrom
add-stateful-workloads

Conversation

@atkrad

@atkrad atkrad commented Aug 7, 2026

Copy link
Copy Markdown
Member

Summary

  • Render StatefulSet with volumeClaimTemplates and dual services (ClusterIP + headless) for kind: stateful components.
  • Add persistence support for stateless components (shared PVC, Recreate strategy, single replica only).
  • Add deploy guards (kind changes, persistence add/remove, size decreases), --resize-volumes flag for in-place PVC expansion, and pvcRetentionPolicy in platform profiles.

Related

Fixes #16

Test plan

  • Unit tests added/updated
  • Scenario under scenarios/ (if behavior changes)
  • nix run .#lint / pre-commit clean
  • Manual smoke (command + expected result), if user-facing

Scenarios: stateful-basic, stateful-hpa, stateful-identity, stateful-profile-retention, stateless-persistence, error-replicas-autoscaling, error-stateless-persistence-replicas.

E2E: TestStatefulBasic, TestStatefulScale on kind cluster.

Checklist

  • Title is short and imperative (matches commit style)
  • Docs / CLI help updated when user-facing (README.md, docs/cli/)
  • No secrets or local-only paths in the diff

- render StatefulSet with volumeClaimTemplates and dual services
- add persistence for stateless components (shared PVC, Recreate)
- add deploy guards for kind changes, persistence, and size decreases
- add --resize-volumes for in-place PVC expansion (stateful and stateless)
- add pvcRetentionPolicy to platform profiles
- add validation for replica, autoscaling, and persistence constraints
- add scenarios, unit tests, and e2e coverage
@github-actions github-actions Bot added kind/docs Documentation only area/cli Commands, flags, UX copy area/spec deployah.yaml schema or loading area/helm Chart render, release, post-render area/deploy Deploy and plan session flow area/extras Custom manifests and CRDs under .deployah/ area/testing Scenarios, harness, goldens area/ci GitHub Actions and release packaging labels Aug 7, 2026
@atkrad atkrad added kind/feature New capability and removed kind/docs Documentation only labels Aug 7, 2026
@atkrad atkrad self-assigned this Aug 7, 2026
@codecov

codecov Bot commented Aug 7, 2026

Copy link
Copy Markdown

- guards: emitWorkloadWarnings (HPA, expose, mountPath), componentActiveInEnv, non-map component, inactive env, size parse error
- resize: nil client, empty resizes, parse size, no PVCs, no storage class, patchPVCSize nil requests and skip, detect no-change/decrease/no-persistence, orphan-delete multiple/empty
- version: empty part, non-numeric, minor parse error
@github-actions github-actions Bot added the kind/docs Documentation only label Aug 7, 2026
@atkrad atkrad removed the kind/docs Documentation only label Aug 7, 2026
@atkrad
atkrad merged commit 308fd7f into main Aug 7, 2026
17 checks passed
@atkrad
atkrad deleted the add-stateful-workloads branch August 7, 2026 21:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ci GitHub Actions and release packaging area/cli Commands, flags, UX copy area/deploy Deploy and plan session flow area/extras Custom manifests and CRDs under .deployah/ area/helm Chart render, release, post-render area/spec deployah.yaml schema or loading area/testing Scenarios, harness, goldens kind/feature New capability

Projects

None yet

Development

Successfully merging this pull request may close these issues.

proposal: support kind: stateful workloads

1 participant