This post first appeared on Medium.
As an open-source maintainer one of the hardest things is getting access to relevant test environments to test your bits. Especially when that test environment is in a territory or environment you don’t have access to.
I’ve been lucky enough this week to get access to a subscription for the Azure US Government cloud environment, and this has meant I have been able to make fixes to both the kitchen-azurerm and chef-provisioning-azurerm projects.
Starting with v0.9.0 this driver has support for Azure Government and Sovereign Clouds via the use of the azure_environmentsetting. Valid Azure environments are Azure, AzureUSGovernment, AzureChina and AzureGermanCloud
Example .kitchen.yml for Azure US Government cloud:
---
driver:
name: azurerm
driver_config:
subscription_id: 'abcdabcd-YOUR-GUID-HERE-abcdabcdabcd'
azure_environment: 'AzureUSGovernment'
location: 'US Gov Iowa'
machine_size: 'Standard_D2_v2_Promo'
provisioner:
name: chef_zero
verifier:
name: inspec
platforms:
- name: ubuntu1604
driver_config:
image_urn: Canonical:UbuntuServer:16.04-LTS:latest
transport:
ssh_key: ~/.ssh/id_kitchen-azurerm
suites:
- name: default
run_list:
- recipe[vmtesting::default]
These changes are available in v0.5.0. The driver will automatically use the correct token provider and management endpoints for the relevant cloud environment. The default driver format for the Azure public cloud is:
with_driver 'AzureRM:abcd1234-YOUR-GUID-HERE-abcdef123456'
This can be changed to one of the following formats:
with_driver 'AzureUSGovernment:abcd1234-YOUR-GUID-HERE-abcdef123456' with_driver 'AzureChina:abcd1234-YOUR-GUID-HERE-abcdef123456' with_driver 'AzureGermanCloud:abcd1234-YOUR-GUID-HERE-abcdef123456'
For further details, to raise issues or contribute, please visit the repositories below:
Happy Provisioning!