Skip to content

Commit 96ec965

Browse files
authored
Merge branch 'main' into chart-bump
2 parents 3164ac3 + 60594dd commit 96ec965

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

.beads/interactions.jsonl

Whitespace-only changes.

.beads/issues.jsonl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{"id":"skyhook-gld","title":"Deployment Policy Batch State Reset","description":"Implement auto-reset and manual reset of deployment policy batch state to ensure rollouts start fresh instead of continuing with scaled-up batch sizes. Includes CLI command, auto-reset on completion, auto-reset on version change, and configurable behavior.","design":"Three-pronged approach:\n1. Manual CLI reset command (deployment-policy reset)\n2. Auto-reset on completion (when Status→Complete) \n3. Auto-reset on version change (HandleVersionChange)\n\nConfiguration via spec fields with precedence:\n- Skyhook.spec.deploymentPolicyOptions.resetBatchStateOnCompletion\n- DeploymentPolicy.spec.resetBatchStateOnCompletion\n- Default: true (safe by default)\n\nSee /Users/blockwood/.claude/plans/eager-forging-sedgewick.md for full plan","status":"open","priority":1,"issue_type":"epic","owner":"lockwobr@gmail.com","created_at":"2026-02-04T16:37:39.524657-08:00","created_by":"Brian Lockwood","updated_at":"2026-02-04T16:37:39.524657-08:00"}
2+
{"id":"skyhook-gld.1","title":"Add API fields for resetBatchStateOnCompletion configuration","description":"Add spec fields to DeploymentPolicy and Skyhook types for configurable batch state reset behavior.\n\nChanges:\n- Add resetBatchStateOnCompletion field to DeploymentPolicySpec (*bool, optional)\n- Add DeploymentPolicyOptions struct with resetBatchStateOnCompletion field \n- Add deploymentPolicyOptions field to SkyhookSpec\n- Add ShouldResetBatchStateOnCompletion() helper function\n- Update CRD generation\n\nFiles:\n- operator/api/v1alpha1/deployment_policy_types.go\n- operator/api/v1alpha1/skyhook_types.go","acceptance_criteria":"- DeploymentPolicy has resetBatchStateOnCompletion field\n- Skyhook has deploymentPolicyOptions.resetBatchStateOnCompletion override\n- ShouldResetBatchStateOnCompletion() helper works with precedence\n- CRDs updated with new fields","status":"closed","priority":0,"issue_type":"task","owner":"lockwobr@gmail.com","estimated_minutes":480,"created_at":"2026-02-04T16:38:05.103037-08:00","created_by":"Brian Lockwood","updated_at":"2026-02-04T17:22:17.42454-08:00","closed_at":"2026-02-04T17:22:17.42454-08:00","close_reason":"Closed","dependencies":[{"issue_id":"skyhook-gld.1","depends_on_id":"skyhook-gld","type":"parent-child","created_at":"2026-02-04T16:38:05.105686-08:00","created_by":"Brian Lockwood"}]}
3+
{"id":"skyhook-gld.2","title":"Implement core batch state reset utility functions","description":"Add utility functions for patching Skyhook status and resetting batch state.\n\nChanges:\n- Add PatchSkyhookStatus() utility (utils.go)\n- Add ResetBatchState() utility (utils.go)\n- Unit tests for both utilities\n\nFiles:\n- operator/internal/cli/utils/utils.go\n- operator/internal/cli/utils/utils_test.go","acceptance_criteria":"- PatchSkyhookStatus() patches status subresource correctly\n- ResetBatchState() resets all compartments to fresh state\n- Unit tests pass with \u003e80% coverage\n- Handles nil/empty CompartmentStatuses gracefully","status":"closed","priority":0,"issue_type":"task","owner":"lockwobr@gmail.com","estimated_minutes":480,"created_at":"2026-02-04T16:38:15.828808-08:00","created_by":"Brian Lockwood","updated_at":"2026-02-04T17:29:15.601244-08:00","closed_at":"2026-02-04T17:29:15.601244-08:00","close_reason":"Closed","dependencies":[{"issue_id":"skyhook-gld.2","depends_on_id":"skyhook-gld","type":"parent-child","created_at":"2026-02-04T16:38:15.829849-08:00","created_by":"Brian Lockwood"},{"issue_id":"skyhook-gld.2","depends_on_id":"skyhook-gld.1","type":"blocks","created_at":"2026-02-04T16:38:15.83077-08:00","created_by":"Brian Lockwood"}]}
4+
{"id":"skyhook-gld.3","title":"Implement 'deployment-policy reset' CLI command","description":"Create standalone CLI command for manually resetting deployment policy batch state.\n\nChanges:\n- Create deploymentpolicy/deploymentpolicy_reset.go (new subcommand)\n- Register deployment-policy subcommand in root.go\n- Integrate with main 'skyhook reset' command (add --skip-batch-reset flag)\n- Unit tests for CLI command\n\nFiles:\n- operator/cmd/cli/app/deploymentpolicy/deploymentpolicy_reset.go (new)\n- operator/cmd/cli/app/deploymentpolicy/deploymentpolicy_reset_test.go (new)\n- operator/cmd/cli/app/root.go\n- operator/cmd/cli/app/reset.go","acceptance_criteria":"- kubectl skyhook deployment-policy reset works\n- kubectl skyhook reset calls batch reset by default\n- --skip-batch-reset flag preserves old behavior\n- Dry-run mode works\n- Unit tests pass","status":"closed","priority":1,"issue_type":"task","owner":"lockwobr@gmail.com","estimated_minutes":480,"created_at":"2026-02-04T16:39:14.05268-08:00","created_by":"Brian Lockwood","updated_at":"2026-02-05T09:16:51.327735-08:00","closed_at":"2026-02-05T09:16:51.327735-08:00","close_reason":"Closed","dependencies":[{"issue_id":"skyhook-gld.3","depends_on_id":"skyhook-gld","type":"parent-child","created_at":"2026-02-04T16:39:14.054253-08:00","created_by":"Brian Lockwood"},{"issue_id":"skyhook-gld.3","depends_on_id":"skyhook-gld.2","type":"blocks","created_at":"2026-02-04T16:39:14.055497-08:00","created_by":"Brian Lockwood"}]}
5+
{"id":"skyhook-gld.4","title":"Implement auto-reset on rollout completion","description":"Add automatic batch state reset when Skyhook rollout completes (Status→Complete).\n\nChanges:\n- Modify SetStatus() in skyhook wrapper to check config and reset batch state\n- Add shouldResetBatchState() helper method\n- Add resetAllCompartmentBatchStates() helper method\n- Unit tests for auto-reset logic\n\nFiles:\n- operator/internal/wrapper/skyhook.go\n- operator/internal/wrapper/skyhook_test.go","acceptance_criteria":"- Batch state resets when Status→Complete (if config enabled)\n- Configuration precedence works (Skyhook \u003e Policy \u003e Default)\n- resetBatchStateOnCompletion=false preserves batch state\n- Unit tests pass with config variations","status":"closed","priority":1,"issue_type":"task","owner":"lockwobr@gmail.com","estimated_minutes":480,"created_at":"2026-02-04T16:39:24.358105-08:00","created_by":"Brian Lockwood","updated_at":"2026-02-05T10:18:36.023147-08:00","closed_at":"2026-02-05T10:18:36.023147-08:00","close_reason":"Closed","dependencies":[{"issue_id":"skyhook-gld.4","depends_on_id":"skyhook-gld","type":"parent-child","created_at":"2026-02-04T16:39:24.35943-08:00","created_by":"Brian Lockwood"},{"issue_id":"skyhook-gld.4","depends_on_id":"skyhook-gld.1","type":"blocks","created_at":"2026-02-04T16:39:24.360914-08:00","created_by":"Brian Lockwood"},{"issue_id":"skyhook-gld.4","depends_on_id":"skyhook-gld.2","type":"blocks","created_at":"2026-02-04T16:39:24.361665-08:00","created_by":"Brian Lockwood"}],"comments":[{"id":1,"issue_id":"skyhook-gld.4","author":"Brian Lockwood","text":"Note: ResetBatchState() logic is currently in operator/internal/cli/utils/utils.go. When implementing resetAllCompartmentBatchStates(), consider refactoring this into a shared location (e.g., api/v1alpha1 as a method on Skyhook or SkyhookStatus) so both CLI and operator code can reuse the same logic.","created_at":"2026-02-05T01:32:02Z"}]}
6+
{"id":"skyhook-gld.5","title":"Implement auto-reset on spec version change","description":"Add automatic batch state reset when HandleVersionChange detects package version changes.\n\nChanges:\n- Modify HandleVersionChange() to check config and reset batch state after detecting version changes\n- Uses shouldResetBatchState() and resetAllCompartmentBatchStates() helpers from Phase 4\n- Unit tests for version change auto-reset logic\n\nFiles:\n- operator/internal/controller/skyhook_controller.go\n- operator/internal/controller/skyhook_controller_test.go","acceptance_criteria":"- Batch state resets when version change detected (if config enabled)\n- Configuration respected (can be disabled)\n- Only resets when versions actually change\n- Unit tests pass with config variations","status":"closed","priority":1,"issue_type":"task","owner":"lockwobr@gmail.com","estimated_minutes":480,"created_at":"2026-02-04T16:39:41.892185-08:00","created_by":"Brian Lockwood","updated_at":"2026-02-05T10:27:53.133592-08:00","closed_at":"2026-02-05T10:27:53.133592-08:00","close_reason":"Closed","dependencies":[{"issue_id":"skyhook-gld.5","depends_on_id":"skyhook-gld","type":"parent-child","created_at":"2026-02-04T16:39:41.894028-08:00","created_by":"Brian Lockwood"},{"issue_id":"skyhook-gld.5","depends_on_id":"skyhook-gld.1","type":"blocks","created_at":"2026-02-04T16:39:41.895201-08:00","created_by":"Brian Lockwood"},{"issue_id":"skyhook-gld.5","depends_on_id":"skyhook-gld.2","type":"blocks","created_at":"2026-02-04T16:39:41.896097-08:00","created_by":"Brian Lockwood"}]}
7+
{"id":"skyhook-gld.6","title":"Add comprehensive E2E tests for batch state reset","description":"Create comprehensive end-to-end tests covering all batch state reset scenarios.\n\nTest Coverage:\n- Manual CLI reset (deployment-policy reset)\n- Auto-reset on completion (default and disabled)\n- Auto-reset on version change\n- Configuration precedence (Skyhook override, Policy default)\n- Multiple compartments\n- Legacy __default__ compartment\n- Mid-rollout reset\n- Edge cases (nil statuses, empty maps, etc.)\n\nFiles:\n- test/e2e/deployment_policy_reset_test.go (new)\n- Update existing test fixtures as needed\n\nTest matrix: 12+ scenarios covering all config combinations","acceptance_criteria":"- All E2E tests pass\n- Test coverage matrix complete (Manual/Auto-Completion/Auto-Version × Config variations)\n- Edge cases tested\n- Legacy and multi-compartment scenarios tested\n- Tests validate configuration precedence correctly","status":"closed","priority":2,"issue_type":"task","owner":"lockwobr@gmail.com","estimated_minutes":1440,"created_at":"2026-02-04T16:40:25.198161-08:00","created_by":"Brian Lockwood","updated_at":"2026-02-05T11:51:48.639987-08:00","closed_at":"2026-02-05T11:51:48.639987-08:00","close_reason":"Created foundational E2E tests (3 key scenarios): manual CLI reset, auto-reset on completion, and config precedence. Tests use declarative YAML assertions with minimal bash. Additional comprehensive scenarios can be added later.","dependencies":[{"issue_id":"skyhook-gld.6","depends_on_id":"skyhook-gld","type":"parent-child","created_at":"2026-02-04T16:40:25.199986-08:00","created_by":"Brian Lockwood"},{"issue_id":"skyhook-gld.6","depends_on_id":"skyhook-gld.1","type":"blocks","created_at":"2026-02-04T16:40:25.201456-08:00","created_by":"Brian Lockwood"},{"issue_id":"skyhook-gld.6","depends_on_id":"skyhook-gld.2","type":"blocks","created_at":"2026-02-04T16:40:25.202265-08:00","created_by":"Brian Lockwood"},{"issue_id":"skyhook-gld.6","depends_on_id":"skyhook-gld.3","type":"blocks","created_at":"2026-02-04T16:40:25.203337-08:00","created_by":"Brian Lockwood"},{"issue_id":"skyhook-gld.6","depends_on_id":"skyhook-gld.4","type":"blocks","created_at":"2026-02-04T16:40:25.204222-08:00","created_by":"Brian Lockwood"},{"issue_id":"skyhook-gld.6","depends_on_id":"skyhook-gld.5","type":"blocks","created_at":"2026-02-04T16:40:25.204992-08:00","created_by":"Brian Lockwood"}]}

0 commit comments

Comments
 (0)