AzSS is a solution that provides self-service capabilities for resource provisioning in Azure. It leverages PowerShell and Bicep scripts to automate the deployment of Azure infrastructure.
- Introduction
- Getting Started
- Build and Test
- Contribute
- Available Modules
- Triggering the Deployment Pipeline
- Usage Guide for Workflows
AzSS is designed to streamline the provisioning of Azure resources through a self-service model. It provides reusable Bicep modules and PowerShell scripts to ensure consistent and secure deployments.
To get started with AzSS, follow these steps:
-
Installation: Clone the repository to your local machine.
git clone https://github.com/eosho/AzSS.git
-
Software Dependencies:
- PowerShell 7.0 or above
- Azure CLI with Azure DevOps extension
- Azure Bicep CLI
-
Latest Releases: Check the releases page for the latest updates.
-
API References:
You can consume this repo by simply calling it from another repository in the same org.
E.g: in this example below, I am deploying a main.bicep file that provisions a resource group, key vault and storage account.
name: Infra-POC-Deploy
on:
workflow_dispatch:
permissions:
id-token: write
contents: read
issues: read
checks: write
pull-requests: write
jobs:
deploy-dev:
name: dev
uses: eosho/AzSS/.github/workflows/self-service.yml@main
with:
environment: dev
templateFilePath: "./.example/main.bicep"
parametersFilePath: "./.example/main.parameters.json"
deploymentMode: "create"
pipelineStage: "buildAndDeploy"
selfserviceMode: "multiResourceDeployment"
secrets: inherit
deploy-prod:
name: prod
needs: deploy-dev
uses: eosho/AzSS/.github/workflows/self-service.yml@main
with:
environment: prod
templateFilePath: "./.example/main.bicep"
parametersFilePath: "./.example/main.parameters.json"
deploymentMode: "create"
pipelineStage: "buildAndValidate"
selfserviceMode: "multiResourceDeployment"
secrets: inheritWe welcome contributions from the community. To contribute:
- Fork the repository.
- Create a new branch.
- Make your changes.
- Submit a pull request.
For more details, refer to the contribution guidelines.
The following table provides an outline of all available Bicep modules:
| Resource provider namespace | Azure service | Status | Bicep registry ref |
|---|---|---|---|
Microsoft.KeyVault |
vaults | Available | {{ registryName }}.azurecr.io/bicep/modules/microsoft.keyvault/vaults:{{ version }} |
Microsoft.Resources |
resourceGroups | Available | {{ registryName }}.azurecr.io/bicep/modules/microsoft.resources/resourcegroups:{{ version }} |
To trigger the Azure Self Service (AzSS) deployment pipeline:
- Verify you have all the pre-requisites.
- Download the trigger script.
- Download the parameter file from
catalog/bicep/<service>/parameters.json. - Fill in values for each parameter as described in the
PARAMETERS.mddocument. - Execute the trigger script using one of the commands from the Examples section.
This reusable workflow automates the deployment of Azure infrastructure using ARM templates or Bicep files. It supports validation, deployment, and self-service infrastructure provisioning with dynamic parameter injection.
For more details, refer to the usage guide.
This GitHub Action automates the testing and publishing of Bicep modules to an Azure private registry. It runs every Sunday at 00:00 UTC.
For more details, refer to the usage guide.
This GitHub Action automates the testing and publishing of ONLY changed Bicep modules to an Azure private registry. It runs when changes are pushed or a pull request is made to the main branch affecting catalog/bicep/*.
For more details, refer to the usage guide.
For more detailed information, please visit the repository.