
Skill
sdaf-ado-project-bootstrap
bootstrap SDAF projects on Azure DevOps
Description
Set up SDAF on Azure DevOps end-to-end: create the Azure DevOps project, configuration repository, pipelines, cleanup task, agent pool, control-plane managed identity, service connections, variable groups, optional Web App, and onboard each SDAF workload zone. Drives the documented New-SDAFUserAssignedIdentity + New-SDAFADOProject + New-SDAFADOWorkloadZone path from docs/02-00-bootstrap.md, docs/02-10-configure-devops-project.md, and docs/02-20-configure-workload-zone-artifacts.md. Use when an operator says: "set up SDAF on Azure DevOps", "bootstrap the ADO project", "onboard a workload zone", "create a new SDAF DevOps project", "add SDAF-<env> variable group and service connection". NOT for what an individual pipeline does or when to run it (see sdaf-ado-pipeline-catalogue), and not for the GitHub Actions surface.
SKILL.md
SDAF — Azure DevOps project bootstrap and workload-zone onboarding
Drives the two documented PowerShell utilities that create the SDAF Azure
DevOps footprint: New-SDAFADOProject (project + control-plane artifacts) and
New-SDAFADOWorkloadZone (variable group + service connection for each extra
workload environment). Same script family, same doc pages, one operator sitting. Documented in
docs/02-00-bootstrap.md,
docs/02-10-configure-devops-project.md,
and docs/02-20-configure-workload-zone-artifacts.md.
When to invoke
Trigger utterances: "set up SDAF on Azure DevOps", "bootstrap the Azure
DevOps project", "create the SDAF-MGMT-SECE project", "add / onboard the
TEST-SECE-SAP01 workload zone", "create the SDAF-
Do not invoke for: "what does pipeline 01 do?" or "which variable group
does 05 read?" (→ sdaf-ado-pipeline-catalogue); anything on the GitHub
Actions surface; or actually deploying the control plane, workload zone, or
SAP system (bootstrap creates artefacts; deployment is a separate hub-plugin
skill).
Recipe
Both journeys run from Windows PowerShell with the latest Azure CLI, download
SDAFUtilities.psm1 from the reviewed sap-automation ref, sign in, run the
utility, capture returned values.
A. First-time project bootstrap
- Confirm inputs listed at the top of
docs/02-10-configure-devops-project.md(see alsodocs/01-00-prerequisites.md): Azure DevOps organization URL, tenant ID, control-plane subscription ID, control-plane and region codes, agent-pool name, SAP support credentials, reviewedsap-automationbranch,SDAF-MSIsresource group. - Copy the script in
docs/02-10-configure-devops-project.md § Configure the scriptinto a local.ps1. Replace every placeholder. Drop-EnableWebAppwhen the configuration Web App is not in scope. az upgrade, sign in to the intended Azure tenant, then run the.ps1; complete each browser prompt the utilities open.- Wait for
New-SDAFADOProjectto finish. Record the project URL, the managed-identity ID fromNew-SDAFUserAssignedIdentity, and the agent-pool name.
B. Onboarding an additional workload zone
Prerequisite: the project and control-plane MSI from A already exist.
- Copy the script in
docs/02-20-configure-workload-zone-artifacts.md § Configure the script. Reuse$ControlPlaneCode,$ControlPlaneRegionCode,$ManagedIdentityName,$MSIResourceGroupNamefrom A; set$WorkloadCode,$WorkloadRegionCode, and$WorkloadSubscriptionId. - Sign in to the tenant that holds the control-plane MSI. Run the
.ps1and confirmGet-SDAFUserAssignedIdentityreturns the control-plane identity beforeNew-SDAFADOWorkloadZoneruns.
C. Validate concretely after either journey
Walk the "Validate" section of the matching configure page
(A: docs/02-10-configure-devops-project.md;
B: docs/02-20-configure-workload-zone-artifacts.md):
- Project exists with the expected name; configuration repository contains
pipelinesandWORKSPACES(docs/02-00-bootstrap.md § Create the project and configuration repository). - Deployment pipelines were created — canonical inventory and variable-group
mapping is
sdaf-ado-pipeline-catalogue § Variable-group dependencies; do not restate it here. - Sensitive values (
S-Password, PAT, Azure credentials) are marked secret. - Every service connection targets the correct subscription and tenant.
- Agent pool exists and required pipelines are authorized on it.
- Build Service has the repository permissions the pipelines need
(
docs/02-00-bootstrap.md § Configure service connections and permissions). - No SAP password, PAT, or Azure credential appears in source control or pipeline logs.
Hard rules
- Documented utilities only. Drive
New-SDAFUserAssignedIdentity,New-SDAFADOProject,Get-SDAFUserAssignedIdentity, andNew-SDAFADOWorkloadZoneas documented.setup_ado.shandconfigure_deployer.share named indocs/02-00-bootstrap.md § Configure the agentas Learn-article steps — drive them only via that path; their internals are not documented here. Other ADO-setup scripts (create_devops_artifacts.sh,New-SDAFDevopsProject.ps1,New-SDAFDevopsWorkloadZone.ps1,setup_devops.ps1,Upgrade-*) are not documented here at all — do not reconstruct their behaviour. - Never invent parameters, roles, or variable-group values. The
per-variable catalogue for
SDAF-<environment>is not exhaustively documented; state the gap, do not guess. - Credential hygiene. Read SAP support credentials with
Read-Host -AsSecureString, do not echo, and removeEnv:SUserName/Env:SPasswordin afinallyblock exactly asdocs/02-10-configure-devops-project.md § Configure the scriptshows. - Do not rerun a partial script blind. Inventory what was created,
correct the first failed dependency, then rerun with the same project and
control-plane names (
docs/02-00-bootstrap.md § If it fails). - Reuse the workload-zone code. Same
$WorkloadZoneCodeupdates in place; a new code creates duplicate artefacts. WORKSPACES/LANDSCAPE/<zone>/<zone>.tfvarsis not created here — it is a prerequisite of the02deployment pipeline.
What this skill does NOT do
Choose between automated and manual paths (docs/02-00-bootstrap.md § Manual configuration path is a fallback the operator invokes directly); deploy the
control plane, workload zone, or any SAP system; explain individual pipeline
parameters or run order (see sdaf-ado-pipeline-catalogue); cover the
GitHub Actions bootstrap (sap-automation-gh-bootstrap); register the
deployer VM as the self-hosted agent (that happens during control-plane
deployment — docs/02-00-bootstrap.md § Configure the agent points 3–4); or
author / debug SDAFUtilities.psm1 itself.
See also
sdaf-ado-pipeline-catalogue — what each of the 13 pipeline wrappers does,
the variable groups they read, and the 20/21/22 level-up path.
docs/troubleshooting.md — first-triage
for PAT/authorization, variable groups, service connections, and agents.
More skills from the sap-automation-bootstrap repository
View all 2 skillsMore from Azure (Microsoft)
View publisherazure-arg-external-evaluation-policy-author
author and test Azure Resource Graph policies
azure-policy
Jul 12AzureComplianceGovernancePolicyazure-blueprints-migration
migrate Azure Blueprints to Template Specs
azure-blueprints
Aug 20AzureDeploymentInfrastructure as CodeMigrationsdaf-bom-selection
select SAP Bill of Materials
sap-automation
Sep 2AzureConfigurationSAPsdaf-control-plane-bootstrap
deploy SDAF control plane infrastructure
sap-automation
Sep 2AzureDeploymentInfrastructureSAPsdaf-failure-triage
triage failed SAP automation runs
sap-automation
Sep 2AzureDiagnosticsOperationsSAP +1sdaf-ha-diagnostics
diagnose SDAF high-availability cluster failures
sap-automation
Sep 2AzureDiagnosticsOperationsSAP