Skip to content

feat(integration): T33 P1.2 — T32 진본 work squash integration - #105

Merged
eightynine01 merged 1 commit into
mainfrom
feat/t33-p1b-t32-integration-shardsplit-backup-e2e
May 21, 2026
Merged

feat(integration): T33 P1.2 — T32 진본 work squash integration#105
eightynine01 merged 1 commit into
mainfrom
feat/t33-p1b-t32-integration-shardsplit-backup-e2e

Conversation

@eightynine01

Copy link
Copy Markdown
Contributor

Summary

T32 turn 의 진본 사용자 작업 (worktree branch worktree-postgres-operator-gates, HEAD 1e604ac, 2026-05-19, 2일 전 active) 을 main 에 squash 통합. 22 commits + 후속 lint clean fix.

사용자 directive (2026-05-21 /goal supercycle): "로컬+원격 브랜치 모두 상세 분석 후 병합하고 제거 정리" 정합. 단순 stale branch 제거가 아닌 진본 work 통합.

진본 evidence (~/.claude/plans/postgres-operator-supercycle-T33.md P1.2)

  • merge-base = 462b6ce = stable (PR docs(tasks): T32 Phase A' 통합 row — 8 PR squash merge + cleanup + main FF #69 T32 Phase A')
  • 22 unique commits / 104 files / +8741 / -2778 LOC (squash 전)
  • 신규 features: WAL-G + Barman BackupPlugin / scatter-gather / 2PC coordinator / vindex policy / TLS auto-issuance / NetworkPolicy renderer / database-object privilege DSL / failover+PVC fence / ShardSplitJob CRD + 7-step state machine / SBOM+cosign
  • 신규 e2e tests 9건 (failover_chaos, ha_lease_election, hibernation, imagecatalog, pitr_restore, pooler, postgresdatabase, postgresuser, sync_repl_rpo)
  • conflict (main vs branch) = ROADMAP.md 1건만 (merge-tree dry-run PASS, 자동 머지 정합)

Test plan

  • git merge --squash worktree-postgres-operator-gates → ROADMAP.md 자동 머지
  • go build ./... exit 0
  • make manifests generate → ShardSplitJob CRD 자동 생성 + charts/ sync
  • ./bin/golangci-lint run --timeout=10m ./...0 issues
  • go test ./api/... ./internal/...모든 패키지 PASS (23 sub-test backup plugins)
  • lefthook pre-commit 8 hook PASS
  • lefthook commit-msg 2 hook (conventional / dco-signoff) PASS
  • lefthook pre-push 12 hook (full-lint / gitleaks / go-licenses / go-mod-tidy / govulncheck / helm-lint / helm-template / kube-linter / markdown-link-check / platforms-amd64-guard / unit-test 16.19s / version-sync) PASS
  • e2e tests live drill — P4 evaluate (kind 클러스터 + envtest, 별 phase)

후속 lint fix detail (0 issues 달성)

  • internal/router/metadata_store_test.go: defer db.Close()defer func() { _ = db.Close() }() (errcheck × 8)
  • internal/controller/shardsplit/step_impls.go: Sources emptysources empty (ST1005)
  • internal/controller/security_defaults_test.go + internal/tx/2pc_test.go: //nolint:gocyclo table-driven test
  • internal/controller/{security_defaults,builders}.go + internal/controller/postgresuser_controller_test.go: //nolint:modernize typed-value pointer helpers
  • api/v1alpha1/groupversion_info.go: //nolint:staticcheck SA1019 kubebuilder baseline

Refs

  • ADR-0023 (v3.x-stable baseline)
  • GOVERNANCE.md §8 (Goal-Driven Autonomous Execution)
  • RFC-0045 §2.5 Plan Adversarial Review — codex-review 019e4aa5-55a6-74c2-b003-d595e7232c55 Codex C3 (직렬 머지) 정합
  • 본 PR = T33 supercycle P1.2 (~/.claude/plans/postgres-operator-supercycle-T33.md)

Closes: worktree branch worktree-postgres-operator-gates

🤖 Generated with Claude Code

…ee-postgres-operator-gates)

T32 turn 의 진본 사용자 작업 (2026-05-19 마지막 commit, 2일 전 active) 을 main 에 squash 통합.
사용자 directive (2026-05-21 /goal supercycle): "로컬+원격 브랜치 모두 상세 분석 후 *병합* 하고 제거 정리" 정합.

22 source commits → 단일 squash + 후속 클린코드 fix:
- feat(failover): PVC fence runbook 결정 함수 + 사후 분석 SOP (D.1.1)
- feat(security): PSA restricted + default-deny NetworkPolicy renderer (D.6.4)
- feat(postgres): database-object privilege DSL GRANT/REVOKE/DEFAULT (D.5.8)
- feat(postgres): self-signed TLS bundle auto-issuance + 갱신 판정 (D.6.1)
- feat(router): vindex policy 평가 + overlap detection (D.8.2)
- feat(router): manual shard placement + GitOps drift guard (D.8.8)
- feat(router): ShardRange metadata store Postgres catalog 구현 (D.8.3)
- feat(router): scatter-gather fan-out + merge 정책 실 구현 (D.10.1)
- feat(tx): 2PC coordinator in-memory state machine 실 구현 (D.10.2)
- feat(backup): WAL-G + Barman BackupPlugin 구현 (D.3.1)
- feat(G4+G6): ShardSplitJob CRD + 7-step state machine + SBOM/cosign script
- feat(G4): 7-step impls + orchestrator + matrix marker 마감 (D.9.2-9 + D.11.4)
- test(e2e): D.3.2 + D.5.6 + D.5.7 + D.5.11 e2e test 신규 + L84 backup parent
- test(e2e): D.5.4 + D.5.5 + D.5.9 + D.5.10 e2e test 신규
- test(e2e): D.1.2 + D.1.3 + D.2.2 e2e test 신규 (chaos + sync RPO + HA lease)
- docs(roadmap): 5+ ROADMAP D.* marker 갱신 (PVC fencing/Backup controller/PITR/Plugin invocation)
- docs(runbook): upgrade runbook 36 → 206 lines (D.2.3)
- docs(handoff): T32 turn evidence + 차단점 codify (× 3 commits)

후속 클린코드 fix (lint 0 issues 달성):
- internal/router/metadata_store_test.go: defer db.Close() → defer func() { _ = db.Close() }() (errcheck × 8)
- internal/controller/shardsplit/step_impls.go: "Sources empty" → "sources empty" (ST1005)
- internal/controller/security_defaults_test.go + internal/tx/2pc_test.go: //nolint:gocyclo table-driven test
- internal/controller/security_defaults.go + builders.go + postgresuser_controller_test.go: //nolint:modernize typed-value pointer helpers
- api/v1alpha1/groupversion_info.go: //nolint:staticcheck SA1019 kubebuilder baseline

검증:
- merge: ROADMAP.md 자동 conflict 해결 (PR #97 v3.x-stable baseline + worktree D.* marker)
- go build ./...: exit 0
- make manifests generate: ShardSplitJob CRD 자동 생성 + charts/ sync
- ./bin/golangci-lint run --timeout=10m ./...: 0 issues PASS
- go test ./api/... ./internal/...: 모든 패키지 PASS
  - internal/plugin/backup/{walg,barman,pgbackrest}: 23 sub-test PASS
  - internal/controller/{failover,shardsplit,security_defaults}: PASS
  - internal/router (placement, metadata_store, scatter, vindex): PASS
  - internal/tx (2PC): PASS
  - api/v1alpha1/shardsplitjob_types: PASS

Closes: worktree-postgres-operator-gates (HEAD 1e604ac, 22 commits)
Refs: ADR-0023 (v3.x-stable baseline), GOVERNANCE.md §8 (Goal-Driven Autonomous Execution)
Refs: codex-review 019e4aa5-55a6-74c2-b003-d595e7232c55 (Codex C3 직렬 머지 정합)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: phil <phil@keiailab.com>
@eightynine01
eightynine01 force-pushed the feat/t33-p1b-t32-integration-shardsplit-backup-e2e branch from 6f2e783 to e359e1c Compare May 21, 2026 13:46
@eightynine01
eightynine01 merged commit 81aa9a9 into main May 21, 2026
@eightynine01
eightynine01 deleted the feat/t33-p1b-t32-integration-shardsplit-backup-e2e branch May 21, 2026 13:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants