Skip to content

Istio phase support#264

Closed
trevorwilliams2025 wants to merge 2 commits into
Azure:mainfrom
trevorwilliams2025:istio-phase-support
Closed

Istio phase support#264
trevorwilliams2025 wants to merge 2 commits into
Azure:mainfrom
trevorwilliams2025:istio-phase-support

Conversation

@trevorwilliams2025

@trevorwilliams2025 trevorwilliams2025 commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add Phase field to IstioUpgradeStep enabling the ability to split Istio upgrades into discrete steps with dependsOn chaining
  • install installs the new control plane alongside the existing one and stops before workload migration
  • upgrade migrates workloads and completes the canary
  • Omitting phase, runs the full lifecycle in one step
  • The upgrade can run as a single step, but the Phase field allows splitting it into separate pipeline steps with other actions (e.g. Helm config) in between
  • Splitting also gives each phase its own EV2 timeout budget — a single step must fit ARM operations, workload migration, and rollout convergence into one timeout window
  • Include Phase in Description() output for pipeline log visibility

Context

Without the phase field change, the IstioUpgradeStep would run the entire upgrade lifecycle in a single step. With Phase,
we can insert a Helm config step between control plane installation and workload migration —
matching the istio-canary → istio-config → istio-rollout pattern in svc-pipeline.yaml in a
future release.

Copilot AI review requested due to automatic review settings July 7, 2026 03:25

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a Phase selector to the IstioUpgradeStep type so pipelines can optionally split an Istio canary upgrade into discrete “install” vs “upgrade” steps, and surfaces that phase in the step’s Description() output for pipeline log visibility.

Changes:

  • Added Phase field to IstioUpgradeStep (omitempty) with inline documentation describing expected values.
  • Updated IstioUpgradeStep.Description() to print the selected phase.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread pipelines/types/istio.go Outdated
Copilot AI review requested due to automatic review settings July 8, 2026 07:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

Comment on lines +840 to +846
"phase": {
"type": "string",
"enum": [
"install",
"upgrade"
]
}
Comment thread pipelines/types/istio.go
Comment on lines +25 to +28
// "install" installs the new control plane alongside the existing one
// and stops before workload migration. "upgrade" migrates workloads and
// completes the canary. Empty runs the full lifecycle in one step.
Phase string `json:"phase,omitempty"`
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