diff --git a/CHANGELOG-2.1.md b/CHANGELOG-2.1.md new file mode 100644 index 000000000..29ffb5a6b --- /dev/null +++ b/CHANGELOG-2.1.md @@ -0,0 +1,13 @@ +# Changelog since v2.0.0 + +The attacher now supports CSI version 1.2.0, namely LIST_VOLUMES_PUBLISHED_NODES capability. When the capability is supported by CSI driver, the attacher periodically syncs volume attachments requested by Kubernetes with actual state reported by CSI driver. + +## New Features + +- The attacher reconciles VolumeAttachment status with actual back-end volume attachment state if plugin supports LIST_VOLUMES_PUBLISHED_NODES capability. ([#184](https://github.com/kubernetes-csi/external-attacher/pull/184), [@davidz627](https://github.com/davidz627)) +- Add prometheus metrics to CSI external-attacher under the /metrics endpoint. This can be enabled via the "--metrics-address" and "--metrics-path" options. ([#201](https://github.com/kubernetes-csi/external-attacher/pull/201), [@saad-ali](https://github.com/saad-ali)) + + +## Other Notable Changes + +- Migrated to Go modules, so the source builds also outside of GOPATH. ([#188](https://github.com/kubernetes-csi/external-attacher/pull/188), [@pohly](https://github.com/pohly)) diff --git a/README.md b/README.md index b2e5c3fbd..812f4a0b4 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,9 @@ The external-attacher is an external controller that monitors `VolumeAttachment` This information reflects the head of this branch. -| Compatible with CSI Version | Container Image | Min K8s Version | -| ------------------------------------------------------------------------------------------ | ----------------------------| --------------- | -| [CSI Spec v1.0.0](https://github.com/container-storage-interface/spec/releases/tag/v1.0.0) | quay.io/k8scsi/csi-attacher | 1.15 | +| Compatible with CSI Version | Container Image | Min K8s Version | Recommended K8s Version | +| ------------------------------------------------------------------------------------------ | ----------------------------| --------------- | ----------------------- | +| [CSI Spec v1.2.0](https://github.com/container-storage-interface/spec/releases/tag/v1.2.0) | quay.io/k8scsi/csi-attacher | 1.15 | 1.17 | ## Feature Status @@ -32,7 +32,7 @@ The following table reflects the head of this branch. | Feature | Status | Default | Description | | ------------- | ------- | ------- | --------------------------------------------------------------------------------------------- | | CSINode* | Beta | On | external-attacher uses the CSINode object to get the driver's node name instead of the Node annotation. | -| CSIMigration* | Alpha | On | [Migrating in-tree volume plugins to CSI](https://kubernetes.io/docs/concepts/storage/volumes/#csi-migration). | +| CSIMigration* | Beta | On | [Migrating in-tree volume plugins to CSI](https://kubernetes.io/docs/concepts/storage/volumes/#csi-migration). | *) There are no special feature gates for these features. They are enabled by turning on the corresponding features in Kubernetes. @@ -71,6 +71,8 @@ Note that the external-attacher does not scale with more replicas. Only one exte * `--metrics-path`: The HTTP path where prometheus metrics will be exposed. Default is `/metrics`. +* `--reconcile-sync`: Resync frequency of the attached volumes with the driver. See [Periodic re-sync](#periodic-re-sync) for details. 1 minute is used by default. + #### Other recognized arguments * `--kubeconfig `: Path to Kubernetes client configuration that the external-attacher uses to connect to Kubernetes API server. When omitted, default token provided by Kubernetes will be used. This option is useful only when the external-attacher does not run as a Kubernetes pod, e.g. for debugging. @@ -90,6 +92,9 @@ The external-attacher invokes all gRPC calls to CSI driver with timeout provided Correct timeout value depends on the storage backend and how quickly it is able to processes `ControllerPublish` and `ControllerUnpublish` calls. The value should be set to accommodate majority of them. It is fine if some calls time out - such calls will be re-tried after exponential backoff (starting with `--retry-interval-start`), however, this backoff will introduce delay when the call times out several times for a single volume (up to `--retry-interval-max`). +### Periodic re-sync +When CSI driver supports `LIST_VOLUMES` and `LIST_VOLUMES_PUBLISHED_NODES` capabilities, the external attacher periodically syncs volume attachments requested by Kubernetes with the actual state reported by CSI driver. Volumes detached by any 3rd party, but still required to be attached by Kubernetes, will be re-attached back. Frequency of this re-sync is controlled by `--reconcile-sync` command line parameter. + ## Community, discussion, contribution, and support Learn how to engage with the Kubernetes community on the [community page](http://kubernetes.io/community/).