Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
156 changes: 78 additions & 78 deletions AzLocal.UpdateManagement/Automation-Pipeline-Examples/README.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,18 @@
#
# 1. This file (day-grain): the calendar week / day of week says
# WHICH UpdateRing tag values are eligible TODAY in UTC.
# 2. The Step.5 cron schedule (intra-day-grain): says HOW OFTEN the
# apply-updates job wakes up (e.g. hourly).
# 2. The apply-updates.yml cron schedule (intra-day-grain): says HOW
# OFTEN the apply-updates job wakes up (e.g. hourly).
# 3. Per-cluster `UpdateStartWindow` tag (minute-grain): says WHEN, during
# an eligible day, the actual update is allowed to start.
#
# A cron firing that lands on a day with NO matching schedule rows is
# logged and exits 0 - no errors, no failures.
#
# This file is REQUIRED for the "Step.5 Apply Updates" pipeline when
# triggered by a schedule (not workflow_dispatch). If the file is
# missing, Step.5 throws with the exact remediation command.
# This file is REQUIRED for the "Fleet: 04 - Apply Updates"
# (apply-updates.yml) pipeline when triggered by a schedule (not
# workflow_dispatch). If the file is missing, apply-updates.yml throws
# with the exact remediation command.
#
# Generate a starter file from your current fleet via:
# New-AzLocalApplyUpdatesScheduleConfig -OutputPath .\config\apply-updates-schedule.yml
Expand Down Expand Up @@ -59,14 +60,14 @@ cycleAnchorYear: 2026

# ---- AllowedUpdateVersions (schema v2, MANDATORY top-level) -------
# >>> ALLOWED-UPDATE-VERSIONS-V2 <<<
# Fleet-wide allow-list of Azure Local update identifiers that Step.7
# (apply-updates) is permitted to install.
# Fleet-wide allow-list of Azure Local update identifiers that
# apply-updates.yml is permitted to install.
#
# Default 'Latest' (case-insensitive) is a reserved sentinel meaning
# 'no constraint - install the latest Ready update on each cluster'
# (the historic v0.7.88 default). Leave it as 'Latest' to keep that
# behaviour. When set to an explicit list, Step.7 only installs
# updates whose `name` OR `properties.version` is an EXACT
# behaviour. When set to an explicit list, apply-updates.yml only
# installs updates whose `name` OR `properties.version` is an EXACT
# (case-insensitive) match for one of the entries. If a cluster has
# no Ready update that matches, that cluster is SKIPPED with status
# 'NotInAllowList' (strict no-op; never falls back to 'latest').
Expand Down Expand Up @@ -98,8 +99,8 @@ cycleAnchorYear: 2026
# customer ask in v0.7.89): install ONLY the YY04 + YY10 feature
# updates plus the cumulative updates immediately preceding each
# feature update (YY03 + YY09). With v2 schema you list those four
# update names here once and Step.7 ignores every other 'Ready'
# update. Example using real Azure Local update names:
# update names here once and apply-updates.yml ignores every other
# 'Ready' update. Example using real Azure Local update names:
# allowedUpdateVersions: 'Solution12.2603.1002.15;Solution12.2604.1003.1005;Solution12.2609.1002.XX;Solution12.2610.1003.XX'
#
# Mixed Solution + OEM SBE example - allow the YY04 cumulative AND a
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# AZLOCAL-PIPELINE-ID: apply-updates-schedule-audit
# Step.03 - Apply-Updates Schedule Coverage Audit Pipeline
# Setup: 03 - Apply-Updates Schedule Coverage Audit Pipeline
# This pipeline runs the read-only Test-AzLocalApplyUpdatesScheduleCoverage advisor
# weekly to detect drift between the cron schedule(s) in your apply-updates pipeline
# YAML and the UpdateStartWindow tags that operators have placed on Azure Local clusters.
Expand Down Expand Up @@ -87,7 +87,7 @@ parameters:
default: false

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

stages:
- stage: ScheduleCoverage
displayName: 'Audit Apply-Updates Schedule Coverage'
displayName: 'Setup: 03 - Audit Apply-Updates Schedule Coverage'
jobs:
- job: Audit
displayName: 'Run Schedule Coverage Advisor'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# AZLOCAL-PIPELINE-ID: apply-updates
# Step.07 - Apply Updates to Azure Local Clusters
# Fleet: 04 - Apply Updates to Azure Local Clusters
# This pipeline applies updates to clusters filtered by UpdateRing tag value

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

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

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

stages:
- stage: Assess
displayName: 'Assess Update Readiness'
displayName: 'Fleet: 01 - Assess Update Readiness'
jobs:
- job: AssessReadiness
displayName: 'Readiness + blocking health gate'
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# AZLOCAL-PIPELINE-ID: fleet-connectivity-status
# Step.04 - Fleet Connectivity Status Monitoring Pipeline
# Fleet: 02 - Fleet Connectivity Status Monitoring Pipeline
# This pipeline surfaces network-connectivity issues across every Azure Local
# cluster the service connection can read - four scopes in one pipeline:
#
Expand Down Expand Up @@ -49,7 +49,7 @@

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

# BEGIN-AZLOCAL-CUSTOMIZE:schedule-triggers
# Edits inside this block are preserved across Update-AzLocalPipelineExample
Expand Down Expand Up @@ -110,7 +110,7 @@ variables:
# the version actually installed and to the latest on PSGallery, and emits a warning
# log if the YAML appears stale - prompting you to refresh via
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
GENERATED_AGAINST_MODULE_VERSION: '0.8.84'
GENERATED_AGAINST_MODULE_VERSION: '0.8.85'
# Resolution order for the module version pin (leave all unset to install the latest,
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# AZLOCAL-PIPELINE-ID: fleet-health-status
# Step.10 - Fleet Health Status Monitoring Pipeline
# Fleet: 07 - Fleet Health Status Monitoring Pipeline
# This pipeline surfaces 24-hour system health-check failures across every Azure Local
# cluster the service connection can read - including clusters that are already
# "up to date" with no available updates. The 24-hour health checks continue to run
Expand Down Expand Up @@ -105,7 +105,7 @@ variables:
# the version actually installed and to the latest on PSGallery, and emits a warning
# log if the YAML appears stale - prompting you to refresh via
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
GENERATED_AGAINST_MODULE_VERSION: '0.8.84'
GENERATED_AGAINST_MODULE_VERSION: '0.8.85'
# Resolution order for the module version pin (leave all unset to install the latest,
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# AZLOCAL-PIPELINE-ID: fleet-update-status
# Step.09 - Fleet Update Status Monitoring Pipeline
# Fleet: 06 - Fleet Update Status Monitoring Pipeline
# This pipeline monitors update status across all Azure Local clusters and generates reports
#
# USE CASES:
Expand Down Expand Up @@ -93,7 +93,7 @@ variables:
# the version actually installed and to the latest on PSGallery, and emits a warning
# log if the YAML appears stale - prompting you to refresh via
# Copy-AzLocalPipelineExample -Update. See Automation-Pipeline-Examples/README.md section 5.
GENERATED_AGAINST_MODULE_VERSION: '0.8.84'
GENERATED_AGAINST_MODULE_VERSION: '0.8.85'
# Resolution order for the module version pin (leave all unset to install the latest,
# which is the default "fix-forward" behaviour): queue-time parameter > pipeline variable
# 'REQUIRED_MODULE_VERSION' overridden at queue time > empty (latest).
Expand Down
Loading
Loading