azure-sap-automation-github
AI skills for the SDAF (SAP Deployment Automation Framework) GitHub Actions surface: repository bootstrap and setup utility, public Azure au
Open source Open in the app JSON README (API)
About
AI skills for the SDAF (SAP Deployment Automation Framework) GitHub Actions surface: repository bootstrap and setup utility, public Azure authentication diagnostics with documented sovereign-cloud limitations, and the 00-12 workflow sequence.
Details
- Kind
- Plugins
- Topic
- Cloud & DevOps
- Publisher
- azure
- Origin
- gemini
- Category
- ferramentas
- Version
- 0.1.0
- Stars
- 1
- Forks
- 9
- Open pull requests
- 2
- Last push
- 2026-08-31T17:27:58Z
- Repository state
- ativo
- Language
- HCL
- License
- MIT
- Added
- 2026-08-30 14:13:39
- Updated
- 2026-08-30 14:13:39
- Origin id
azure/sap-automation-gh-bootstrap
README
# SAP Deployment Automation Framework with GitHub Actions This repository is a configuration and workflow template for deploying SAP on Azure with the [SAP Deployment Automation Framework (SDAF)](https://github.com/Azure/sap-automation). SDAF uses Terraform to deploy infrastructure and Ansible to configure operating systems and install SAP software. ## Repository responsibilities - [`Azure/sap-automation`](https://github.com/Azure/sap-automation) is the central SDAF documentation hub. It owns the core Terraform, Ansible, deployment scripts, runner implementation, and the [`SDAF-GitHub-Actions` setup utility](https://github.com/Azure/sap-automation/tree/main/deploy/scripts/py_scripts/SDAF-GitHub-Actions). - [`Azure/sap-automation-gh-bootstrap`](https://github.com/Azure/sap-automation-gh-bootstrap) (this repository) is the customer configuration template. It owns the `.cfg_template` files, generated `WORKSPACES` configuration, and GitHub Actions workflows. - [`Azure/sap-automation-bootstrap`](https://github.com/Azure/sap-automation-bootstrap) owns the Azure DevOps customer configuration and wrapper pipelines. - [`Azure/SAP-automation-samples`](https://github.com/Azure/SAP-automation-samples) owns shared Terraform samples and SAP Bill of Materials (BoM) definitions consumed by the execution models. Use the [central SDAF hub](https://github.com/Azure/sap-automation) to compare GitHub Actions, Azure DevOps, and local or scripted execution. This repository documents only the GitHub Actions-specific procedure. The deployment consists of: 1. A **control plane** containing the deployer virtual machine, SAP library, Terraform state, credentials, and self-hosted GitHub Actions runner. 2. An **SAP application plane** containing workload zones and SAP systems managed by the control plane. > [!WARNING] > The sample configuration creates billable Azure resources. Review architecture, networking, sizing, quota, security, and cost before applying a Terraform plan. ## AI-skills plugin This repository ships an AI-skills plugin, `azure-sap-automation-github`, that gives GitHub Copilot CLI, Claude Code, and Gemini CLI grounded context about the GitHub Actions procedure for SDAF: the bootstrap flow and setup utility, public Azure authentication diagnostics (with documented sovereign-cloud limitations), and the ordered `00`–`12` workflow catalogue. The plugin is documentation and diagnostics only — it does not modify workflows, `.cfg_template/`, or `WORKSPACES/`, and installing it is never a prerequisite for using the workflows. **All SDAF AI plugins are optional and independently installable.** For complete coverage: - Local or scripted execution: install the hub plugin `azure-sap-automation` from [`Azure/sap-automation`](https://github.com/Azure/sap-automation). - Azure DevOps control plane: install the hub plus the Azure DevOps plugin `azure-sap-automation-devops` from [`Azure/sap-automation-bootstrap`](https://github.com/Azure/sap-automation-bootstrap). - GitHub Actions control plane (this repository): install the hub plus `azure-sap-automation-github` shown below. **The hub plugin is recommended for complete coverage; this plugin does not install it automatically.** See [`docs/PLUGINS.md`](docs/PLUGINS.md) for the full operator flow (verify, prompt examples, troubleshooting). ### GitHub Copilot CLI ```bash copilot plugin marketplace add Azure/sap-automation-gh-bootstrap copilot plugin install azure-sap-automation-github@sap-automation-gh-bootstrap ``` ### Claude Code ```text /plugin marketplace add Azure/sap-automation-gh-bootstrap /plugin install azure-sap-automation-github@sap-automation-gh-bootstrap ``` ### Gemini CLI ```bash gemini extensions install https://github.com/Azure/sap-automation-gh-bootstrap ``` For verification, example prompts, and troubleshooting, continue in [`docs/PLUGINS.md`](docs/PLUGINS.md). ## Getting started Follow the guides in order: 1. [Prerequisites and planning](docs/01-00-prerequisites.md) 2. [Bootstrap GitHub and Azure](docs/02-00-bootstrap.md) 3. [Create and deploy the control plane](docs/03-00-control-plane.md) 4. [Create and deploy a workload zone](docs/04-00-workload-zone.md) 5. [Create and deploy an SAP system](docs/05-00-sap-system.md) 6. [Download software and install SAP](docs/06-00-software-installation.md) 7. [Operations, troubleshooting, and removal](docs/07-00-operations.md) Do not start with workflow `01`. The bootstrap process and workflow `00` create the GitHub environment, secrets, variables, and Terraform configuration required by later workflows. ## Workflow sequence | Order | Workflow | Outcome | | --- | --- | --- | | 00 | Create Control Plane Environment | Control-plane GitHub environment and configuration | | 01 | Deploy Control Plane | Deployer, SAP library, and self-hosted runner | | 02 | Create workload environment | Workload-zone environment and configuration | | 03 | Deploy SAP Workload Zone | Shared workload-zone infrastructure | | 04 | Create SYSTEM environment | SAP system configuration committed to `WORKSPACES`; no GitHub environment is created | | 05 | SAP SID Infrastructure deployment | SAP virtual machines and infrastructure | | 06 or 06.5 | Download SAP software | SAP installation media | | 07 | Operating System Configuration and Installation | Configured and installed SAP system | Wait for each workflow to succeed and review its output before starting the next one. Workflows `00`, `02`, and `04` provide GitHub-specific configuration generation. Workflow `00` creates the control-plane GitHub environment, and workflow `02` creates the workload-zone GitHub environment. Despite its display name, workflow `04` only generates and commits SAP-system configuration. Workflow `05` uses the selected workload-zone environment for credentials and variables. ## Configuration templates and deployment inputs Files under `.cfg_template` are source templates. Creation workflows substitute their `@@...@@` placeholders and generate the Terraform deployment inputs under `WORKSPACES`: | Source template | Creation workflow | Generated configuration | | --- | --- | --- | | `deployer.tfvars` | `00 - Create Control Plane Environment` | `WORKSPACES/DEPLOYER/.../*.tfvars` | | `library.tfvars` | `00 - Create Control Plane Environment` | `WORKSPACES/LIBRARY/.../*.tfvars` | | `landscape.tfvars` | `02 - Create workload environment` | `WORKSPACES/LANDSCAPE/.../*.tfvars` | | `system.tfvars` | `04 - Create SYSTEM environment` | `WORKSPACES/SYSTEM/.../*.tfvars` | The generated `WORKSPACES` files, not `.cfg_template` directly, are the deployment inputs. Review and customize generated files after creation, then commit approved changes before running the corresponding deployment workflow. Template changes affect future generation; they do not update existing `WORKSPACES` files. Apply approved changes to both locations when a setting must remain consistent for current and future environments. In each template, non-commented assignments are mandatory workflow values or deliberate generated configuration. Commented assignments are optional and show the current Terraform default unless explicitly labeled as an example or cloud-specific override; comments also identify required values that SDAF scripts inject at deployment time. Each template contains one commented `dns_zone_names` block with Azure Government values. For Public Azure, leave it commented because Terraform already supplies the Public Azure DNS zone names by default. Do not add a redundant Public Azure assignment or enable multiple blocks. Set the repository variables `ARM_ENVIRONMENT`, `AZURE_ENVIRONMENT`, and `AZURE_AUDIENCE` before creating environments. Workflow `00` copies them to the control-plane environment, and workflow `02` propagates them to workload environments. Public Azure defaults are `public`, `AzureCloud`, and `api://AzureADTokenExchange`. For Azure Government, use `usgovernment`, `AzureUSGovernment`, and `api://AzureADTokenExchangeUSGov`, then uncomment the Government `dns_zone_names` block in each applicable generated configuration. Deployment is intentionally staged. Later workflows consume the approved `WORKSPACES` configuration and Terraform state persisted by the SAP library, so complete and validate each stage before starting a dependent stage. ## Current implementation status This repository is an evolving template. Review these limitations before using it for deployment: | Area | Status | Required action | | --- | --- | --- | | Workflow `01` dry run | Not operational | The `test` input is not forwarded to the deployment scripts. Do not use workflow `01` to obtain a plan-only run. | | Workflow `07` installation | Blocked | The workflow currently contains invalid YAML indentation and an inconsistent inventory path. Correct and validate the workflow before running it. | | Workflow `10` removal | Destructive, no plan mode | The workflow has no `test` input and defaults to removing the SAP system. Review every input before dispatch. | | Azure Government login | Not implemented | `azure/login` uses Public Azure defaults and the setup utility does not create cloud-selection variables. Add and validate cloud-specific login inputs before using the workflows with Azure Government. | The detailed guides identify these limitations at the affected steps. ## Repository layout - `.cfg_template`: Terraform variable templates used by creation workflows. - `.github/workflows`: GitHub Actions workflows for deployment and removal. - `WORKSPACES`: generated and customized deployment configuration. - `docs`: detailed setup, deployment, and operations guides. For symptom-based diagnostics, see [Troubleshoot GitHub Actions deployments](docs/troubleshooting.md). ## References - [SDAF overview](https://learn.microsoft.com/azure/sap/automation/deployment-framework) - [SDAF deployment planning](https://learn.microsoft.com/azure/sap/automation/plan-deployment) - [SDAF control-plane configuration](https://learn.microsoft.com/azure/sap/automation/configure-control-plane) - [Azure Government developer guidance](https://learn.microsoft.com/azure/azure-government/documentation-government-developer-guide) - [Private endpoint DNS zone values](https://learn.microsoft.com/azure/private-link/private-endpoint-dns) - [SDAF source](https://github.com/Azure/sap-automation) - [SDAF samples](https://github.com/Azure/sap-automation-samples) - [Central SDAF documentation hub](https://github.com/Azure/sap-automation)