Commit Graph

3 Commits

Author SHA1 Message Date
Patrick Ohly
b60f08e24b storage: validate CSIDriver.Spec.VolumeLifecycleModes
This ensures that users get a good error message early on when trying
to do something that isn't okay:

  $ kubectl create -f csi-hostpath-driverinfo.yaml
  The CSIDriver "hostpath.csi.k8s.io" is invalid: spec.volumeLifecycleModes: Unsupported value: "foobar": supported values: "persistent", "ephemeral"
2019-08-13 23:12:48 +02:00
Patrick Ohly
029fd47757 storage: introduce CSIDriver.Spec.VolumeLifecycleModes
Using a "normal" CSI driver for an inline ephemeral volume may have
unexpected and potentially harmful effects when the driver gets a
NodePublishVolume call that it isn't expecting. To prevent that mistake,
driver deployments for a driver that supports such volumes must:
- deploy a CSIDriver object for the driver
- list "ephemeral" as one of the supported modes

The default is "persistent", so existing deployments continue to work
and are automatically protected against incorrect usage.

This commit contains the API change. Generated code and manual code
which uses the new API follow.
2019-08-13 23:11:36 +02:00
Xing Yang
bb45b8ee34 Make CSINodeInfo and CSIDriver Core APIs
This PR is the first step to transition CSINodeInfo and CSIDriver
CRD's to in-tree APIs. It adds them to the existing API group
“storage.k8s.io” as core storage APIs.
2019-03-02 12:31:05 -08:00