Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
65 lines (47 sloc) 5.01 KB

Microsoft Azure ARM cloud provider

This cloud provider is not yet ready and is only available as a technical preview! Similarly, this document is also not yet ready, though the Details section is (mostly) accurate.


You have to have a Microsoft Live Account. If you don't have one, create it at

The account must be assigned a subscription. Ask around about that.

Once you have that, you have to create a service principal for OAuth authentication. The service principal should use a password for auth, not a certificate. It should have a reasonable role assigned; use Contributor if you're not sure.

See these documents for more information about that:




Azure cloud provider is based on JClouds-Labs azurecompute-arm implementation. Note that the underlying JClouds implementation is still heavily work in progress.



List of Azure CloudProvider properties:

Property name Description Default value
nodegroup Name of the node group for all nodes in this cloud provider. Should provide information about who started the nodes and shouldn't be prone to collisions. Default value should typically be satisfactory. Based on current runtime environment.
leaveNodesRunning Whether all the started virtual machines should be left running. false
azure-arm.subscriptionId Azure subscription ID [None. Mandatory.]
azure-arm.tenantId Azure tenant ID. Used for OAuth authentication. [None. Mandatory.]
azure-arm.applicationId The application ID of the Azure service principal. [None. Mandatory.]
azure-arm.password Password to the service principal. See azure.applicationId. [None. Mandatory.]
azure-arm.publishers Comma-delimited list of publishers whose marketplace images are recognized. If you want to use a marketplace image, you have to specify its publisher. Please note that listing all images takes a long time (it's only done once, though), so it's not the best idea to add publishers "just in case". Canonical,RedHat


List of Azure Node properties:

Property name Description Default value
nodegroup Name of the node group for this node. Default value should typically be satisfactory. The nodegroup value from the cloud provider.
azure-arm.image Reference to the Azure virtual machine image in the format location/publisher/offer/sku. Either references a marketplace image (e.g. eastus/Canonical/UbuntuServer/16.04.0-LTS) or an image in a blob store under a particular storage account. In the latter case, it looks like location//#storageAccount/blob. [None. Mandatory.]
azure-arm.image.isWindows TODO this is implemented, but I'm not sure if it makes any sense. false
azure-arm.bootScript Allows you to specify a script that is to be run on boot. The script is run with sudo. [None. Optional.]
azure-arm.bootScript.file As azure-arm.bootScript, but allows you to specify a path to a file that contains the script. Only one of azure-arm.bootScript and azure-arm.bootScript.file can be specified at a time. [None. Optional.]
azure-arm.size ID of the Azure ARM virtual machine size. Some typical are: Basic_A[0-4], Standard_A[0-7]. Note that not all locations have to support all sizes. Azure-specific default value.
azure-arm.inboundPorts Comma-delimited numbers of TCP ports that should be open. 22
azure-arm.ssh.user Username of the user that will be created in the virtual machine. Will be later used for SSH. [None. Mandatory.]
azure-arm.ssh.password Password of the user that will be created in the virtual machine. Will be later used for SSH. Note that Azure requires passwords to have certain quality; too simple passwords will cause an error. [None. Mandatory.]