istio: map Phase field to StopAfter checkpoints in pipeline runner#5943
istio: map Phase field to StopAfter checkpoints in pipeline runner#5943trevorwilliams2025 wants to merge 3 commits into
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: trevorwilliams2025 The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Pull request overview
This PR updates the templatize pipeline runner’s Istio upgrade step handling to interpret the upstream types.IstioUpgradeStep.Phase field and translate it into internal Istio upgrade “stop-after” checkpoints, enabling split-phase upgrades (e.g., install control plane only vs full upgrade).
Changes:
- Map
Phase=="install"toopts.StopAfter = istio.StopAfterCanaryStart. - Treat
Phase=="upgrade"or empty as “run full lifecycle” (no stop-after checkpoint). - Reject unknown phase values with an explicit error.
|
/test images |
|
@trevorwilliams2025: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
When ActionResume fires with StopAfter=canary-start, the install phase work is already done (both control planes running). Return early instead of running the full post-install lifecycle, which belongs to the upgrade phase step.
What
Map the
IstioUpgradeStep.Phasefield to internalStopAftercheckpoints in the pipeline runner.Why
The
Phasefield (added in Azure/ARO-Tools#264) enables splitting Istio upgrades into discrete pipeline steps. This PR adds the consuming code that maps"install"toStopAfterCanaryStart(installs new control plane, stops before workload migration) and lets"upgrade"or empty run the full lifecycle. Splitting gives each phase its own EV2 timeout budget and allows a Helm config step to run between control plane installation and workload migration. The pipeline wiring (svc-pipeline.yaml) will follow in a subsequent PR.Testing
The switch statement is a straightforward mapping with an error default. The
StopAftercheckpoint logic is already covered by existing tests intooling/templatize/pkg/istio/upgrade_test.go. Integration validation was performed manually against pers-dev.Special notes for your reviewer
Depends on Azure/ARO-Tools#264 (Phase field).
PR Checklist
If E2E tests are included:
demonstrate that the test is able to detect a defect/error and fail with
proper error message and logs which communicates nature of the problem.