
Skill
sdaf-control-plane-bootstrap
deploy SDAF control plane infrastructure
Description
Deploy the SDAF control plane locally: prepare DEPLOYER and LIBRARY tfvars, review the plan, run `deploy_controlplane.sh` per `docs/local/03-00-control-plane.md § Run`, and validate the deployer + library + state hand-off. Grounded in `docs/local/03-00-control-plane.md`. Use when a user says "deploy the SDAF control plane", "run deploy_controlplane.sh", "bootstrap SDAF from an empty subscription", "install the deployer" or "create the SAP library". Do NOT use for workload zone (see sdaf-workload-zone), SAP system (see sdaf-sap-system), removal (`sdaf-safe-removal`), or Azure Government / sovereign-cloud deltas (`sdaf-sovereign-cloud`).
SKILL.md
SDAF Control Plane Bootstrap
Action-loop skill. Deploys the control plane strictly per
docs/local/03-00-control-plane.md for local execution. On ADO / GitHub
surfaces, defer stage mechanics to the surface bootstrap plugin — this skill
covers the shared control-plane semantics.
When to invoke
Trigger on: "deploy the SDAF control plane", "run deploy_controlplane.sh", "install the deployer", "create the SAP library", "bootstrap SDAF from empty".
Do NOT trigger on: workload zone, SAP system, software download, install, removal, or state repair.
Preconditions (documented gates)
sdaf-readiness-checkhas passed (docs/local/02-00-prepare-execution-environment.md § Readiness verification;docs/local/03-00-control-plane.md § Before you begin).- Control-plane config files (DEPLOYER + LIBRARY tfvars) are prepared under
the documented
WORKSPACESlayout — seesdaf-workspace-and-tfvars(§ Configuration preparation,§ Inputs). - The three required env vars are set
(
docs/local/troubleshooting.md § A required export is missing):SAP_AUTOMATION_REPO_PATH,CONFIG_REPO_PATH,ARM_SUBSCRIPTION_ID.
Recipe
Step 1 — Review the tfvars
Re-read the DEPLOYER and LIBRARY tfvars once
(docs/local/03-00-control-plane.md § Review before execution). Confirm
naming matches docs/region-codes.md § Where the region code appears.
Step 2 — Confirm the review gate
Docs require an explicit review before every state-changing step
(docs/local/03-00-control-plane.md § Review before execution; § Run).
Step 3 — Run the documented control-plane deploy
From CONFIG_REPO_PATH, exactly per
docs/local/03-00-control-plane.md § Run:
set -e
cd "$CONFIG_REPO_PATH/WORKSPACES"
"$SAP_AUTOMATION_REPO_PATH/deploy/scripts/deploy_controlplane.sh" \
--deployer_parameter_file \
"$CONFIG_REPO_PATH/WORKSPACES/DEPLOYER/<CONTROL_PLANE>-INFRASTRUCTURE/<CONTROL_PLANE>-INFRASTRUCTURE.tfvars" \
--library_parameter_file \
"$CONFIG_REPO_PATH/WORKSPACES/LIBRARY/<ENVIRONMENT>-<LOCATION>-SAP_LIBRARY/<ENVIRONMENT>-<LOCATION>-SAP_LIBRARY.tfvars" \
--subscription "$ARM_SUBSCRIPTION_ID" || {
rc=$?
echo "control-plane exit=$rc — route to sdaf-failure-triage"
exit "$rc"
}
Do not claim success unless the exit code is 0 AND the validation checks
in Step 5 pass. Treat exit 2 as a validation-gate failure that must not be
silenced.
Step 4 — Do not update SDAF between plan and apply
docs/local/01-00-prerequisites.md § Pin versions.
Step 5 — Validate
docs/local/03-00-control-plane.md § Validate and § Outcome:
- Deployer + library deployed.
- Terraform state migrated to the library storage account (
tfstatecontainer) — see§ What the automation does. .sap_deployment_automationmetadata populated (§ What the automation does,§ Validate).- Summary written (
§ Outcome).
If the run fails
Route to sdaf-failure-triage. It walks
docs/local/troubleshooting.md and hands back the specific documented
anchor. Stage-owned preventive checks (that belong here rather than in
triage):
- Filename / directory / basename mismatch — fix before rerun
(
docs/local/troubleshooting.md § A parameter file is not found). - Interrupted control-plane rerun with
--recover— do so only after the state agrees (docs/local/troubleshooting.md § A control-plane run stopped partway through).
Hard rules
- Documented behaviour only (D19). If a knob is not in the shipped docs or
the script's own
--help, do not describe it. - Do not pass
--auto-approvefor reviewed local deployment (docs/local/03-00-control-plane.md § Review before execution). - Do not
--forcecasually (docs/local/03-00-control-plane.md § Safe retry). - Repo-wide rules apply: do not run
terraform fmtand follow the Terraform / Ansible / Python guidance in.github/copilot-instructions.md.
See also
sdaf-workspace-and-tfvars,sdaf-readiness-check,sdaf-workload-zone,sdaf-sap-system,sdaf-safe-removal,sdaf-sovereign-cloud,sdaf-failure-triage.docs/local/03-00-control-plane.md,docs/local/troubleshooting.md,.github/copilot-instructions.md.
More skills from the sap-automation repository
View all 18 skillssdaf-bom-selection
select SAP Bill of Materials
Sep 2AzureConfigurationSAPsdaf-failure-triage
triage failed SAP automation runs
Sep 2AzureDiagnosticsOperationsSAP +1sdaf-ha-diagnostics
diagnose SDAF high-availability cluster failures
Sep 2AzureDiagnosticsOperationsSAPsdaf-ha-topology
design high-availability SAP topologies
Sep 2ArchitectureAzureInfrastructureSAPsdaf-media-acquisition
acquire SAP installation media
Sep 2AzureOperationsSAPsdaf-media-diagnostics
diagnose SDAF media and BOM processing
Sep 2AzureDiagnosticsSAPStorage
More 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-orientation-and-surface
orient users to SDAF architecture
sap-automation
Sep 2ArchitectureAzureDocumentationSAPsdaf-plan-and-test-semantics
manage SDAF plan and test semantics
sap-automation
Sep 2AutomationAzureAzure DevOpsCI/CD +1sdaf-quality-assurance
validate deployed SDAF SAP systems
sap-automation
Sep 2AutomationAzureQuality AssuranceSAP