kubernetes/pkg/volume
Kubernetes Submit Queue 14bcbb9450
Merge pull request #66553 from feiskyer/azure-disk-availablity-zone
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Add availability zones support to Azure managed disks

**What this PR does / why we need it**:

Continue of [Azure Availability Zone feature](https://github.com/kubernetes/features/issues/586).

This PR adds availability zone support for Azure managed disks and its storage class. Zoned managed disks is enabled by default if there are zoned nodes in the cluster.

The zone could also be customized by `zone` or `zones` parameter, e.g.

```yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
  name: managed-disk-zone-1
parameters:
  zone: "southeastasia-1"
  # zones: "southeastasia-1,"southeastasia-2"
  cachingmode: None
  kind: Managed
  storageaccounttype: Standard_LRS
provisioner: kubernetes.io/azure-disk
reclaimPolicy: Delete
volumeBindingMode: Immediate
```

All zoned AzureDisk PV will also be labeled with its availability zone, e.g.

```sh
$ kubectl get pvc pvc-azuredisk-az-1
NAME                 STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS          AGE
pvc-azuredisk-az-1   Bound     pvc-5ad0c7b8-8f0b-11e8-94f2-000d3a07de8c   5Gi        RWO            managed-disk-zone-1   2h

$ kubectl get pv pvc-5ad0c7b8-8f0b-11e8-94f2-000d3a07de8c --show-labels
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS    CLAIM                        STORAGECLASS          REASON    AGE       LABELS
pvc-5ad0c7b8-8f0b-11e8-94f2-000d3a07de8c   5Gi        RWO            Delete           Bound     default/pvc-azuredisk-az-1   managed-disk-zone-1             2h        failure-domain.beta.kubernetes.io/region=southeastasia,failure-domain.beta.kubernetes.io/zone=southeastasia-1
```

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #

**Special notes for your reviewer**:

See also the [KEP](https://github.com/kubernetes/community/pull/2364).

DynamicProvisioningScheduling feature would be added in a following PR.

**Release note**:

```release-note
Azure managed disks now support availability zones and new parameters `zoned`, `zone` and `zones` are added for AzureDisk storage class.
```

/kind feature
/sig azure
/assign @brendandburns @khenidak @andyzhangx
2018-08-06 02:02:54 -07:00
..
aws_ebs Add DynamicProvisioningScheduling support for EBS 2018-08-01 09:00:03 -07:00
azure_dd Add documentation and unit tests 2018-07-30 13:32:57 +08:00
azure_file Run hack/update-bazel.sh 2018-06-22 16:22:57 -07:00
cephfs Add UT Test to cephfs 2018-07-25 10:40:16 +08:00
cinder Avoid overflowing int64 in RoundUpSize and return error if overflow int 2018-07-23 13:48:45 -04:00
configmap Remove unused io util writer & volume host GetWriter() 2018-07-09 14:09:48 -07:00
csi Merge pull request #61389 from linyouchong/linyouchong-20180320 2018-08-03 07:02:46 -07:00
downwardapi Stop sorting downward api file lines 2018-07-09 15:44:03 -04:00
empty_dir Run hack/update-bazel.sh 2018-06-22 16:22:57 -07:00
fc kubernetes: fix printf format errors 2018-07-11 00:10:15 +03:00
flexvolume Implement fixes for flexvolume when kubelet is contanerized 2018-07-03 14:04:52 -04:00
flocker Avoid overflowing int64 in RoundUpSize and return error if overflow int 2018-07-23 13:48:45 -04:00
gce_pd Merge pull request #66832 from msau42/udev 2018-08-01 17:13:03 -07:00
git_repo Run hack/update-bazel.sh 2018-06-22 16:22:57 -07:00
glusterfs Provide an option to supply log-file mount option for gluster plugin. 2018-08-02 22:09:49 +05:30
host_path fixformat 2018-07-14 10:34:21 +08:00
iscsi Avoid deleted iSCSI LUNs in the kernel 2018-07-24 23:58:19 -04:00
local Merge pull request #65310 from wenlxie/upstream.master.fixlocalvolumevmnotfound 2018-06-29 20:14:12 -07:00
nfs Run hack/update-bazel.sh 2018-06-22 16:22:57 -07:00
photon_pd Avoid overflowing int64 in RoundUpSize and return error if overflow int 2018-07-23 13:48:45 -04:00
portworx kubernetes: fix printf format errors 2018-07-11 00:10:15 +03:00
projected Merge pull request #65429 from WanLinghao/projected_error_return_fix 2018-07-16 13:52:54 -07:00
quobyte Merge pull request #66202 from tanshanshan/fixformat 2018-07-24 21:24:30 -07:00
rbd nodes: improve handling of erroneous host names 2018-08-01 14:57:25 +08:00
scaleio Check presence of sioDiskIDPath before reading it 2018-07-17 09:55:46 -07:00
secret Remove unused io util writer & volume host GetWriter() 2018-07-09 14:09:48 -07:00
storageos Avoid overflowing int64 in RoundUpSize and return error if overflow int 2018-07-23 13:48:45 -04:00
testing extend FakeVolumePlugin to implement VolumePluginWithAttachLimits interface 2018-07-16 09:09:48 -07:00
util Add DynamicProvisioningScheduling support for EBS 2018-08-01 09:00:03 -07:00
validation Run hack/update-bazel.sh 2018-06-22 16:22:57 -07:00
vsphere_volume Avoid overflowing int64 in RoundUpSize and return error if overflow int 2018-07-23 13:48:45 -04:00
BUILD Remove unused io util writer & volume host GetWriter() 2018-07-09 14:09:48 -07:00
doc.go Use Go canonical import paths 2016-07-16 13:48:21 -04:00
metrics_cached.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
metrics_du.go Rename Du() to DiskUsage() for more expressive 2018-05-22 10:52:06 +08:00
metrics_du_test.go switch from package syscall to x/sys/unix 2017-07-21 12:14:42 +02:00
metrics_errors.go Disambiguate unsupported metrics from metrics errors 2016-09-15 10:05:30 +10:00
metrics_nil.go Disambiguate unsupported metrics from metrics errors 2016-09-15 10:05:30 +10:00
metrics_nil_test.go Remove "All rights reserved" from all the headers. 2016-06-29 17:47:36 -07:00
metrics_statfs.go update import 2018-02-27 20:23:35 +08:00
metrics_statfs_test.go add volume timestamps 2017-03-02 15:01:59 -08:00
OWNERS Update volume OWNERS to reflect active sig-storage reviewers 2017-10-26 13:26:33 -07:00
plugins.go Remove unused io util writer & volume host GetWriter() 2018-07-09 14:09:48 -07:00
plugins_test.go correct the expected value in plugintest 2018-02-25 15:14:55 +08:00
volume.go Merge pull request #63193 from lichuqiang/provision_0425 2018-06-05 15:31:58 -07:00
volume_linux.go Add more volume types in e2e and fix part of them. 2018-05-02 10:31:42 +08:00
volume_unsupported.go Add more volume types in e2e and fix part of them. 2018-05-02 10:31:42 +08:00