Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KEP-625: update CSI Migration KEP on test plans #3342

Merged
merged 1 commit into from
Jun 7, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions keps/sig-storage/625-csi-migration/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@
- [Alpha -> Beta](#alpha---beta)
- [Beta -> GA](#beta---ga)
- [Test Plan](#test-plan)
- [Prerequisite testing updates](#prerequisite-testing-updates)
- [Unit tests](#unit-tests)
- [Integration/e2e tests](#integratione2e-tests)
- [Per-driver migration testing](#per-driver-migration-testing)
- [Upgrade/Downgrade/Skew Testing](#upgradedowngradeskew-testing)
- [Production Readiness Review Questionnaire](#production-readiness-review-questionnaire)
Expand Down Expand Up @@ -114,6 +117,63 @@ The detailed design was originally implemented as a [design proposal](https://gi

## Test Plan

[x] I/we understand the owners of the involved components may require updates to
existing tests to make this code solid enough prior to committing the changes necessary
to implement this enhancement.

### Prerequisite testing updates

To enable CSI Migration, the stability of CSI driver need to be ensured as a pre-requisite.
Kubernetes sig-storage team created the CSI driver [e2e test suite](https://github.com/kubernetes/kubernetes/tree/master/test/e2e/storage) framework to
allow each storage provider to run their driver against these tests to ensure functionality of the driver.

In addition, each storage provider should also have their own testing to ensure feature parity between
the in-tree plugin and the corresponding CSI driver. This is done on a per-driver basis.

### Unit tests

- `k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib/`:
- 2022/06/06 - k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib/translate_test.go
- `k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib/plugins`:
- 2022/06/06 - k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib/plugins/aws_ebs_test.go
- 2022/06/06 - k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib/plugins/azure_disk_test.go
- 2022/06/06 - k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib/plugins/azure_file_test.go
- 2022/06/06 - k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib/plugins/gce_pd_test.go
- 2022/06/06 - k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib/plugins/in_tree_volume_test.go
- 2022/06/06 - k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib/plugins/openstack_cinder_test.go
- 2022/06/06 - k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib/plugins/portworx_test.go
- 2022/06/06 - k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib/plugins/rbd_test.go
- 2022/06/06 - k8s.io/kubernetes/staging/src/k8s.io/csi-translation-lib/plugins/vsphere_volume_test.go
- `k8s.io/kubernetes/pkg/volume/csimigration/`
- 2022/06/06 - k8s.io/kubernetes/pkg/volume/csimigration/plugin_manager_test.go
- `k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodevolumelimits/csi.go`
- 2022/06/06 - k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodevolumelimits/csi_test.go
- `k8s.io/kubernetes/pkg/volume/csi`
- 2022/06/06 - k8s.io/kubernetes/pkg/volume/csi/csi_attacher_test.go
- 2022/06/06 - k8s.io/kubernetes/pkg/volume/csi/csi_mounter_test.go
- 2022/06/06 - k8s.io/kubernetes/pkg/volume/csi/csi_plugin_test.go
- `pkg/controller/volume/persistentvolume/`
- 2022/06/06 - pkg/controller/volume/persistentvolume/framework_test.go
- 2022/06/06 - pkg/controller/volume/persistentvolume/provision_test.go
- 2022/06/06 - pkg/controller/volume/persistentvolume/pv_controller_test.go
- `k8s.io/kubernetes/pkg/volume/csi/nodeinfomanager/`
- 2022/06/06 - k8s.io/kubernetes/pkg/volume/csi/nodeinfomanager/nodeinfomanager_test.go
- `k8s.io/kubernetes/pkg/controller/volume/attachdetach/`
- 2022/06/06 - k8s.io/kubernetes/pkg/controller/volume/attachdetach/attach_detach_controller_test.go
- `sigs.k8s.io/sig-storage-lib-external-provisioner/v8/controller`
- 2022/06/06 - sigs.k8s.io/sig-storage-lib-external-provisioner/v8/controller/controller_test.go
- `github.com/kubernetes-csi/external-provisioner/pkg/controller/`
- 2022/06/06 - github.com/kubernetes-csi/external-provisioner/pkg/controller/controller_test.go

### Integration/e2e tests

- GCE-PD CSI Driver: [testgrid link](https://testgrid.k8s.io/provider-gcp-compute-persistent-disk-csi-driver#Migration%20Kubernetes%20Master%20Driver%20Latest)
- AWS EBS CSI Driver: [testgrid link](https://testgrid.k8s.io/provider-aws-ebs-csi-driver#ci-migration-test)
- AzureDisk CSI Driver: [testgrid link](https://testgrid.k8s.io/provider-azure-azuredisk-csi-driver#pr-azuredisk-csi-driver-e2e-migration)
- AzureDisk CSI Driver on Windows: [testgrid link](https://testgrid.k8s.io/provider-azure-azuredisk-csi-driver#pr-azuredisk-csi-driver-e2e-migration-windows)
- AzureFile CSI Driver: [testgrid link](https://testgrid.k8s.io/provider-azure-azurefile-csi-driver#pr-azurefile-csi-driver-e2e-migration)
- AzureFile CSI Driver on Windows: [testgrid link](https://testgrid.k8s.io/provider-azure-azurefile-csi-driver#pr-azurefile-csi-driver-e2e-migration-windows)

### Per-driver migration testing

We will require *each* plugin/driver provider to set up public CI to run all
Expand Down