From 93def4c5d1f4624f3f21a0206243d879a4e76f71 Mon Sep 17 00:00:00 2001 From: trevorwilliams2025 Date: Wed, 8 Jul 2026 18:15:30 +1000 Subject: [PATCH 1/2] feat(pipelines): add IstioUpgrade step schema definition --- pipelines/types/pipeline.schema.v1.json | 40 +++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/pipelines/types/pipeline.schema.v1.json b/pipelines/types/pipeline.schema.v1.json index 9ba2ae0..be90f0d 100644 --- a/pipelines/types/pipeline.schema.v1.json +++ b/pipelines/types/pipeline.schema.v1.json @@ -820,6 +820,30 @@ } ] }, + "istioUpgradeStep": { + "unevaluatedProperties": false, + "allOf": [ + { + "$ref": "#/definitions/stepMeta" + }, + { + "properties": { + "action": { + "const": "IstioUpgrade" + }, + "aksCluster": { + "type": "string" + }, + "dryRun": { + "type": "boolean" + } + }, + "required": [ + "aksCluster" + ] + } + ] + }, "helmStep": { "unevaluatedProperties": false, "allOf": [ @@ -2073,6 +2097,22 @@ "then": { "$ref": "#/definitions/grafanaDatasourcesStep" } + }, + { + "if": { + "type": "object", + "properties": { + "action": { + "const": "IstioUpgrade" + } + }, + "required": [ + "action" + ] + }, + "then": { + "$ref": "#/definitions/istioUpgradeStep" + } } ], "required": [ From 8cf8b425a44061da7e89496df3332828d6455d90 Mon Sep 17 00:00:00 2001 From: trevorwilliams2025 Date: Wed, 8 Jul 2026 19:13:22 +1000 Subject: [PATCH 2/2] feat(pipelines): use Value type for aksCluster and drop dryRun from IstioUpgradeStep --- pipelines/types/istio.go | 5 ++--- pipelines/types/pipeline.schema.v1.json | 9 ++++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/pipelines/types/istio.go b/pipelines/types/istio.go index dae91f0..763bf7a 100644 --- a/pipelines/types/istio.go +++ b/pipelines/types/istio.go @@ -20,12 +20,11 @@ const StepActionIstioUpgrade = "IstioUpgrade" type IstioUpgradeStep struct { StepMeta `json:",inline"` - AKSCluster string `json:"aksCluster"` - DryRun bool `json:"dryRun,omitempty"` + AKSCluster Value `json:"aksCluster"` } func (s *IstioUpgradeStep) Description() string { - return fmt.Sprintf("Step %s\n Kind: %s\n AKSCluster: %s\n DryRun: %v\n", s.Name, s.Action, s.AKSCluster, s.DryRun) + return fmt.Sprintf("Step %s\n Kind: %s\n AKSCluster: %s\n", s.Name, s.Action, s.AKSCluster.String()) } func (s *IstioUpgradeStep) RequiredInputs() []StepDependency { diff --git a/pipelines/types/pipeline.schema.v1.json b/pipelines/types/pipeline.schema.v1.json index be90f0d..f7b1a23 100644 --- a/pipelines/types/pipeline.schema.v1.json +++ b/pipelines/types/pipeline.schema.v1.json @@ -832,10 +832,13 @@ "const": "IstioUpgrade" }, "aksCluster": { - "type": "string" + "$ref": "#/definitions/value" }, - "dryRun": { - "type": "boolean" + "timeout": { + "$ref": "#/definitions/durationString" + }, + "shellIdentity": { + "$ref": "#/definitions/value" } }, "required": [