Skip to content
/ AzSS Public

AzSS (Azure Self-Service) is a solution that provides self-service capabilities for resource provisioning in Azure

Notifications You must be signed in to change notification settings

eosho/AzSS

Repository files navigation

AzSS - Azure Self-Service

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.

Table of Contents

Introduction

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.

Getting Started

To get started with AzSS, follow these steps:

  1. Installation: Clone the repository to your local machine.

    git clone https://github.com/eosho/AzSS.git
  2. Software Dependencies:

    • PowerShell 7.0 or above
    • Azure CLI with Azure DevOps extension
    • Azure Bicep CLI
  3. Latest Releases: Check the releases page for the latest updates.

  4. API References:

Build and Test

How to consume this automation

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: inherit

Contribute

We welcome contributions from the community. To contribute:

  1. Fork the repository.
  2. Create a new branch.
  3. Make your changes.
  4. Submit a pull request.

For more details, refer to the contribution guidelines.

Available Modules

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 }}

Triggering the Deployment Pipeline

To trigger the Azure Self Service (AzSS) deployment pipeline:

  1. Verify you have all the pre-requisites.
  2. Download the trigger script.
  3. Download the parameter file from catalog/bicep/<service>/parameters.json.
  4. Fill in values for each parameter as described in the PARAMETERS.md document.
  5. Execute the trigger script using one of the commands from the Examples section.

Usage Guide for Workflows

self-service.yml

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.

publish-all-modules.yml

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.

manage-changed-modules.yml

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.

About

AzSS (Azure Self-Service) is a solution that provides self-service capabilities for resource provisioning in Azure

Topics

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published