Skip to content

Commit 2e9b54f

Browse files
authored
v0.8.85: consolidate setup onboarding workflow and align version metadata (#91)
* v0.8.85: consolidate setup workflow and align pipeline/version metadata * test-run-timings * v0.8.85 follow-up: delete ADO auth+inventory workflows and add merged ADO setup pipeline * v0.8.85 follow-up: move collapsible subscription section into Export-AzLocalAuthValidationReport cmdlet; track test-run-timings.csv * v0.8.85 follow-up: fix live integration test failures (Step.0 ErrorActionPreference, Step.3 path, Step.4 SummaryPath) * Add test-run-timings.csv to repo (test performance metrics) * docs: align pipeline appendix with Setup/Fleet naming * chore: update test run timings * v0.8.85: address PR #91 review findings - manifest, docs, mojibake, prune tests - Get-AzLocalPipelineManifest: collapse legacy authentication-test + inventory-clusters rows into the merged setup-validate-and-inventory entry - appendix-pipelines.md / README.md: replace removed filenames + old Step naming with Setup:/Fleet: numbering; fix section 13 file-layout block and section 14 reference; repair broken cross-doc anchors (README 8.1.1 -> #fleet-01, sideload.md -> #fleet-03); update present-tense Step.7 reference - appendix-pipelines.md: reconcile Setup: 01 trigger docs to the shipped weekly Sunday 08:00 UTC cron - fleet-update-status.yml: fix mojibake in YAML comment - apply-updates-schedule.example.yml: replace Step.5/Step.7 with stable apply-updates.yml / Fleet: 04 references - Tests: add 10 -PruneDeprecated regression tests (6 Copy- + 4 Update-) covering both-removed, single-removed, ID-mismatch-preserved, omitted-flag and -WhatIf paths * docs: clarify sideload-catalog.example.yml header comment (v0.8.7 on-prem solution/SBE update sideloading) * docs: fix grammar in sideload-catalog.example.yml header (introduce -> introduced)
1 parent a650ea4 commit 2e9b54f

42 files changed

Lines changed: 1042 additions & 977 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

AzLocal.UpdateManagement/Automation-Pipeline-Examples/README.md

Lines changed: 78 additions & 78 deletions
Large diffs are not rendered by default.

AzLocal.UpdateManagement/Automation-Pipeline-Examples/apply-updates-schedule.example.yml

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,18 @@
1919
#
2020
# 1. This file (day-grain): the calendar week / day of week says
2121
# WHICH UpdateRing tag values are eligible TODAY in UTC.
22-
# 2. The Step.5 cron schedule (intra-day-grain): says HOW OFTEN the
23-
# apply-updates job wakes up (e.g. hourly).
22+
# 2. The apply-updates.yml cron schedule (intra-day-grain): says HOW
23+
# OFTEN the apply-updates job wakes up (e.g. hourly).
2424
# 3. Per-cluster `UpdateStartWindow` tag (minute-grain): says WHEN, during
2525
# an eligible day, the actual update is allowed to start.
2626
#
2727
# A cron firing that lands on a day with NO matching schedule rows is
2828
# logged and exits 0 - no errors, no failures.
2929
#
30-
# This file is REQUIRED for the "Step.5 Apply Updates" pipeline when
31-
# triggered by a schedule (not workflow_dispatch). If the file is
32-
# missing, Step.5 throws with the exact remediation command.
30+
# This file is REQUIRED for the "Fleet: 04 - Apply Updates"
31+
# (apply-updates.yml) pipeline when triggered by a schedule (not
32+
# workflow_dispatch). If the file is missing, apply-updates.yml throws
33+
# with the exact remediation command.
3334
#
3435
# Generate a starter file from your current fleet via:
3536
# New-AzLocalApplyUpdatesScheduleConfig -OutputPath .\config\apply-updates-schedule.yml
@@ -59,14 +60,14 @@ cycleAnchorYear: 2026
5960

6061
# ---- AllowedUpdateVersions (schema v2, MANDATORY top-level) -------
6162
# >>> ALLOWED-UPDATE-VERSIONS-V2 <<<
62-
# Fleet-wide allow-list of Azure Local update identifiers that Step.7
63-
# (apply-updates) is permitted to install.
63+
# Fleet-wide allow-list of Azure Local update identifiers that
64+
# apply-updates.yml is permitted to install.
6465
#
6566
# Default 'Latest' (case-insensitive) is a reserved sentinel meaning
6667
# 'no constraint - install the latest Ready update on each cluster'
6768
# (the historic v0.7.88 default). Leave it as 'Latest' to keep that
68-
# behaviour. When set to an explicit list, Step.7 only installs
69-
# updates whose `name` OR `properties.version` is an EXACT
69+
# behaviour. When set to an explicit list, apply-updates.yml only
70+
# installs updates whose `name` OR `properties.version` is an EXACT
7071
# (case-insensitive) match for one of the entries. If a cluster has
7172
# no Ready update that matches, that cluster is SKIPPED with status
7273
# 'NotInAllowList' (strict no-op; never falls back to 'latest').
@@ -98,8 +99,8 @@ cycleAnchorYear: 2026
9899
# customer ask in v0.7.89): install ONLY the YY04 + YY10 feature
99100
# updates plus the cumulative updates immediately preceding each
100101
# feature update (YY03 + YY09). With v2 schema you list those four
101-
# update names here once and Step.7 ignores every other 'Ready'
102-
# update. Example using real Azure Local update names:
102+
# update names here once and apply-updates.yml ignores every other
103+
# 'Ready' update. Example using real Azure Local update names:
103104
# allowedUpdateVersions: 'Solution12.2603.1002.15;Solution12.2604.1003.1005;Solution12.2609.1002.XX;Solution12.2610.1003.XX'
104105
#
105106
# Mixed Solution + OEM SBE example - allow the YY04 cumulative AND a

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/apply-updates-schedule-audit.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# AZLOCAL-PIPELINE-ID: apply-updates-schedule-audit
2-
# Step.03 - Apply-Updates Schedule Coverage Audit Pipeline
2+
# Setup: 03 - Apply-Updates Schedule Coverage Audit Pipeline
33
# This pipeline runs the read-only Test-AzLocalApplyUpdatesScheduleCoverage advisor
44
# weekly to detect drift between the cron schedule(s) in your apply-updates pipeline
55
# YAML and the UpdateStartWindow tags that operators have placed on Azure Local clusters.
@@ -87,7 +87,7 @@ parameters:
8787
default: false
8888

8989
variables:
90-
GENERATED_AGAINST_MODULE_VERSION: '0.8.84'
90+
GENERATED_AGAINST_MODULE_VERSION: '0.8.85'
9191
REQUIRED_MODULE_VERSION: '${{ parameters.moduleVersion }}'
9292
reportsPath: '$(Build.ArtifactStagingDirectory)/reports'
9393
# v0.8.7 sideload advisor defaults. Override at the pipeline / variable-group
@@ -98,7 +98,7 @@ variables:
9898

9999
stages:
100100
- stage: ScheduleCoverage
101-
displayName: 'Audit Apply-Updates Schedule Coverage'
101+
displayName: 'Setup: 03 - Audit Apply-Updates Schedule Coverage'
102102
jobs:
103103
- job: Audit
104104
displayName: 'Run Schedule Coverage Advisor'

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/apply-updates.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# AZLOCAL-PIPELINE-ID: apply-updates
2-
# Step.07 - Apply Updates to Azure Local Clusters
2+
# Fleet: 04 - Apply Updates to Azure Local Clusters
33
# This pipeline applies updates to clusters filtered by UpdateRing tag value
44

55
# Author guidance lives OUTSIDE the customise markers so module refreshes
@@ -129,7 +129,7 @@ variables:
129129
# log if the YAML appears stale - prompting you to refresh via
130130
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
131131
- name: GENERATED_AGAINST_MODULE_VERSION
132-
value: '0.8.84'
132+
value: '0.8.85'
133133
# Resolution order for the module version pin (leave all unset to install the latest,
134134
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
135135
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).
@@ -252,7 +252,7 @@ stages:
252252

