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 16, 2020
1 parent 60202d2 commit 21147e8
Show file tree
Hide file tree
Showing 6 changed files with 83 additions and 14 deletions.
66 changes: 66 additions & 0 deletions CHANGELOG/CHANGELOG-3.0.md
@@ -0,0 +1,66 @@
# Release notes for v3.0.0

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

# Changelog since v2.1.0

## Breaking Changes

- Update volume snapshot APIs and client library to v3. Volume snapshot APIs and client library are in a separate sub-module: `github.com/kubernetes-csi/external-snapshotter/client/v3`. ([#373](https://github.com/kubernetes-csi/external-snapshotter/pull/373), [@xing-yang](https://github.com/xing-yang))

- Added Go Module for APIs and Client. Volume snapshot APIs and client library are now in a separate sub-module. ([#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

- 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))

### 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))
4 changes: 2 additions & 2 deletions Makefile
Expand Up @@ -12,8 +12,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.

.PHONY: all snapshot-controller csi-snapshotter validation-webhook clean test
.PHONY: all snapshot-controller csi-snapshotter snapshot-validation-webhook clean test

CMDS=snapshot-controller csi-snapshotter validation-webhook
CMDS=snapshot-controller csi-snapshotter snapshot-validation-webhook
all: build
include release-tools/build.make
13 changes: 8 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/snapshot-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,11 @@ 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/v3`.

Use the command `go get -u github.com/kubernetes-csi/external-snapshotter/client/v3@v3.0.0` to get the client library.

## Dependency Management

Expand Down
7 changes: 7 additions & 0 deletions cmd/snapshot-validation-webhook/Dockerfile
@@ -0,0 +1,7 @@
FROM gcr.io/distroless/base:latest
LABEL maintainers="Kubernetes Authors"
LABEL description="Snapshot Validation Webhook"
ARG binary=./bin/snapshot-validation-webhook

COPY ${binary} snapshot-validation-webhook
ENTRYPOINT ["/snapshot-validation-webhook"]
File renamed without changes.
7 changes: 0 additions & 7 deletions cmd/validation-webhook/Dockerfile

This file was deleted.

0 comments on commit 21147e8

Please sign in to comment.