feat(pipelines): add IstioUpgrade step schema definition#265
feat(pipelines): add IstioUpgrade step schema definition#265trevorwilliams2025 wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
Pull request overview
Adds JSON Schema support for validating pipeline steps with action: IstioUpgrade by introducing a dedicated step definition and wiring it into the existing if/then action-dispatch logic. This extends the pipeline framework’s schema so future pipeline YAML updates can be validated without relying on legacy scripting.
Changes:
- Introduces a new
istioUpgradeStepdefinition (withaksClusterrequired and optionaldryRun). - Adds
if/thenrouting so steps withaction: IstioUpgradeare validated against the new definition.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "aksCluster": { | ||
| "type": "string" | ||
| }, |
There was a problem hiding this comment.
make this of type definition/Value so we can use `configRef``
i know that a lot of step allow for string params and then use gotmpl like
aksCluster: "{{ .mgmt.aks.name }}"
but instead we are heading towards
aksCluster:
configRef: mgmt.aks.name
translates way better to EV2 and is a good preparation for future work that will adapt pipeline work.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (1)
pipelines/types/istio.go:32
- IstioUpgradeStep.AKSCluster is now a Value that can reference an input from another step, but RequiredInputs() always returns an empty list. This prevents the pipeline dependency graph from capturing input-chaining dependencies when aksCluster is populated via "input".
func (s *IstioUpgradeStep) RequiredInputs() []StepDependency {
return []StepDependency{}
}
| }, | ||
| "aksCluster": { | ||
| "$ref": "#/definitions/Value" | ||
| } |
f188e8a to
8dab237
Compare
8dab237 to
8cf8b42
Compare
What
istioUpgradeStepschema definition and if/then routing topipeline.schema.v1.jsonso the pipeline framework can validateaction: IstioUpgradestepsaksClusterfromtype: stringto$ref: "#/definitions/Value"to supportconfigRefstyleIstioUpgradeStepGo type to match:AKSCluster Valueinstead ofAKSCluster stringdryRunfield from both schema and Go type (no use case in pipeline context)Why
Prerequisite for wiring the
IstioUpgradeaction intosvc-pipeline.yaml, which will replace the legacyistio.shshell script. The Go implementation is already merged inARO-HCP#5661.