Bicep infrastructure for OSDU
Перейти к файлу
Daniel Scholl 5888a7db86 Bug Fixed 2024-01-08 12:34:38 -08:00
.devcontainer
.github
bicep Bug Fixed 2024-01-08 12:34:38 -08:00
charts
docs
scripts
software
stamp
.editorconfig
.eslintrc.js
.gitattributes
.gitignore
.prettierignore
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
README.md
SECURITY.md
SUPPORT.md
azure.yaml
bicepconfig.json
package-lock.json
package.json
parameters.json
ps-rule.yaml

README.md

OSDU Bicep

This project is used to host Bicep infrastructure that can be used in deploying OSDU on Azure.

Project Principals

The guiding principal we have with this project is to focus on the the downstream use of the project (see releases) The goal is to work on infrastructure in a manner that other components can consume infrastructure as code. As such, these are our specific practices.

  1. Deploy all components through a single, modular, idempotent bicep template Converge on a single bicep template, which can easily be consumed
  2. Provide best-practice defaults, then use parameters for flagging on additional options.
  3. Minimize "manual" steps for ease of automation
  4. Maintain quality through validation & CI/CD pipelines

Modules

Below is a table containing all published modules. Each version badge shows the latest version of the corresponding module.

Module Version Docs
public/app-configuration 🦾 Code 📃 Readme
public/azure-keyvault 🦾 Code 📃 Readme
public/container-registry 🦾 Code 📃 Readme
public/cosmos-db 🦾 Code 📃 Readme
public/log-analytics 🦾 Code 📃 Readme
public/private-endpoint 🦾 Code 📃 Readme
public/service-bus 🦾 Code 📃 Readme
public/storage-account 🦾 Code 📃 Readme
public/user-managed-identity 🦾 Code 📃 Readme
public/virtual-network 🦾 Code 📃 Readme

Solution

This is a sample module showing the usage of the modules and how a solution can be configured.

Features

Register the AzureServiceMeshPreview feature flag by using the az feature register command:

az feature register --namespace "Microsoft.ContainerService" --name "AzureServiceMeshPreview"

It takes a few minutes for the feature to register. Verify the registration status by using the az feature show command:

az feature show --namespace "Microsoft.ContainerService" --name "AzureServiceMeshPreview"

When the status reflects Registered, refresh the registration of the Microsoft.ContainerService resource provider by using the az provider register command:

az provider register --namespace Microsoft.ContainerService

Setup

Login

Log into the Azure CLI from a command line and set the subscription.

az login
azd auth login  # (Optional) --use-device-code
az account set --subscription <your_subscription_id>

Environment Variables

An environment must be created using the following environment variables.

Variable Purpose
AZURE_SUBSCRIPTION_ID The Azure Subscription (GUID)
AZURE_LOCATION The Azure Region
AZURE_CLIENT_ID Azure AD Application Client Id (GUID)
ENABLE_PRIVATE_ACCESS Feature Flag - Private Access
APP_NAME=                                          # <-- <your_ad_application_name>
AZURE_LOCATION=eastus

azd init -e dev
azd env set AZURE_SUBSCRIPTION_ID $(az account show --query id -otsv)
azd env set AZURE_LOCATION $AZURE_LOCATION
azd env set AZURE_CLIENT_ID $(az ad app list --display-name $APP_NAME --query "[].appId" -otsv)

# Solution Uses Resource Group Scoped deployments
azd config set alpha.resourceGroupDeployments on   # Enable Alpha Feature

# Feature Switches
azd env set ENABLE_BASTION false                   # Enable Bastion Host  (Beta)

azd env set ENABLE_VPN_GATEWAY false                  # Enable Site to Site VPN  (Alpha)
azd env set VPN_SHARED_KEY  <your_shared_key>         # if ENABLE_VPN_GATEWAY then Shared Secret
azd env set REMOTE_VPN_PREFIX                         # if ENABLE_VPN_GATEWAY then Remote IP CIDR

azd env set ENABLE_PRIVATE_LINK false              # Enable Private Link Services  (Alpha)

Workspace

The workspace is brought online using the azure developer cli

Action Command
Start azd up
Stop azd down --purge --force

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.