Skip to content

Commit c896ea5

Browse files
committed
KEP-596: Update graduation criteria and test results
1 parent ab785f1 commit c896ea5

File tree

2 files changed

+39
-22
lines changed

2 files changed

+39
-22
lines changed

keps/sig-storage/596-csi-inline-volumes/README.md

Lines changed: 38 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
5252
- [x] (R) Ensure GA e2e tests for meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
5353
- [x] (R) Minimum Two Week Window for GA e2e tests to prove flake free
5454
- [x] (R) Graduation criteria is in place
55-
- [ ] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
55+
- [x] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
5656
- [x] (R) Production readiness review completed
5757
- [x] (R) Production readiness review approved
58-
- [ ] "Implementation History" section is up-to-date for milestone
59-
- [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
60-
- [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
58+
- [x] "Implementation History" section is up-to-date for milestone
59+
- [x] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
60+
- [x] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
6161

6262
[kubernetes.io]: https://kubernetes.io/
6363
[kubernetes/enhancements]: https://git.k8s.io/enhancements
@@ -134,7 +134,7 @@ spec:
134134
135135
CSI driver vendors that support inline volumes will be responsible for secure handling of volumes.
136136
137-
For example, `csi-driver-nfs` allows anybody who can create a pod to mount any NFS volume into that pod, when the cluster admin deploys the driver with csi driver instance allowing ephemeral use. This option is not on by default, but may be surprising to some admins that this allows mounting of any NFS volume and could be unsafe without additional authorization checks.
137+
For example, `csi-driver-nfs` allows anybody who can create a pod to mount any NFS volume into that pod, when the cluster admin deploys the driver with csi driver instance allowing ephemeral use. This may be surprising to some admins that this allows mounting of any NFS volume and could be unsafe without additional authorization checks.
138138

139139
Downstream distributions and cluster admins that wish to exercise fine-grained control over which CSI drivers are allowed to use ephemeral inline volumes within a pod spec should do so with a 3rd party pod admission plugin or webhook (not part of this KEP).
140140

@@ -377,11 +377,11 @@ We expect no non-infra related flakes in the last month as a GA graduation crite
377377
- [x] Fix for [#89290 - CSI Inline volume panic when calling applyFSGroup](https://github.com/kubernetes/kubernetes/issues/89290)
378378
- [x] Fix for [#79980 - CSI volume reconstruction](https://github.com/kubernetes/kubernetes/issues/79980)
379379
- [x] Updated documentation as described in [Security Considerations](#security-considerations) and [Read-only volumes](#read-only-volumes)
380-
- [ ] Upgrade / downgrade manual testing, document results in the [upgrade / rollback section](#rollout-upgrade-and-rollback-planning).
381-
- [ ] Provide measurements for the [Scalability section](#scalability) (time taken to start a pod)
382-
- [ ] Ensure our sponsored [NFS](https://github.com/kubernetes-csi/csi-driver-nfs) and [SMB](https://github.com/kubernetes-csi/csi-driver-smb) CSI drivers align with the new guidance in [Security Considerations](#security-considerations)
383-
- [ ] Conformance tests implemented / promoted
384-
- [ ] Feature flag set to GA
380+
- [x] Upgrade / downgrade manual testing, document results in the [upgrade / rollback section](#rollout-upgrade-and-rollback-planning).
381+
- [x] Provide measurements for the [Scalability section](#scalability) (time taken to start a pod)
382+
- [x] Ensure our sponsored [NFS](https://github.com/kubernetes-csi/csi-driver-nfs) and [SMB](https://github.com/kubernetes-csi/csi-driver-smb) CSI drivers align with the new guidance in [Security Considerations](#security-considerations)
383+
- [x] Conformance tests implemented
384+
- [x] Feature flag set to GA
385385

386386

387387
## Production Readiness Review Questionnaire
@@ -451,13 +451,28 @@ We expect no non-infra related flakes in the last month as a GA graduation crite
451451

452452
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
453453

454-
TODO: To be documented as part of manual GA testing.
455-
456-
<!--
457-
Describe manual testing that was done and the outcomes.
458-
Longer term, we may want to require automated upgrade/rollback tests, but we
459-
are missing a bunch of machinery and tooling and can't do that now.
460-
-->
454+
Test Scenario:
455+
456+
1) Create single node kubeadm cluster on 1.15 with CSIInlineVolume feature flag disabled.
457+
2) Create 3 running pods (1 with attached PV, 1 with attached secret, 1 with no storage).
458+
3) Confirm that a pod with inline volume can not start while feature flag is disabled.
459+
4) Upgrade cluster to 1.16 with feature flag enabled.
460+
5) Confirm that the running pods from step 2 are running successfully after upgrade.
461+
6) Confirm that a pod with inline volume can start successfully after upgrade.
462+
7) Rollback cluster to 1.15 with feature flag disabled.
463+
8) Confirm that the running pods from step 2 are running successfully after downgrade.
464+
9) Confirm that a pod with inline volume can not (re)start after downgrade.
465+
10) Confirm that new pods can be started after downgrade (same as step 2).
466+
11) Upgrade cluster to 1.16 again with feature flag enabled.
467+
12) Confirm that the running pods from step 10 are running successfully after upgrade.
468+
13) Confirm that a pod with inline volume can start successfully after upgrade.
469+
470+
This scenario tests the upgrade->downgrade->upgrade path and validates the following assertions derived from the `How can a rollout or rollback fail? Can it impact already running workloads?` section of this PRR:
471+
472+
- Upgrade does not impact pods that are already running without this feature.
473+
- Workloads requiring CSI Inline Volumes can use the feature via pod spec update after upgrade.
474+
- Rollback does not impact pods that are already running without this feature.
475+
- Starting new workloads using this feature fails after rollback (with feature flag disabled).
461476

