A demo used for Microsoft Build 2018 that incorporates
- Azure Container Registry - (ACR)
- ACR Build - a native container build service provding OS & Framework patching primtives
- ACR Geo-replication enabling a single deployment, servicing two continents
- Azure Keyvault, securing credential information
- Helm: managing deployments to Kubernetes
- Jenkins: used for release management of ACR Built images, deployed with Helm to Kubernetes
- Azure Kubernetes Service: providing a managed Kubernetes offering
- Asp.net Core: an open source web framework for building modern web apps and services
We've tried to follow best practices for:
- extracting configuration from your images
- extracting secrets to kubernets secret storage within AKS, and azure keyvault for storage before provisioning
- unique tagging for deployments - see: Docker Tagging: Best practices for tagging and versioning docker images
- Deploy: This repo, used for managing the Helm Chart Deployments
- this repos also inlcudes the scripts required to create the various resources in Azure
- Web: The front end website
- Quotes: An API Service, used to return random quotes, demonstrating a non-critical service
ACR_NAME=demo42
az acr task create \
-n demo42-deploy \
--file acr-task.yaml \
--context https://github.com/demo42/deploy.git \
--set-secret TENANT=$(az keyvault secret show \
--vault-name ${AKV_NAME} \
--name demo42-serviceaccount-tenant \
--query value -o tsv) \
--set-secret SP=$(az keyvault secret show \
--vault-name ${AKV_NAME} \
--name demo42-serviceaccount-user \
--query value -o tsv) \
--set-secret PASSWORD=$(az keyvault secret show \
--vault-name ${AKV_NAME} \
--name demo42-serviceaccount-pwd \
--query value -o tsv) \
--set CLUSTER_NAME=demo42-staging-eus \
--set CLUSTER_RESOURCE_GROUP=demo42-staging-eus \
--set-secret REGISTRY_USR=$(az keyvault secret show \
--vault-name ${AKV_NAME} \
--name demo42-pull-usr \
--query value -o tsv) \
--set-secret REGISTRY_PWD=$(az keyvault secret show \
--vault-name ${AKV_NAME} \
--name demo42-pull-pwd \
--query value -o tsv) \
--git-access-token $(az keyvault secret show \
--vault-name ${AKV_NAME} \
--name demo42-git-token \
--query value -o tsv) \
--registry $ACR_NAME
Run the scheduled task
az acr task run -n demo42-web