Portworx Volume Driver in Kubernetes

- Add a new type PortworxVolumeSource
- Implement the kubernetes volume plugin for Portworx Volumes under pkg/volume/portworx
- The Portworx Volume Driver uses the libopenstorage/openstorage specifications and apis for volume operations.

Changes for k8s configuration and examples for portworx volumes.

- Add PortworxVolume hooks in kubectl, kube-controller-manager and validation.
- Add a README for PortworxVolume usage as PVs, PVCs and StorageClass.
- Add example spec files

Handle code review comments.

- Modified READMEs to incorporate to suggestions.
- Add a test for ReadWriteMany access mode.
- Use util.UnmountPath in TearDown.
- Add ReadOnly flag to PortworxVolumeSource
- Use hostname:port instead of unix sockets
- Delete the mount dir in TearDown.
- Fix link issue in persistentvolumes README
- In unit test check for mountpath after Setup is done.
- Add PVC Claim Name as a Portworx Volume Label

Generated code and documentation.
- Updated swagger spec
- Updated api-reference docs
- Updated generated code under pkg/api/v1

Godeps update for Portworx Volume Driver
- Adds github.com/libopenstorage/openstorage
- Adds go.pedge.io/pb/go/google/protobuf
- Updates Godep Licenses
This commit is contained in:
Aditya Dani
2016-12-19 23:17:11 +00:00
parent dba0af3675
commit 28df55fc31
84 changed files with 14212 additions and 3090 deletions

View File

@@ -37838,6 +37838,10 @@
"description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine",
"$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.PhotonPersistentDiskVolumeSource"
},
"portworxVolume": {
"description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine",
"$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.PortworxVolumeSource"
},
"quobyte": {
"description": "Quobyte represents a Quobyte mount on the host that shares a pod's lifetime",
"$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.QuobyteVolumeSource"
@@ -38325,6 +38329,26 @@
}
}
},
"io.k8s.kubernetes.pkg.api.v1.PortworxVolumeSource": {
"description": "PortworxVolumeSource represents a Portworx volume resource.",
"required": [
"volumeID"
],
"properties": {
"fsType": {
"description": "FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\". Implicitly inferred to be \"ext4\" if unspecified.",
"type": "string"
},
"readOnly": {
"description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.",
"type": "boolean"
},
"volumeID": {
"description": "VolumeID uniquely identifies a Portworx volume",
"type": "string"
}
}
},
"io.k8s.kubernetes.pkg.api.v1.PreferredSchedulingTerm": {
"description": "An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).",
"required": [
@@ -39378,6 +39402,10 @@
"description": "PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine",
"$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.PhotonPersistentDiskVolumeSource"
},
"portworxVolume": {
"description": "PortworxVolume represents a portworx volume attached and mounted on kubelets host machine",
"$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.PortworxVolumeSource"
},
"projected": {
"description": "Items for all in one resources secrets, configmaps, and downward API",
"$ref": "#/definitions/io.k8s.kubernetes.pkg.api.v1.ProjectedVolumeSource"