Skip to content

Conversation

@saad-ali
Copy link
Member

CC /sig-storage for review

@k8s-ci-robot k8s-ci-robot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Sep 18, 2017
@childsb
Copy link
Contributor

childsb commented Sep 18, 2017

lgtm

began to extend the Kubernetes storage API to do more then just make volumes available
(for example, resize volumes and take volume Snapshots), and focused on giving users
more control over their storage (ability to set requests & limits on ephemeral storage,
ability to specify mount options, more metrics, and improvments to Flex driver deployments).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the 1.8 release, SIG Storage extends the Kubernetes storage API to provide users with more control over their storage, beyond resizing volumes and taking volume Snapshots. The storage API provides the ability to set requests and limits on ephemeral storage, and specify mount options and metrics. Additionally, the API delivers improvement to the Flex driver deployments.

Copy link
Member Author

@saad-ali saad-ali Sep 18, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wording sounds better, but isn't accurate (new features include resizing and snapshots, so we're not going beyond those). I'll reworded it based on your structure.

* PV spec refactoring for plugins that reference namespaced resources: Azure File, CephFS, iSCSI, Glusterfs
* [stable] Mount Options
* The ability to speciy mount options has been promoted to stable.
* A new `MountOptions` field in the `PersistentVolume` spec can be used to specify mount options (instead of an annotation).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Introduce a new MountOptions field in the PersistentVolume spec to specify mount options (instead of an annotation).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also a MountOptions field has been added to StorageClasses to enable k8s admins to control mount options being used in their clusters

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

* [stable] Expose Storage Usage Metrics
* Expose how much available capacity a given PV has through the Kubernetes metrics API.
* [stable] Volume Plugin Metrics
* Expose success and latency metrics for all Kubernetes mount/unmount/attach/detach/provision/delete calls through the Kubernetes metrics API.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Expose success and latency metrics for all the Kubernetes ..

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

* [stable] Modify PV spec for Azure File, CephFS, iSCSI, Glusterfs to allow referencing namespaced resources.
* [beta] Reclaim policy in StorageClass
* Allow configuration of reclaim policy in StorageClass, instead of always defaulting to `delete` for dynamically provisioned volumes.
* [alpha] Resizing of Volumes
Copy link
Contributor

@radhikapc radhikapc Sep 18, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Volume resizing

* [beta] Reclaim policy in StorageClass
* Allow configuration of reclaim policy in StorageClass, instead of always defaulting to `delete` for dynamically provisioned volumes.
* [alpha] Resizing of Volumes
* Enable increasing the size of Volumes through the Kubernetes API.
Copy link
Contributor

@radhikapc radhikapc Sep 18, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

volumes

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

volumes? (... or "a volume")

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"a volume" makes more sense

* Enable increasing the size of Volumes through the Kubernetes API.
* For alpha, this feature only increases the size of the underlying volume and does not do filesystem resizing.
* For alpha, this feature is only implmented for Gluster volumes.
* [alpha] Capacity Isolation/Resource Management for Local Ephemeral Storage:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Provide Capacity...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

* For alpha, this feature only increases the size of the underlying volume and does not do filesystem resizing.
* For alpha, this feature is only implmented for Gluster volumes.
* [alpha] Capacity Isolation/Resource Management for Local Ephemeral Storage:
* Introduce ability to set container requests/limits and node Alloctable reservations for new `ephemeral-storage` resource.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Introduce ability to set container requests and limits, and node allocatable reservations for the new ephemeral-storage resource.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

* Introduce new `VolumeMount.Propagation` field for `VolumeMount` in pod containers.
* This field may be set to `Bidirectional` to enable a particular mount for a container to be propagated from the container to the host or other containers.
* [alpha] Improve Flexvolume Deployment
* Make it easier to deploy Flex volume drivers:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Provide easy deployment of Flex volume drivers:

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Provide sounds weird in this context. Reworded to Simplify Flex volume driver deployment.

* Expose Storage Usage Metrics
* PV spec refactoring for plugins that reference namespaced resources: Azure File, CephFS, iSCSI, Glusterfs
* [stable] Mount Options
* The ability to speciy mount options has been promoted to stable.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: speciy ->specify

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Provides the ability to... doesn't make sense with has been promoted to stable, which is the salient point. Reworded to emphasis that.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that's a mistake. @saad-ali

