|
31 | 31 | ## Summary
|
32 | 32 |
|
33 | 33 | This document presents a detailed design for migrating in-tree storage plugins
|
34 |
| -to CSI. This will be an opt-in feature turned on at cluster creation time that |
| 34 | +to CSI. This will be an opt-in feature turned on at cluster start time that |
35 | 35 | will redirect in-tree plugin operations to a corresponding CSI Driver.
|
36 | 36 |
|
37 | 37 | ### Glossary
|
@@ -86,8 +86,9 @@ internal APIs.
|
86 | 86 | * Design a mechanism for deploying CSI drivers on all systems so that users can
|
87 | 87 | use the current storage system the same way they do today without having to do
|
88 | 88 | extra set up.
|
89 |
| -* Implementing CSI Drivers for existing plugins |
90 |
| -* Define set of volume plugins that should be migrated to CSI |
| 89 | +* Implementing CSI Drivers for existing plugins. |
| 90 | +* Define set of volume plugins that should be migrated to CSI. |
| 91 | +* Implement CSI specific features like volume snapshot for in-tree volume plugins. |
91 | 92 |
|
92 | 93 | ## Proposal
|
93 | 94 |
|
@@ -135,7 +136,7 @@ The above is done by checking that no in-tree plugin code is emitting metrics
|
135 | 136 | when migration is on. We will also confirm that metrics are being emitted in
|
136 | 137 | general by confirming the existence of an indicator metric.
|
137 | 138 |
|
138 |
| -Passing these tests in Public CI is the main graduation criterea for the |
| 139 | +Passing these tests in Public CI is the main graduation criteria for the |
139 | 140 | `CSIMigration{provider}` flag to Beta.
|
140 | 141 |
|
141 | 142 | ### Upgrade/Downgrade/Skew Testing
|
@@ -198,7 +199,7 @@ you need any help or guidance.
|
198 | 199 | - Please refer to this design doc on the [Step to enable the feature](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/storage/csi-migration.md#upgradedowngrade-migrateunmigrate-scenarios)
|
199 | 200 |
|
200 | 201 | * **Does enabling the feature change any default behavior?**
|
201 |
| - Yes and No. If only CSIMigration feature flag is enabled, nothing will change on the cluster behavior. However, if CSIMigration && CSIMigration{cloud-provider} are both enabled, the behavior will change. The in-tree volume plugin that the cloud-provider use will be redirect to use the corresponding CSI driver. But from a user perspective, nothing will be noticed. |
| 202 | + Yes and No. If only `CSIMigration` feature flag is enabled, nothing will change on the cluster behavior. However, if `CSIMigration` && `CSIMigration{cloud-provider}` are both enabled, the behavior will change. The in-tree volume plugin that the cloud-provider use will be redirect to use the corresponding CSI driver. But from a user perspective, nothing will be noticed. |
202 | 203 |
|
203 | 204 | * **Can the feature be disabled once it has been enabled (i.e. can we roll back
|
204 | 205 | the enablement)?**
|
@@ -228,7 +229,7 @@ Specifically, for each in-tree plugin corresponding CSI drivers, it will have
|
228 | 229 | ### Rollout, Upgrade and Rollback Planning
|
229 | 230 |
|
230 | 231 | * **How can a rollout fail? Can it impact already running workloads?**
|
231 |
| - - The rollout can fail if the ordering of CSIMigration{cloud-provider} flag was wrongly enabled on kubelet and kube-controller-manager. Specifically, if on the node side kubelet enables the flag and control-plane side the flag is not enabled, then the volume will not be able to be mounted successfully. |
| 232 | + - The rollout can fail if the ordering of `CSIMigration{cloud-provider}` flag was wrongly enabled on kubelet and kube-controller-manager. Specifically, if on the node side kubelet enables the flag and control-plane side the flag is not enabled, then the volume will not be able to be mounted successfully. |
232 | 233 | - For workloads that running on nodes have not enable CSI migration, those pods will not be impacted.
|
233 | 234 | - For any pod that is being deleted by node drain before turning on migration and created on new node that has CSI migration turned on, the volume mount will fail and pod will not come up correctly.
|
234 | 235 | - Additionally, CSI Migration has a strong dependency on CSI drivers. So if the in-tree corresponding CSI driver is not properly installed, any volume related operation could fail.
|
@@ -320,6 +321,7 @@ Node side CSI operation metrics. It will be implemented in the GA phase.
|
320 | 321 | CSI migration specific fields:
|
321 | 322 | - The size of PV will increase with the new annotation `volume.beta.kubernetes.io/migrated-to`.
|
322 | 323 | - For existing in-line volumes, there will be a new field under `VolumeAttachment.Spec.Source.VolumeAttachmentSource.InlineVolumeSpec` that will be populated if in-line volumes of migrated in-tree plugin is used.
|
| 324 | + - For CSINode object that maps to a node which installs CSIDriver, if CSI Migration is turned on, a new annotation will be added `storage.alpha.kubernetes.io/migrated-plugins` |
323 | 325 |
|
324 | 326 | * **Will enabling / using this feature result in increasing time taken by any
|
325 | 327 | operations covered by [existing SLIs/SLOs]?**
|
|
0 commit comments