Thank you for contributing Terraform examples, SAP software definitions, BOM components, Ansible examples, or documentation.
Most contributions require you to agree to a Contributor License Agreement (CLA) that confirms you have the right to grant us permission to use the contribution. For details, see the Microsoft CLA. The CLA bot checks pull requests and provides instructions when action is required.
This project follows the Microsoft Open Source Code of Conduct.
Submit a change here when it updates:
- a Terraform example under
Terraform; - a predefined SAP definition under
SAP; - an application, database, or kernel component under
BOM; - an Ansible example under
Ansible; or - documentation for these assets.
Submit Terraform module, Ansible role, downloader, validator, installation, or
local script changes to
Azure/sap-automation. Submit
workflow or pipeline wrapper changes to the repository that owns that execution
model.
- Create a focused branch from the current default branch.
- Identify the source asset, consumer, and execution models affected by the change.
- Use official vendor source data for Azure, Terraform, Ansible, and SAP values. Link the source in the pull request.
- Exclude credentials, tokens, customer data, downloaded SAP software, Terraform state, and generated execution artifacts.
- Preserve existing paths and naming conventions unless the change includes a compatibility reason and updates all in-repository references.
- Validate only the affected assets with the current SDAF implementation and record the commands, versions, and results in the pull request.
- Run
git diff --checkand review the final documentation and data-only diff.
- Place the sample in the matching
Terraform/WORKSPACESstage directory:DEPLOYER,LIBRARY,LANDSCAPE, orSYSTEM. - Match the directory name and
.tfvarsfile stem. Follow the established stage naming pattern described in Use Terraform workspace samples. - Replace real subscriptions, tenants, credentials, customer domains, addresses, and resource identifiers with safe example values.
- Document the topology and any nondefault dependency in the applicable
existing
readme.md. - Compare every variable with the matching root module at the SDAF version used for validation.
- Run the plan or test mode through an execution path that consumes the sample. Review the plan for unexpected changes and destructive actions.
- Record the SDAF commit, sample path, command or workflow, and plan result in the pull request.
A formatting or parsing check alone is not sufficient because sample values control Azure architecture, cost, and state.
- Choose
SAPfor a predefined complete product definition orBOMfor a separate application, database, or kernel component. - Match the directory name and YAML file stem exactly.
- Follow the naming and version pattern already used by the same product family. Do not infer one family convention from another.
- Update product metadata, dependencies, media URLs, archive names, checksums, platforms, and compatibility fields from verifiable SAP source data.
- Preserve the previous predefined SAP definition when the existing
versioning procedure requires archival. Follow
SAP/TSG/bomlinkupdate.mdfor link updates and the speciallatesthandling documented there. - Run the current SDAF BOM validator with the repository root as
BOM_directoryand the exact changed definition or component selection. - Run the applicable software-acquisition path when credentials and entitlements are available. Confirm dependency resolution, compatibility, download results, and checksums.
- Record source links, the catalog commit, selected names, validator output, and any media that could not be entitlement-tested.
Do not weaken or remove a checksum to make a download pass. Do not claim that obsolete SAP media is supported or replaceable without verifiable SAP source data.
- Keep the change under
Ansibleand limit it to sample behavior. - Use fully qualified Ansible collection names.
- Remove environment-specific hosts, credentials, and customer data.
- Run syntax and lint validation with the Ansible versions used by the current SDAF repository.
- Move executable framework behavior to
Azure/sap-automationwhen the change belongs in a shared role or playbook.
- Use sentence-case headings, short sentences, active voice, and explicit numbered actions.
- Use relative links for files in this repository.
- Verify every path, variable, and command against the current source.
- Preserve useful existing paths and heading anchors.
- Check every relative link and heading anchor, then run
git diff --check.
State any validation that you could not perform. Explain whether the limit was caused by SAP entitlement, unavailable media, Azure access, cost, or execution environment. A pull request must not describe untested media or infrastructure as validated.