* Provide a sample DaemonSet that can be used to deploy Flexvolume drivers.
* [prototype] Volume Snapshots
* Enable triggering a volume snapshoting through the Kubernetes API.
* The prototype does not support quiescing before snapshot, so snapshots maybe inconssistent.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo: inconsisstent -> inconsistent

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.


[SIG Storage](https://github.com/kubernetes/community/tree/master/sig-storage) is
responsible for storage and volume plugin components. For the 1.8 release, SIG Storage
began to extend the Kubernetes storage API to do more then just make volumes available
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

then -> than

* [beta] Reclaim policy in StorageClass
* Allow configuration of reclaim policy in StorageClass, instead of always defaulting to `delete` for dynamically provisioned volumes.
* [alpha] Resizing of Volumes
* Enable increasing the size of Volumes through the Kubernetes API.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

volumes? (... or "a volume")

* Automatically discover and initialize new driver files instead of requiring kubelet/controller-manager restart.
* Provide a sample DaemonSet that can be used to deploy Flexvolume drivers.
* [prototype] Volume Snapshots
* Enable triggering a volume snapshoting through the Kubernetes API.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe " Enable triggering the creation of a volume snapshot through .." ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Much nicer. Done.

* Allow configuration of reclaim policy in StorageClass, instead of always defaulting to `delete` for dynamically provisioned volumes.
* [alpha] Resizing of Volumes
* Enable increasing the size of Volumes through the Kubernetes API.
* For alpha, this feature only increases the size of the underlying volume and does not do filesystem resizing.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Out of curiosity, shouldn't it be transparent to kube, and up to the backend storage implementation what they do with a volume resize / expand request? (In the sense of: the backend storage implementation may just do the filesystem resizing for you if required, but it may not even have a classical filesystem underneath at all and may do something entirely different...) I.e. the notion of filesystem and filesystem resize seems misplaced at the kube-layer.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately, for most volume providers resizing is a 2 step process. One that happens controller-manager's control plan and another that involves file system resizing on kubelet. kubernetes/community#657 may be right place to discuss it

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gnufied thanks!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kubernetes exposes volumes as file or block. For filesystem volumes, in order for an end user to actually make use of the newly available extra space, a filesystem resize is required. If volume resizing is to be part of the k8s storage API, then we need to make sure we automate this as well.

@saad-ali
Copy link
Member Author

Feedback addressed. PTAL

@obnoxxx
Copy link

obnoxxx commented Sep 18, 2017

@saad-ali thx, LGTM

[SIG Storage](https://github.com/kubernetes/community/tree/master/sig-storage) is
responsible for storage and volume plugin components. For the 1.8 release, SIG Storage extends
the Kubernetes storage API beyond just making volumes available to enabling volume resizing
and snapshotting. Beyond these alpha/prototype features, the SIG, focused on providing users
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the 1.8 release, SIG Storage extends the Kubernetes storage API beyond enabling volumes for resizing and snapshotting.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@radhikapc this doesn't read correctly to me. This release is not extending beyond enabling volumes for resizing and snapshotting.

Copy link
Member Author

@saad-ali saad-ali Sep 19, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spoke with @radhikapc offline. We are not extending the api beyond enabling volume resizing. Volume resizing and snapshots are the new features that we are growing into. Meaning while making volumes available == enable volumes, to enabling volume resizing and snapshotting is the new feature set and can't be collapsed into the making volumes available or enable volumes.

So to be clear, we are saying previously the storage API only made volumes available to use, now with 1.8, it is growing to accommodate things like snapshotting and resizing.

* Provide a sample DaemonSet that can be used to deploy Flexvolume drivers.
* [prototype] Volume Snapshots
* Enable triggering the creation of a volume snapshot through the Kubernetes API.
* The prototype does not support quiescing before snapshot, so snapshots maybe inconsistent.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

..might be inconsistent

Copy link
Contributor

@radhikapc radhikapc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

two minor comments. else lgtm

@mtanino
Copy link

mtanino commented Sep 19, 2017

@saad-ali @childsb

Do we need to add these two API support?

@saad-ali
Copy link
Member Author

@mtanino @radhikapc feedback addressed. PTAL

Copy link
Contributor

@radhikapc radhikapc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you. lgtm.

@mtanino
Copy link

mtanino commented Sep 19, 2017

@saad-ali
Thanks, I confirmed the update.

@radhikapc radhikapc merged commit 6c71d27 into master Sep 19, 2017
@idvoretskyi idvoretskyi deleted the release-notes-storage-1.8 branch January 4, 2018 23:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants