feat: support Spock 6 on systemd orchestrator - #466
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (12)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughChangesSpock 6 preview support
Merge Risk: ⚪ Minimal · up to The change enables Spock 6 preview deployments on systemd while preserving Swarm behavior, with package parsing, fixture provisioning, documentation, and end-to-end coverage supplied. No merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 4 files. (8 skipped: 8 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
A rabbit hops where Spock packages grow Comment |
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Duplication | 0 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
Summary
This PR extends Spock 6 preview support, previously available only for Docker Swarm, to the systemd orchestrator by fixing package discovery and validating the changes end-to-end using a systemd fixture.
Changes
server/internal/orchestrator/systemd/packages.go: add"60"tosupportedSpockVersions. Package name construction inapt.go/dnf.gowas already parametric, so this is the only functional fix — confirmed against the real pgEdge apt/dnf repos, where the beta packages (pgedge-postgresql-<major>-spock60,pgedge-spock60_<major>, version6.0.0~beta1) already follow the existing naming convention.e2e/spock6_add_node_test.go: made orchestrator-aware. Under systemd there's no manifest or per-node image to pin, so the test letspostgres_versiondefault and relies onspock_version: "6"alone. Now passes under both Swarm and systemd fixtures.lima/dev fixture (systemd VMs used for local dev/testing): added aDEV_LIMA_SPOCK_MAJORtoggle (Makefile,lima/Makefile,lima/roles/{deb,rhel}_prerequisites/{tasks,vars}/main.yaml), since Spock 5 and Spock 6 packages conflict with each other at the package-manager level and can't be installed side by side for the same Postgres major.docs/using/image-management.md: no longer scopes the Spock 6 preview to Docker Swarm; documents the systemd package names and a caveat that, unlike Swarm's manifest, systemd has no automatic exclusion of preview versions from a database that omitsspock_version.changes/unreleased/Added-20260827-140429.yaml: updated to state the Spock 6 preview covers both Docker Swarm and systemd.Testing
go test ./server/internal/orchestrator/systemd/...— new unit test coverage for spock50+spock60 discovery (mixed and spock60-only cases).go build ./...andgo vet -tags e2e_test ./e2e/...make dev-lima-deploy DEV_LIMA_SPOCK_MAJOR=60):make test-e2e E2E_FIXTURE=dev-lima E2E_RUN='^TestSpock6AddNode$'— passmake test-e2e E2E_FIXTURE=dev-lima E2E_RUN='^(TestFailoverScenarios|TestSwitchoverScenarios)$'— all 12 subtests pass, confirming native failover slots/switchover/failover work under Spock 6 on systemdspock_version: "6", and one with no version specified (confirms Spock 6 resolves as the fixture's default) — all reportedspock.version: "6.0.0"andstate: availableVerification:
Checklist
PLAT-737