Skip to content

Commit

Permalink
Add changelog for release 3.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
xing-yang committed Sep 7, 2020
1 parent 42650bc commit f1fc0fe
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 5 deletions.
70 changes: 70 additions & 0 deletions CHANGELOG/CHANGELOG-3.0.md
@@ -0,0 +1,70 @@
# Release notes for v3.0.0

[Documentation](https://kubernetes-csi.github.io)

# Changelog since v2.1.0

## Breaking Changes

- Added Go Module for APIs and Client. Volume snapshot APIs and client library are now in a separate sub-module: `github.com/kubernetes-csi/external-snapshotter/client/v2`. ([#307](https://github.com/kubernetes-csi/external-snapshotter/pull/307), [@Kartik494](https://github.com/Kartik494))

- With kubernetes 1.18 release of client-go, signatures on methods in generated clientsets, dynamic, metadata, and scale clients have been modified to accept context.Context as a first argument. Signatures of Create, Update, and Patch methods have been updated to accept CreateOptions, UpdateOptions and PatchOptions respectively. Signatures of Delete and DeleteCollection methods now accept DeleteOptions by value instead of by reference. These changes are now accommodated with this PR and client-go and dependencies are updated to v1.18.0 ([#286](https://github.com/kubernetes-csi/external-snapshotter/pull/286), [@humblec](https://github.com/humblec))

## New Features

### Snapshot APIs

- The validation for volume snapshot objects (VolumeSnapshot and VolumeSnapshotContent) is getting more strict. Due to backwards compatibility this change will occur over multiple releases. The following key changes are highlighted.

1. As part of the first phase of the multi-phased release process, a validating
webhook server has been added. This server will perform additional validation (strict) which was not done during the beta release of volume snapshots. It will prevent the cluster from gaining (via create or update) invalid objects.
2. The controller will label objects which fail the additional validation. The label "snapshot.storage.kubernetes.io/invalid-snapshot-content-resource" will be added to invalid VolumeSnapshotContent objects. The label "snapshot.storage.kubernetes.io/invalid-snapshot-resource" will be added to invalide VolumeSnapshot objects.

The combination of 1 and 2 will allow cluster admins to stop the increase of invalid objects, and provide a way to easily list all objects which currently fail the strict validation. It is the kubernets distribution and cluster admin's responsibility to install the webhook and to ensure all the invalid objects in the cluster have been deleted or fixed. See the KEP at https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/177-volume-snapshot/tighten-validation-webhook-crd.md ([#353](https://github.com/kubernetes-csi/external-snapshotter/pull/353), [@AndiLi99](https://github.com/AndiLi99))

- Added Go Module for APIs and Client. Volume snapshot APIs and client library are now in a separate sub-module: `github.com/kubernetes-csi/external-snapshotter/client/v2`. ([#307](https://github.com/kubernetes-csi/external-snapshotter/pull/307), [@Kartik494](https://github.com/Kartik494))

- With kubernetes 1.18 release of client-go, signatures on methods in generated clientsets, dynamic, metadata, and scale clients have been modified to accept context.Context as a first argument. Signatures of Create, Update, and Patch methods have been updated to accept CreateOptions, UpdateOptions and PatchOptions respectively. Signatures of Delete and DeleteCollection methods now accept DeleteOptions by value instead of by reference. These changes are now accommodated with this PR and client-go and dependencies are updated to v1.18.0 ([#286](https://github.com/kubernetes-csi/external-snapshotter/pull/286), [@humblec](https://github.com/humblec))

### Snapshot Controller

- With the addition of the validating webhook server, the snapshot controller is modified to label objects which fail the additional validation. The label "snapshot.storage.kubernetes.io/invalid-snapshot-content-resource" will be added to invalid VolumeSnapshotContent objects. The label "snapshot.storage.kubernetes.io/invalid-snapshot-resource" will be added to invalide VolumeSnapshot objects. ([#353](https://github.com/kubernetes-csi/external-snapshotter/pull/353), [@AndiLi99](https://github.com/AndiLi99))
- Snapshot APIs and Client are now in a separate go package. The snapshot controller is modified to use the new package. ([#307](https://github.com/kubernetes-csi/external-snapshotter/pull/307), [@Kartik494](https://github.com/Kartik494))

### CSI External-Snapshotter Sidecar

- Snapshot APIs and Client are now in a separate go package. The CSI external-snapshotter sidecar is modified to use the new package. ([#307](https://github.com/kubernetes-csi/external-snapshotter/pull/307), [@Kartik494](https://github.com/Kartik494))

### Bug Fixes

### Snapshot Controller

- Fix a problem deleting the PVC finalizer and snapshot finalizer. ([#360](https://github.com/kubernetes-csi/external-snapshotter/pull/360), [@xing-yang](https://github.com/xing-yang))
- Emit event even if status update fails. ([#347](https://github.com/kubernetes-csi/external-snapshotter/pull/347), [@xing-yang](https://github.com/xing-yang))
- Use a separate API server client for leader election. ([#344](https://github.com/kubernetes-csi/external-snapshotter/pull/344), [@RaunakShah](https://github.com/RaunakShah))
- Recover from intermittent errors in VolumeSnapshot object ([#335](https://github.com/kubernetes-csi/external-snapshotter/pull/335), [@saikat-royc](https://github.com/saikat-royc))
- Updates Error field in the snapshot status based on the status of the content. ([#284](https://github.com/kubernetes-csi/external-snapshotter/pull/284), [@xing-yang](https://github.com/xing-yang))
- Fixes the requeue logic in the snapshot controller. ([#317](https://github.com/kubernetes-csi/external-snapshotter/pull/317), [@xing-yang](https://github.com/xing-yang))
- Fixes issue #290. Disallow a pre-provisioned VolumeSnapshot pointing to a dynamically created VolumeSnapshotContent. ([#294](https://github.com/kubernetes-csi/external-snapshotter/pull/294), [@yuxiangqian](https://github.com/yuxiangqian))
- Fixes issue #291. Verify VolumeSnapshot and VolumeSnapshotContent are bi-directional bound before initializing a deletion on a VolumeSnapshotContent which the to-be-deleted VolumeSnapshot points to. ([#294](https://github.com/kubernetes-csi/external-snapshotter/pull/294), [@yuxiangqian](https://github.com/yuxiangqian))
- Fixes issue #292. Allow deletion of a VolumeSnapshot when the VolumeSnapshotContent's DeletionPolicy has been updated from Delete to Retain. ([#294](https://github.com/kubernetes-csi/external-snapshotter/pull/294), [@yuxiangqian](https://github.com/yuxiangqian))

### CSI External-Snapshotter Sidecar

- Allows the sidecar to delete volume snapshots if the volume snapshot class is not found. ([#287](https://github.com/kubernetes-csi/external-snapshotter/pull/287), [@huffmanca](https://github.com/huffmanca))
- This fixes the re-queue logic so a failed snapshot operation will be added back to a rate limited queue for retries. ([#230](https://github.com/kubernetes-csi/external-snapshotter/pull/230), [@xing-yang](https://github.com/xing-yang))

### Other Notable Changes

### Snapshot Controller

- build with Go 1.15 ([#358](https://github.com/kubernetes-csi/external-snapshotter/pull/358), [@pohly](https://github.com/pohly))
- Updates kubernetes dependencies to v1.19.0. ([#372](https://github.com/kubernetes-csi/external-snapshotter/pull/372), [@humblec](https://github.com/humblec))
- Publishing of images on k8s.gcr.io ([#319](https://github.com/kubernetes-csi/external-snapshotter/pull/319), [@pohly](https://github.com/pohly))
- Add event for snapshotting in progress ([#289](https://github.com/kubernetes-csi/external-snapshotter/pull/289), [@zhucan](https://github.com/zhucan))

### CSI External-Snapshotter Sidecar

- build with Go 1.15 ([#358](https://github.com/kubernetes-csi/external-snapshotter/pull/358), [@pohly](https://github.com/pohly))
- Updates kubernetes dependencies to v1.19.0. ([#372](https://github.com/kubernetes-csi/external-snapshotter/pull/372), [@humblec](https://github.com/humblec))
- Publishing of images on k8s.gcr.io ([#319](https://github.com/kubernetes-csi/external-snapshotter/pull/319), [@pohly](https://github.com/pohly))
11 changes: 6 additions & 5 deletions README.md
Expand Up @@ -30,13 +30,9 @@ This information reflects the head of this branch.

| Compatible with CSI Version | Container Image | [Min K8s Version](https://kubernetes-csi.github.io/docs/kubernetes-compatibility.html#minimum-version) | Snapshot CRD version |
| ------------------------------------------------------------------------------------------ | ----------------------------| --------------- | -------------------- |
| [CSI Spec v1.0.0](https://github.com/container-storage-interface/spec/releases/tag/v1.0.0) | k8s.gcr.io/sig-storage/csi-snapshotter | 1.17 | v1beta1 |
| [CSI Spec v1.0.0](https://github.com/container-storage-interface/spec/releases/tag/v1.0.0) | k8s.gcr.io/sig-storage/snapshot-controller | 1.17 | v1beta1 |
| [CSI Spec v1.1.0](https://github.com/container-storage-interface/spec/releases/tag/v1.1.0) | k8s.gcr.io/sig-storage/csi-snapshotter | 1.17 | v1beta1 |
| [CSI Spec v1.1.0](https://github.com/container-storage-interface/spec/releases/tag/v1.1.0) | k8s.gcr.io/sig-storage/snapshot-controller | 1.17 | v1beta1 |
| [CSI Spec v1.2.0](https://github.com/container-storage-interface/spec/releases/tag/v1.2.0) | k8s.gcr.io/sig-storage/csi-snapshotter | 1.17 | v1beta1 |
| [CSI Spec v1.2.0](https://github.com/container-storage-interface/spec/releases/tag/v1.2.0) | k8s.gcr.io/sig-storage/snapshot-controller | 1.17 | v1beta1 |

| [CSI Spec v1.2.0](https://github.com/container-storage-interface/spec/releases/tag/v1.2.0) | k8s.gcr.io/sig-storage/validation-webhook | 1.17 | v1beta1 |

## Feature Status

Expand Down Expand Up @@ -68,6 +64,8 @@ Therefore, it is strongly recommended that Kubernetes distributors bundle and de

If your Kubernetes distribution does not bundle the snapshot controller, you may manually install these components by executing the following steps. Note that the snapshot controller YAML files in the git repository deploy into the default namespace for system testing purposes. For general use, update the snapshot controller YAMLs with an appropriate namespace prior to installing. For example, on a Vanilla Kubernetes cluster update the namespace from 'default' to 'kube-system' prior to issuing the kubectl create command.

There is a new validating webhook server which provides tightened validation on snapshot objects. The cluster admin or Kubernetes distribution admin should install the webhook alongside the snapshot controllers and CRDs. More details [below](#validating-webhook).

Install Snapshot Beta CRDs:
* kubectl create -f client/config/crd
* https://github.com/kubernetes-csi/external-snapshotter/tree/master/client/config/crd
Expand Down Expand Up @@ -171,6 +169,9 @@ go test -timeout 30s github.com/kubernetes-csi/external-snapshotter/pkg/common-
go test -timeout 30s github.com/kubernetes-csi/external-snapshotter/pkg/sidecar-controller
```

## CRDs and Client Library

Volume snapshot APIs and client library are now in a separate sub-module: `github.com/kubernetes-csi/external-snapshotter/client/v2`.

## Dependency Management

Expand Down

0 comments on commit f1fc0fe

Please sign in to comment.