253253
# Stage 2: Apply Updates (with approval gate for production)
254254
- stage: ApplyUpdates
255-
displayName: 'Apply Updates'
255+
displayName: 'Fleet: 04 - Apply Updates'
256256
dependsOn: CheckReadiness
257257
condition: and(succeeded(), gt(dependencies.CheckReadiness.outputs['ReadinessCheck.readiness.ReadyCount'], 0))
258258

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/assess-update-readiness.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# AZLOCAL-PIPELINE-ID: assess-update-readiness
2-
# Step.05 - Assess Update Readiness (Pre-flight go/no-go gate)
2+
# Fleet: 01 - Assess Update Readiness (Pre-flight go/no-go gate)
33
# --------------------------------------------------
44
# Runs Get-AzLocalClusterUpdateReadiness and Test-AzLocalClusterHealth -BlockingOnly
55
# against a target UpdateRing (or the whole fleet) BEFORE apply-updates.yml runs.
@@ -70,7 +70,7 @@ variables:
7070
# the version actually installed and to the latest on PSGallery, and emits a warning
7171
# log if the YAML appears stale - prompting you to refresh via
7272
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
73-
GENERATED_AGAINST_MODULE_VERSION: '0.8.84'
73+
GENERATED_AGAINST_MODULE_VERSION: '0.8.85'
7474
# Resolution order for the module version pin (leave all unset to install the latest,
7575
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
7676
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).
@@ -82,7 +82,7 @@ pool:
8282

