<commit_before>---
title: Azure CPI
---

This topic describes cloud properties for different resources created by the Azure CPI.

## <a id='azs'></a> AZs

Currently the CPI does not support any cloud properties for AZs.

Example:

```yaml
azs:
- name: z1
```

---
## <a id="networks"></a> Networks

### Dynamic Network or Manual Network

Schema for `cloud_properties` section:

* **resource\_group\_name** [String, optional]: Name of a resource group. If it is set, Azure CPI will search the virtual network and security group in this resource group. Otherwise, Azure CPI will search the virtual network and security group in `resource_group_name` in the global CPI settings.
* **virtual\_network\_name** [String, required]: Name of a virtual network. Example: `boshnet`.
* **subnet_name** [String, required]: Name of a subnet within virtual network.
* **security_group** [String, optional]: The [security group](https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-nsg/) to apply to all VMs placed on this network. Default to the security group specified by `default_security_group` in the global CPI settings unless a security group is specified on a resource pool for a VM. The security group can be specified either in a resource pool or on a network.

See [how to create a virtual network and subnets](azure-resources.html#virtual-network).

Example of manual network:

```yaml
networks:
- name: default
  type: manual
  subnets:
  - range: 10.10.0.0/24
    gateway: 10.10.0.1
    cloud_properties:
      resource_group_name: my-resource-group
      virtual_network_name: boshnet
      subnet_name: boshsub
```

### Vip Network

Schema for `cloud_properties` section:

* **resource\_group\_name** [String, optional]: Name of a resource group. If it is set, Azure CPI will search the public IP in this resource group. Otherwise, Azure CPI will search the public IP in `resource_group_name` in the global CPI settings.

See [how to create public IP](azure-resources.html#public-ips) to use with vip networks.

Example of vip network:

```yaml
networks:
- name: public
  type: vip
  cloud_properties:
    resource_group_name: my-resource-group
```

---
## <a id="resource-pools"></a> Resource Pools / VM Types

Schema for `cloud_properties` section:

* **instance_type** [String, required]: Type of the [instance](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-sizes/). Example: `Standard_A2`.
* **storage\_account\_name** [String, optional]: Storage account for VMs. If this is not set, the VMs will be created in the default storage account. See [this document](https://github.com/cloudfoundry-incubator/bosh-azure-cpi-release/tree/master/docs/advanced/deploy-cloudfoundry-for-enterprise#multiple-storage-accounts) for more details on why this option exists.
    * If you use `DS-series` or `GS-series` as `instance_type`, you should set this to a premium storage account. See more information about [Azure premium storage](https://azure.microsoft.com/en-us/documentation/articles/storage-premium-storage-preview-portal/). See [avaliable regions](http://azure.microsoft.com/en-us/regions/#services) where you can create premium storage accounts.
    * If you use a different storage account which must be in the same resource group, please make sure:
      1. the permissions for the container `stemcell` in the default storage account is set to `Public read access for blobs only`.
      1. a table `stemcells` is created in the default storage account.
      1. two containers `bosh` and `stemcell` are created in the new storage account.
    * If this storage account does not exist, it can be created automatically by Azure CPI. But you must specify storage\_account\_type and make sure:
      1. The name must be **unique within Azure**.
      1. **The name must be between 3 and 24 characters in length and use numbers and lower-case letters only**.
* **storage\_account\_type** [String, optional]: Storage account type. It is required if the storage account does not exist. It can be either `Standard_LRS`, `Standard_ZRS`, `Standard_GRS`, `Standard_RAGRS` or `Premium_LRS`. You can click [**HERE**](http://azure.microsoft.com/en-us/pricing/details/storage/) to learn more about the type of Azure storage account.
* **storage\_account\_location** [String, optional]: Location of the storage account. It is needed if the storage account does not exist. If it is not set, the location of the default resource group will be used. For more information, see [List all of the available geo-locations](http://azure.microsoft.com/en-us/regions/). For `AzureChinaCloud`, you should only use the regions in China, `chinanorth` or `chinaeast`.
* **availability_set** [String, optional]: Name of an [availability set](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-manage-availability/) to use for VMs. If available set does not exist, it will be automatically created. [More details](https://github.com/cloudfoundry-incubator/bosh-azure-cpi-release/tree/master/docs/advanced/deploy-cloudfoundry-for-enterprise#availability-set).
* **platform\_update\_domain_count** [Integer, optional]: The count of [update domain](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-manage-availability/) in the availability set. Default value is `5`.
* **platform\_fault\_domain_count** [Integer, optional]: The count of [fault domain](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-manage-availability/) in the availability set. Default value is `3`.
* **load_balancer** [String, optional]: Name of an [load balancer](https://azure.microsoft.com/en-us/documentation/articles/load-balancer-overview/) the VMs should belong to. You need to create the load balancer manually before configuring it.
* **security_group** [String, optional]: The [security group](https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-nsg/) to apply to all VMs placed in this resource pool. Default to the security group specified by `default_security_group` in the global CPI settings unless a security group is specified on one of the VM networks. The security group can be specified either in a resource pool or on a network.
* **caching** [String, optional]: Type of the disk caching of the VMs' OS disks. It can be either `None`, `ReadOnly` or `ReadWrite`. Default is `ReadWrite`.
* **ephemeral_disk** [Hash, optional]: Ephemeral disk to apply for all VMs that are in this resource pool. By default a data disk with the default size as below will be created as the ephemeral disk.
    * **size** [Integer, optional]: Specifies the disk size in megabytes. If this is not set, the default size as below will be used. The size of the ephemeral disk for the BOSH VM should be larger than or equal to `30*1024` megabytes.
      * If the Azure temporary disk size for the instance type is less than `30*1024` megabytes, the default size is `30*1024` megabytes because the space may not be enough.
      * If the Azure temporary disk size for the instance type is larger than `1023*1024` megabytes, the default size is `1023*1024` megabytes because max data disk size is `1023*1024` megabytes on Azure.
      * Otherwise, the Azure temporary disk size will be used as the default size. See more information about [Azure temporary disk size](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-sizes/).
Example of a `Standard_A2` instance:

```yaml
resource_pools:
- name: default
  network: default
  stemcell:
    name: bosh-azure-hyperv-ubuntu-trusty-go_agent
    version: latest
  cloud_properties:
    instance_type: Standard_A2
    ephemeral_disk:
      size: 30_720
```

---
## <a id="disk-pools"></a> Disk Pools / Disk Types

Schema for `cloud_properties` section:

* **caching** [String, optional]: Type of the disk caching. It can be either `None`, `ReadOnly` or `ReadWrite`. Default is `None`. Only `None` and `ReadOnly` are supported for premium disks.

Example of 10GB disk:

* **disk_size** [Integer, required]: Size of the disk in megabytes. On Azure the disk size must be in the range [1 * 1024, 1023 * 1024].

```yaml
disk_pools:
- name: default
  disk_size: 10_240
```

---
## <a id="global"></a> Global Configuration
<commit_msg>Add docs for resource_pools.env.bosh.group_name for Azure CPI<commit_after>---
title: Azure CPI
---

This topic describes cloud properties for different resources created by the Azure CPI.

## <a id='azs'></a> AZs

Currently the CPI does not support any cloud properties for AZs.

Example:

```yaml
azs:
- name: z1
```

---
## <a id="networks"></a> Networks

### Dynamic Network or Manual Network

Schema for `cloud_properties` section:

* **resource\_group\_name** [String, optional]: Name of a resource group. If it is set, Azure CPI will search the virtual network and security group in this resource group. Otherwise, Azure CPI will search the virtual network and security group in `resource_group_name` in the global CPI settings.
* **virtual\_network\_name** [String, required]: Name of a virtual network. Example: `boshnet`.
* **subnet_name** [String, required]: Name of a subnet within virtual network.
* **security_group** [String, optional]: The [security group](https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-nsg/) to apply to all VMs placed on this network. Default to the security group specified by `default_security_group` in the global CPI settings unless a security group is specified on a resource pool for a VM. The security group can be specified either in a resource pool or on a network.

See [how to create a virtual network and subnets](azure-resources.html#virtual-network).

Example of manual network:

```yaml
networks:
- name: default
  type: manual
  subnets:
  - range: 10.10.0.0/24
    gateway: 10.10.0.1
    cloud_properties:
      resource_group_name: my-resource-group
      virtual_network_name: boshnet
      subnet_name: boshsub
```

### Vip Network

Schema for `cloud_properties` section:

* **resource\_group\_name** [String, optional]: Name of a resource group. If it is set, Azure CPI will search the public IP in this resource group. Otherwise, Azure CPI will search the public IP in `resource_group_name` in the global CPI settings.

See [how to create public IP](azure-resources.html#public-ips) to use with vip networks.

Example of vip network:

```yaml
networks:
- name: public
  type: vip
  cloud_properties:
    resource_group_name: my-resource-group
```

---
## <a id="resource-pools"></a> Resource Pools / VM Types

Schema for `cloud_properties` section:

* **instance_type** [String, required]: Type of the [instance](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-sizes/). Example: `Standard_A2`.
* **storage\_account\_name** [String, optional]: Storage account for VMs. If this is not set, the VMs will be created in the default storage account. See [this document](https://github.com/cloudfoundry-incubator/bosh-azure-cpi-release/tree/master/docs/advanced/deploy-cloudfoundry-for-enterprise#multiple-storage-accounts) for more details on why this option exists.
    * If you use `DS-series` or `GS-series` as `instance_type`, you should set this to a premium storage account. See more information about [Azure premium storage](https://azure.microsoft.com/en-us/documentation/articles/storage-premium-storage-preview-portal/). See [avaliable regions](http://azure.microsoft.com/en-us/regions/#services) where you can create premium storage accounts.
    * If you use a different storage account which must be in the same resource group, please make sure:
      1. the permissions for the container `stemcell` in the default storage account is set to `Public read access for blobs only`.
      1. a table `stemcells` is created in the default storage account.
      1. two containers `bosh` and `stemcell` are created in the new storage account.
    * If this storage account does not exist, it can be created automatically by Azure CPI. But you must specify storage\_account\_type and make sure:
      1. The name must be **unique within Azure**.
      1. **The name must be between 3 and 24 characters in length and use numbers and lower-case letters only**.
* **storage\_account\_type** [String, optional]: Storage account type. It is required if the storage account does not exist. It can be either `Standard_LRS`, `Standard_ZRS`, `Standard_GRS`, `Standard_RAGRS` or `Premium_LRS`. You can click [**HERE**](http://azure.microsoft.com/en-us/pricing/details/storage/) to learn more about the type of Azure storage account.
* **storage\_account\_location** [String, optional]: Location of the storage account. It is needed if the storage account does not exist. If it is not set, the location of the default resource group will be used. For more information, see [List all of the available geo-locations](http://azure.microsoft.com/en-us/regions/). For `AzureChinaCloud`, you should only use the regions in China, `chinanorth` or `chinaeast`.
* **availability_set** [String, optional]: Name of an [availability set](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-manage-availability/) to use for VMs. [More details](https://github.com/cloudfoundry-incubator/bosh-azure-cpi-release/tree/master/docs/advanced/deploy-cloudfoundry-for-enterprise#availability-set).
    * If available set does not exist, it will be automatically created.
    * If `availability_set` is not specified, Azure CPI will search `env.bosh.group_name` as the name of availability set. If neither `availability_set` nor `env.bosh.group_name` exists, VMs in this resource_pool won't be in any availability set.
* **platform\_update\_domain_count** [Integer, optional]: The count of [update domain](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-manage-availability/) in the availability set. Default value is `5`.
* **platform\_fault\_domain_count** [Integer, optional]: The count of [fault domain](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-manage-availability/) in the availability set. Default value is `3`.
* **load_balancer** [String, optional]: Name of an [load balancer](https://azure.microsoft.com/en-us/documentation/articles/load-balancer-overview/) the VMs should belong to. You need to create the load balancer manually before configuring it.
* **security_group** [String, optional]: The [security group](https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-nsg/) to apply to all VMs placed in this resource pool. Default to the security group specified by `default_security_group` in the global CPI settings unless a security group is specified on one of the VM networks. The security group can be specified either in a resource pool or on a network.
* **caching** [String, optional]: Type of the disk caching of the VMs' OS disks. It can be either `None`, `ReadOnly` or `ReadWrite`. Default is `ReadWrite`.
* **ephemeral_disk** [Hash, optional]: Ephemeral disk to apply for all VMs that are in this resource pool. By default a data disk with the default size as below will be created as the ephemeral disk.
    * **size** [Integer, optional]: Specifies the disk size in megabytes. If this is not set, the default size as below will be used. The size of the ephemeral disk for the BOSH VM should be larger than or equal to `30*1024` megabytes.
      * If the Azure temporary disk size for the instance type is less than `30*1024` megabytes, the default size is `30*1024` megabytes because the space may not be enough.
      * If the Azure temporary disk size for the instance type is larger than `1023*1024` megabytes, the default size is `1023*1024` megabytes because max data disk size is `1023*1024` megabytes on Azure.
      * Otherwise, the Azure temporary disk size will be used as the default size. See more information about [Azure temporary disk size](https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-linux-sizes/).

Example of `env.bosh.group_name`:
* **env** [Hash, optional]:
    * **bosh** [Hash, optional]:
      * **group_name** [String, optional]: This will be used as the name of availability set for VMs when `cloud_properties.availability_set` does not exist.

Example of a `Standard_A2` instance:

```yaml
resource_pools:
- name: default
  network: default
  stemcell:
    name: bosh-azure-hyperv-ubuntu-trusty-go_agent
    version: latest
  cloud_properties:
    instance_type: Standard_A2
    availability_set: <availability-set-name>
    ephemeral_disk:
      size: 30_720
  env:
    bosh:
      group_name: <availability-set-name>
```

---
## <a id="disk-pools"></a> Disk Pools / Disk Types

Schema for `cloud_properties` section:

* **caching** [String, optional]: Type of the disk caching. It can be either `None`, `ReadOnly` or `ReadWrite`. Default is `None`. Only `None` and `ReadOnly` are supported for premium disks.

Example of 10GB disk:

* **disk_size** [Integer, required]: Size of the disk in megabytes. On Azure the disk size must be in the range [1 * 1024, 1023 * 1024].

```yaml
disk_pools:
- name: default
  disk_size: 10_240
```

---
## <a id="global"></a> Global Configuration

{'fraction_non_alphanumeric': 0.10307004816899773, 'fraction_numerical': 0.01102663803609773, 'mean_word_length': 4.43596214511041, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 25, 'https://': 22, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 4, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2718640', 'n_tokens_mistral': 5067, 'n_tokens_neox': 4758, 'n_words': 2023}