462477
###### Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.?
463478

@@ -557,13 +572,15 @@ CSI NodePublishVolume requests:
557572

558573
Compared to CSI persistent volumes, there should be no increase in the amount of time
559574
taken to mount / unmount, as there will be fewer CSI calls required for inline volumes.
560-
Compared to Secrets and ConfigMaps, inline CSI volumes will be slower mount / unmount,
575+
Compared to Secrets and ConfigMaps, inline CSI volumes may be slower mount / unmount,
561576
since an external CSI driver is responsible for providing the actual volume.
562577
Note that mount time is in the critical path for [pod startup latency](https://github.com/kubernetes/community/blob/1181fb0266a01d1dfd170ff437817eb7de24b624/sig-scalability/slos/pod_startup_latency.md) and the choice to use CSI inline volumes may affect the SLI/SLO, since this is still a type of volume that needs to be mounted.
563578

564-
TODO: Provide a measurements showing the time it takes to start a pod with 5 secrets,
565-
compared to mounting those secrets via a CSI inline volume. This will be driver
566-
dependent, but it would be useful to set some baseline expectations.
579+
However, pod startup latency on kubernetes 1.25 shows similar results between
580+
a pod mounting 5 secrets and a pod mounting 5 CSI inline volumes using the
581+
[CSI Hostpath Driver](https://github.com/kubernetes-csi/csi-driver-host-path).
582+
In both cases, the pod takes 3-4 seconds to transition from "PodScheduled" to
583+
"Ready" on a single node cluster. Results may vary depending on the CSI driver.
567584

568585
###### Will enabling / using this feature result in non-negligible increase of resource usage (CPU, RAM, disk, IO, ...) in any components?
569586

keps/sig-storage/596-csi-inline-volumes/kep.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ authors:
77
owning-sig: sig-storage
88
participating-sigs:
99
- sig-storage
10-
status: implementable
10+
status: implemented
1111
creation-date: 2019-01-22
1212
reviewers:
1313
- "@msau42"

0 commit comments

Comments
 (0)