Conversation
There was a problem hiding this comment.
Pull request overview
Adds support for defining batch rollout strategy inline in Rollout (in addition to existing StrategyRef), and wires it through RolloutRun construction + one-time strategy handling, with accompanying unit/integration tests and CRD schema updates.
Changes:
- Add inline batch strategy (
spec.batchStrategy) support and prefer inline configuration when present. - Extend one-time strategy representation to carry inline batch strategy and apply it to in-flight RolloutRuns.
- Add validation + new tests (unit and envtest/Ginkgo) and regenerate Rollout CRD schema.
Reviewed changes
Copilot reviewed 19 out of 21 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| pkg/workload/info.go | Tighten strict readiness check to also fail when terminating replicas exist. |
| pkg/features/ontimestrategy/ontimestrategy.go | Extend one-time strategy struct to support inline batch strategy. |
| pkg/controllers/rollout/utils.go | Prefer constructing RolloutRun from inline strategy before StrategyRef. |
| pkg/controllers/rollout/inline_strategy.go | New helper to build RolloutRun spec from inline canary/batch strategy. |
| pkg/controllers/rollout/rollout_controller.go | Skip fetching RolloutStrategy for inline batch; apply one-time strategy from either StrategyRef or inline batch. |
| apis/rollout/v1alpha1/validation/rollout.go | Add RolloutSpec validation for strategy selection/mutual exclusion and validate inline strategies. |
| apis/rollout/v1alpha1/validation/rollout_test.go | Add validation tests for inline batch and mutual exclusion. |
| pkg/controllers/rollout/utils_test.go | Add unit tests for RolloutRun construction precedence. |
| pkg/controllers/rollout/suite_test.go | New envtest/Ginkgo suite bootstrap for rollout controller integration tests. |
| pkg/controllers/rollout/rollout_controller_test.go | New integration tests around StrategyRef, inline strategy, triggers, and status behavior. |
| config/crd/bases/rollout.kusionstack.io_rollouts.yaml | Regenerated CRD OpenAPI schema including inline canary/batch strategy fields. |
| go.mod / go.sum | Bump kube-api dependency to a newer pseudo-version. |
| CLAUDE.md + pkg/controllers/**/CLAUDE.md + .claude/rules/* | Add developer workflow/docs (non-runtime). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Review findings:
|
Code Review:
|
1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):
2. What is the scope of this PR (e.g. component or file name):
3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):
4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):
5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:
6. Release note
Please refer to Release Notes Language Style Guide to write a quality release note.