8383
stages:
8484
- stage: Assess
85-
displayName: 'Assess Update Readiness'
85+
displayName: 'Fleet: 01 - Assess Update Readiness'
8686
jobs:
8787
- job: AssessReadiness
8888
displayName: 'Readiness + blocking health gate'

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/authentication-test.yml

Lines changed: 0 additions & 175 deletions
This file was deleted.

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/fleet-connectivity-status.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# AZLOCAL-PIPELINE-ID: fleet-connectivity-status
2-
# Step.04 - Fleet Connectivity Status Monitoring Pipeline
2+
# Fleet: 02 - Fleet Connectivity Status Monitoring Pipeline
33
# This pipeline surfaces network-connectivity issues across every Azure Local
44
# cluster the service connection can read - four scopes in one pipeline:
55
#
@@ -49,7 +49,7 @@
4949

5050
# Pipeline display name carries the same Step.N - prefix as the filename so the
5151
# ADO pipelines list (sorts by `name:` field) lists pipelines in execution order.
52-
name: Step.04 - Fleet Connectivity Status
52+
name: 'Fleet: 02 - Fleet Connectivity Status'
5353

5454
# BEGIN-AZLOCAL-CUSTOMIZE:schedule-triggers
5555
# Edits inside this block are preserved across Update-AzLocalPipelineExample
@@ -110,7 +110,7 @@ variables:
110110
# the version actually installed and to the latest on PSGallery, and emits a warning
111111
# log if the YAML appears stale - prompting you to refresh via
112112
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
113-
GENERATED_AGAINST_MODULE_VERSION: '0.8.84'
113+
GENERATED_AGAINST_MODULE_VERSION: '0.8.85'
114114
# Resolution order for the module version pin (leave all unset to install the latest,
115115
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
116116
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/fleet-health-status.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# AZLOCAL-PIPELINE-ID: fleet-health-status
2-
# Step.10 - Fleet Health Status Monitoring Pipeline
2+
# Fleet: 07 - Fleet Health Status Monitoring Pipeline
33
# This pipeline surfaces 24-hour system health-check failures across every Azure Local
44
# cluster the service connection can read - including clusters that are already
55
# "up to date" with no available updates. The 24-hour health checks continue to run
@@ -105,7 +105,7 @@ variables:
105105
# the version actually installed and to the latest on PSGallery, and emits a warning
106106
# log if the YAML appears stale - prompting you to refresh via
107107
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
108-
GENERATED_AGAINST_MODULE_VERSION: '0.8.84'
108+
GENERATED_AGAINST_MODULE_VERSION: '0.8.85'
109109
# Resolution order for the module version pin (leave all unset to install the latest,
110110
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
111111
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).

AzLocal.UpdateManagement/Automation-Pipeline-Examples/azure-devops/fleet-update-status.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# AZLOCAL-PIPELINE-ID: fleet-update-status
2-
# Step.09 - Fleet Update Status Monitoring Pipeline
2+
# Fleet: 06 - Fleet Update Status Monitoring Pipeline
33
# This pipeline monitors update status across all Azure Local clusters and generates reports
44
#
55
# USE CASES:
@@ -93,7 +93,7 @@ variables:
9393
# the version actually installed and to the latest on PSGallery, and emits a warning
9494
# log if the YAML appears stale - prompting you to refresh via
9595
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
96-
GENERATED_AGAINST_MODULE_VERSION: '0.8.84'
96+
GENERATED_AGAINST_MODULE_VERSION: '0.8.85'
9797
# Resolution order for the module version pin (leave all unset to install the latest,
9898
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
9999
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).

0 commit comments

Comments
 (0)