diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index 7ee47ae485b..a9f5360fb91 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -1864,78 +1864,78 @@ }, { "ImportPath": "github.com/vmware/govmomi", - "Comment": "v0.5.0", - "Rev": "c1b29993f383c32fc3fadb90892909668699810a" + "Comment": "v0.6.2", + "Rev": "9051bd6b44125d9472e0c148b5965692ab283d4a" }, { "ImportPath": "github.com/vmware/govmomi/find", - "Comment": "v0.5.0", - "Rev": "c1b29993f383c32fc3fadb90892909668699810a" + "Comment": "v0.6.2", + "Rev": "9051bd6b44125d9472e0c148b5965692ab283d4a" }, { "ImportPath": "github.com/vmware/govmomi/list", - "Comment": "v0.5.0", - "Rev": "c1b29993f383c32fc3fadb90892909668699810a" + "Comment": "v0.6.2", + "Rev": "9051bd6b44125d9472e0c148b5965692ab283d4a" }, { "ImportPath": "github.com/vmware/govmomi/object", - "Comment": "v0.5.0", - "Rev": "c1b29993f383c32fc3fadb90892909668699810a" + "Comment": "v0.6.2", + "Rev": "9051bd6b44125d9472e0c148b5965692ab283d4a" }, { "ImportPath": "github.com/vmware/govmomi/property", - "Comment": "v0.5.0", - "Rev": "c1b29993f383c32fc3fadb90892909668699810a" + "Comment": "v0.6.2", + "Rev": "9051bd6b44125d9472e0c148b5965692ab283d4a" }, { "ImportPath": "github.com/vmware/govmomi/session", - "Comment": "v0.5.0", - "Rev": "c1b29993f383c32fc3fadb90892909668699810a" + "Comment": "v0.6.2", + "Rev": "9051bd6b44125d9472e0c148b5965692ab283d4a" }, { "ImportPath": "github.com/vmware/govmomi/task", - "Comment": "v0.5.0", - "Rev": "c1b29993f383c32fc3fadb90892909668699810a" + "Comment": "v0.6.2", + "Rev": "9051bd6b44125d9472e0c148b5965692ab283d4a" }, { "ImportPath": "github.com/vmware/govmomi/vim25", - "Comment": "v0.5.0", - "Rev": "c1b29993f383c32fc3fadb90892909668699810a" + "Comment": "v0.6.2", + "Rev": "9051bd6b44125d9472e0c148b5965692ab283d4a" }, { "ImportPath": "github.com/vmware/govmomi/vim25/debug", - "Comment": "v0.5.0", - "Rev": "c1b29993f383c32fc3fadb90892909668699810a" + "Comment": "v0.6.2", + "Rev": "9051bd6b44125d9472e0c148b5965692ab283d4a" }, { "ImportPath": "github.com/vmware/govmomi/vim25/methods", - "Comment": "v0.5.0", - "Rev": "c1b29993f383c32fc3fadb90892909668699810a" + "Comment": "v0.6.2", + "Rev": "9051bd6b44125d9472e0c148b5965692ab283d4a" }, { "ImportPath": "github.com/vmware/govmomi/vim25/mo", - "Comment": "v0.5.0", - "Rev": "c1b29993f383c32fc3fadb90892909668699810a" + "Comment": "v0.6.2", + "Rev": "9051bd6b44125d9472e0c148b5965692ab283d4a" }, { "ImportPath": "github.com/vmware/govmomi/vim25/progress", - "Comment": "v0.5.0", - "Rev": "c1b29993f383c32fc3fadb90892909668699810a" + "Comment": "v0.6.2", + "Rev": "9051bd6b44125d9472e0c148b5965692ab283d4a" }, { "ImportPath": "github.com/vmware/govmomi/vim25/soap", - "Comment": "v0.5.0", - "Rev": "c1b29993f383c32fc3fadb90892909668699810a" + "Comment": "v0.6.2", + "Rev": "9051bd6b44125d9472e0c148b5965692ab283d4a" }, { "ImportPath": "github.com/vmware/govmomi/vim25/types", - "Comment": "v0.5.0", - "Rev": "c1b29993f383c32fc3fadb90892909668699810a" + "Comment": "v0.6.2", + "Rev": "9051bd6b44125d9472e0c148b5965692ab283d4a" }, { "ImportPath": "github.com/vmware/govmomi/vim25/xml", - "Comment": "v0.5.0", - "Rev": "c1b29993f383c32fc3fadb90892909668699810a" + "Comment": "v0.6.2", + "Rev": "9051bd6b44125d9472e0c148b5965692ab283d4a" }, { "ImportPath": "github.com/xiang90/probing", diff --git a/api/swagger-spec/apps_v1alpha1.json b/api/swagger-spec/apps_v1alpha1.json index 33e5ca084ae..1077951cc27 100644 --- a/api/swagger-spec/apps_v1alpha1.json +++ b/api/swagger-spec/apps_v1alpha1.json @@ -1299,6 +1299,10 @@ "configMap": { "$ref": "v1.ConfigMapVolumeSource", "description": "ConfigMap represents a configMap that should populate this volume" + }, + "vsphereVolume": { + "$ref": "v1.VsphereVirtualDiskVolumeSource", + "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" } } }, @@ -1805,6 +1809,23 @@ } } }, + "v1.VsphereVirtualDiskVolumeSource": { + "id": "v1.VsphereVirtualDiskVolumeSource", + "description": "Represents a vSphere volume resource.", + "required": [ + "volumePath" + ], + "properties": { + "volumePath": { + "type": "string", + "description": "Path that identifies vSphere volume vmdk" + }, + "fsType": { + "type": "string", + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + } + } + }, "v1.Container": { "id": "v1.Container", "description": "A single application container that you want to run within a pod.", diff --git a/api/swagger-spec/batch_v1.json b/api/swagger-spec/batch_v1.json index 3a208512861..bd8f0e5cf74 100644 --- a/api/swagger-spec/batch_v1.json +++ b/api/swagger-spec/batch_v1.json @@ -1304,6 +1304,10 @@ "configMap": { "$ref": "v1.ConfigMapVolumeSource", "description": "ConfigMap represents a configMap that should populate this volume" + }, + "vsphereVolume": { + "$ref": "v1.VsphereVirtualDiskVolumeSource", + "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" } } }, @@ -1810,6 +1814,23 @@ } } }, + "v1.VsphereVirtualDiskVolumeSource": { + "id": "v1.VsphereVirtualDiskVolumeSource", + "description": "Represents a vSphere volume resource.", + "required": [ + "volumePath" + ], + "properties": { + "volumePath": { + "type": "string", + "description": "Path that identifies vSphere volume vmdk" + }, + "fsType": { + "type": "string", + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + } + } + }, "v1.Container": { "id": "v1.Container", "description": "A single application container that you want to run within a pod.", diff --git a/api/swagger-spec/extensions_v1beta1.json b/api/swagger-spec/extensions_v1beta1.json index ffcbbb9ce73..6a4915f1773 100644 --- a/api/swagger-spec/extensions_v1beta1.json +++ b/api/swagger-spec/extensions_v1beta1.json @@ -6611,6 +6611,10 @@ "configMap": { "$ref": "v1.ConfigMapVolumeSource", "description": "ConfigMap represents a configMap that should populate this volume" + }, + "vsphereVolume": { + "$ref": "v1.VsphereVirtualDiskVolumeSource", + "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" } } }, @@ -7117,6 +7121,23 @@ } } }, + "v1.VsphereVirtualDiskVolumeSource": { + "id": "v1.VsphereVirtualDiskVolumeSource", + "description": "Represents a vSphere volume resource.", + "required": [ + "volumePath" + ], + "properties": { + "volumePath": { + "type": "string", + "description": "Path that identifies vSphere volume vmdk" + }, + "fsType": { + "type": "string", + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + } + } + }, "v1.Container": { "id": "v1.Container", "description": "A single application container that you want to run within a pod.", diff --git a/api/swagger-spec/v1.json b/api/swagger-spec/v1.json index 46ee7c53088..d29448bfde4 100644 --- a/api/swagger-spec/v1.json +++ b/api/swagger-spec/v1.json @@ -16359,6 +16359,10 @@ "$ref": "v1.AzureFileVolumeSource", "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." }, + "vsphereVolume": { + "$ref": "v1.VsphereVirtualDiskVolumeSource", + "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" + }, "accessModes": { "type": "array", "items": { @@ -16731,6 +16735,23 @@ } } }, + "v1.VsphereVirtualDiskVolumeSource": { + "id": "v1.VsphereVirtualDiskVolumeSource", + "description": "Represents a vSphere volume resource.", + "required": [ + "volumePath" + ], + "properties": { + "volumePath": { + "type": "string", + "description": "Path that identifies vSphere volume vmdk" + }, + "fsType": { + "type": "string", + "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified." + } + } + }, "v1.PersistentVolumeStatus": { "id": "v1.PersistentVolumeStatus", "description": "PersistentVolumeStatus is the current status of a persistent volume.", @@ -16977,6 +16998,10 @@ "configMap": { "$ref": "v1.ConfigMapVolumeSource", "description": "ConfigMap represents a configMap that should populate this volume" + }, + "vsphereVolume": { + "$ref": "v1.VsphereVirtualDiskVolumeSource", + "description": "VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine" } } }, diff --git a/cmd/kube-controller-manager/app/plugins.go b/cmd/kube-controller-manager/app/plugins.go index 33651191b4e..c34cb1d7a2b 100644 --- a/cmd/kube-controller-manager/app/plugins.go +++ b/cmd/kube-controller-manager/app/plugins.go @@ -32,6 +32,7 @@ import ( "k8s.io/kubernetes/pkg/cloudprovider/providers/aws" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" "k8s.io/kubernetes/pkg/cloudprovider/providers/openstack" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" "k8s.io/kubernetes/pkg/util/io" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/aws_ebs" @@ -39,6 +40,7 @@ import ( "k8s.io/kubernetes/pkg/volume/gce_pd" "k8s.io/kubernetes/pkg/volume/host_path" "k8s.io/kubernetes/pkg/volume/nfs" + "k8s.io/kubernetes/pkg/volume/vsphere_volume" "github.com/golang/glog" ) @@ -79,6 +81,7 @@ func ProbeRecyclableVolumePlugins(config componentconfig.VolumeConfiguration) [] allPlugins = append(allPlugins, aws_ebs.ProbeVolumePlugins()...) allPlugins = append(allPlugins, gce_pd.ProbeVolumePlugins()...) allPlugins = append(allPlugins, cinder.ProbeVolumePlugins()...) + allPlugins = append(allPlugins, vsphere_volume.ProbeVolumePlugins()...) return allPlugins } @@ -97,6 +100,8 @@ func NewVolumeProvisioner(cloud cloudprovider.Interface, config componentconfig. return getProvisionablePluginFromVolumePlugins(gce_pd.ProbeVolumePlugins()) case cloud != nil && openstack.ProviderName == cloud.ProviderName(): return getProvisionablePluginFromVolumePlugins(cinder.ProbeVolumePlugins()) + case cloud != nil && vsphere.ProviderName == cloud.ProviderName(): + return getProvisionablePluginFromVolumePlugins(vsphere_volume.ProbeVolumePlugins()) } return nil, nil } diff --git a/cmd/kubelet/app/plugins.go b/cmd/kubelet/app/plugins.go index 5e24957f9a8..18e078599b6 100644 --- a/cmd/kubelet/app/plugins.go +++ b/cmd/kubelet/app/plugins.go @@ -46,6 +46,7 @@ import ( "k8s.io/kubernetes/pkg/volume/nfs" "k8s.io/kubernetes/pkg/volume/rbd" "k8s.io/kubernetes/pkg/volume/secret" + "k8s.io/kubernetes/pkg/volume/vsphere_volume" // Cloud providers _ "k8s.io/kubernetes/pkg/cloudprovider/providers" ) @@ -80,6 +81,7 @@ func ProbeVolumePlugins(pluginDir string) []volume.VolumePlugin { allPlugins = append(allPlugins, flexvolume.ProbeVolumePlugins(pluginDir)...) allPlugins = append(allPlugins, azure_file.ProbeVolumePlugins()...) allPlugins = append(allPlugins, configmap.ProbeVolumePlugins()...) + allPlugins = append(allPlugins, vsphere_volume.ProbeVolumePlugins()...) return allPlugins } diff --git a/docs/api-reference/batch/v1/definitions.html b/docs/api-reference/batch/v1/definitions.html index 1c3668794c2..8dc608dff71 100755 --- a/docs/api-reference/batch/v1/definitions.html +++ b/docs/api-reference/batch/v1/definitions.html @@ -2852,6 +2852,47 @@ Populated by the system when a graceful deletion is requested. Read-only. More i + +
Represents a vSphere volume resource.
+Name | +Description | +Required | +Schema | +Default | +
---|---|---|---|---|
volumePath |
+Path that identifies vSphere volume vmdk |
+true |
+string |
++ |
fsType |
+Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. |
+false |
+string |
++ |
vsphereVolume
VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
false