Azure Compute Driver

Selecting the azure driver adds the following options to the providers section of the configuration.

providers.[azure]
Type: list

An Azure provider’s resources are partitioned into groups called pool, and within a pool, the node types which are to be made available are listed

Note

For documentation purposes the option names are prefixed providers.[azure] to disambiguate from other drivers, but [azure] is not required in the configuration (e.g. below providers.[azure].pools refers to the pools key in the providers section when the azure driver is selected).

Example:

providers:
   - name: azure-central-us
     driver: azure
     zuul-public-key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAA...
     resource-group-location: centralus
     location: centralus
     resource-group: ZuulCIDev
     auth-path: /Users/grhayes/.azure/nodepoolCreds.json
     subnet-id: /subscriptions/<subscription-id>/resourceGroups/ZuulCI/providers/Microsoft.Network/virtualNetworks/NodePool/subnets/default
     cloud-images:
       - name: bionic
         username: zuul
         image-reference:
           sku: 18.04-LTS
           publisher: Canonical
           version: latest
           offer: UbuntuServer
     pools:
       - name: main
         max-servers: 10
         labels:
           - name: bionic
             cloud-image: bionic
             hardware-profile:
               vm-size: Standard_D1_v2
             tags:
               department: R&D
               purpose: CI/CD
providers.[azure].name (required)

A unique name for this provider configuration.

providers.[azure].location (required)

Name of the Azure region to interact with.

providers.[azure].resource-group-location (required)

Name of the Azure region to where the home Resource Group is or should be created.

providers.[azure].auth-path (required)

Path to the JSON file containing the service principal credentials. Create with the Azure CLI and the --sdk-auth flag

providers.[azure].subnet-id (required)

Subnet to create VMs on

providers.[azure].cloud-images
Type: list

Each entry in this section must refer to an entry in the labels section.

cloud-images:
  - name: bionic
    username: zuul
    image-reference:
      sku: 18.04-LTS
      publisher: Canonical
      version: latest
      offer: UbuntuServer
  - name: windows-server-2016
    username: zuul
    image-reference:
       sku: 2016-Datacenter
       publisher: MicrosoftWindowsServer
       version: latest
       offer: WindowsServer

Each entry is a dictionary with the following keys

providers.[azure].cloud-images.name (required)
Type: string

Identifier to refer this cloud-image from labels section. Since this name appears elsewhere in the nodepool configuration file, you may want to use your own descriptive name here.

providers.[azure].cloud-images.username
Type: str

The username that a consumer should use when connecting to the node.

providers.[azure].cloud-images.image-reference (required)
Type: dict
providers.[azure].cloud-images.image-reference.sku (required)
Type: str

Image SKU

providers.[azure].cloud-images.image-reference.publisher (required)
Type: str

Image Publisher

providers.[azure].cloud-images.image-reference.offer (required)
Type: str

Image offers

providers.[azure].cloud-images.image-reference.version (required)
Type: str

Image version

providers.[azure].pools
Type: list

A pool defines a group of resources from an Azure provider. Each pool has a maximum number of nodes which can be launched from it, along with a number of cloud-related attributes used when launching nodes.

providers.[azure].pools.name (required)

A unique name within the provider for this pool of resources.

providers.[azure].pools.labels
Type: list

Each entry in a pool’s labels section indicates that the corresponding label is available for use in this pool. When creating nodes for a label, the flavor-related attributes in that label’s section will be used.

labels:
  - name: bionic
    cloud-image: bionic
    hardware-profile:
      vm-size: Standard_D1_v2

Each entry is a dictionary with the following keys

providers.[azure].pools.labels.name (required)
Type: str

Identifier to refer this label.

providers.[azure].pools.labels.cloud-image (required)
Type: str

Refers to the name of an externally managed image in the cloud that already exists on the provider. The value of cloud-image should match the name of a previously configured entry from the cloud-images section of the provider.

providers.[azure].pools.labels.hardware-profile (required)
providers.[azure].pools.labels.hardware-profile.vm-size (required)
Type: str

VM Size of the VMs to use in Azure. See the VM size list on azure.microsoft.com for the list of sizes availabile in each region.