You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: keps/sig-storage/596-csi-inline-volumes/README.md
+38-21Lines changed: 38 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -52,12 +52,12 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
52
52
-[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)
53
53
-[x] (R) Minimum Two Week Window for GA e2e tests to prove flake free
54
54
-[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)
56
56
-[x] (R) Production readiness review completed
57
57
-[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
CSI driver vendors that support inline volumes will be responsible for secure handling of volumes.
136
136
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.
138
138
139
139
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).
140
140
@@ -377,11 +377,11 @@ We expect no non-infra related flakes in the last month as a GA graduation crite
377
377
- [x] Fix for [#89290 - CSI Inline volume panic when calling applyFSGroup](https://github.com/kubernetes/kubernetes/issues/89290)
378
378
- [x] Fix for [#79980 - CSI volume reconstruction](https://github.com/kubernetes/kubernetes/issues/79980)
379
379
- [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
385
385
386
386
387
387
## Production Readiness Review Questionnaire
@@ -451,13 +451,28 @@ We expect no non-infra related flakes in the last month as a GA graduation crite
451
451
452
452
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
453
453
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).
461
476
462
477
###### Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.?
Compared to CSI persistent volumes, there should be no increase in the amount of time
559
574
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,
561
576
since an external CSI driver is responsible for providing the actual volume.
562
577
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.
563
578
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
0 commit comments