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: enhancements/storage/csi-migration.md
+11-9Lines changed: 11 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,23 +36,25 @@ In order to avoid surprises once the migration is enabled by default, we want to
36
36
37
37
## Goals
38
38
39
-
For Tech Preview, we want to introduce a mechanism to switch certain feature gates on and off accross OCP components.
39
+
For Tech Preview, we want to introduce a mechanism to allow switching CSI migration feature flags on and off accross OCP components.
40
40
41
-
Once CSI migration is enabled by default in upstream, it will not be possible to disable it again. Therefore, given mechanism shall be disabled in OCP once CSI migration becomes GA in upstream.
41
+
Due to upstream requirements, it is important that this mechanism allows for enabling the feature flags on control-plane components **before** the kubelet, and vice-versa.
42
+
43
+
Once CSI migration is enabled by default in upstream, it will not be possible to disable it again. Therefore, such mechanism shall be disabled in OCP once CSI migration becomes GA in upstream.
42
44
43
45
## Non-Goals
44
46
45
-
* Control the ordering in which OCP components will be upgraded or downgraded.
47
+
* Control the ordering in which OCP components will be upgraded or downgraded. We will leave this responsability to the user.
46
48
* Install or remove the CSI driver as the migration is enabled or disabled.
47
49
48
50
## Proposal
49
51
50
-
The CSI migration feature is hidden behind feature gates in Kubernetes. For instance, to enable the migration of a in-tree AWS EBS volume to its counterpart CSI driver, the cluster administrator should enable these two feature gates:
52
+
The CSI migration feature is hidden behind feature gates in Kubernetes. For instance, to enable the migration of a in-tree AWS EBS volume to its counterpart CSI driver, the cluster administrator should turn on these two feature gates:
51
53
52
54
* CSIMigration
53
55
* CSIMigrationAWS
54
56
55
-
CSI Migration requires that feature flags are enabled and disabled in a [specific order](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/storage/csi-migration.md#upgradedowngrade-migrateunmigrate-scenarios). In summary:
57
+
Nevertheless, what makes things more complicated is the strict order in which those flags need to be enabled across components. In other words, CSI Migration requires that feature flags are enabled or disabled in a [specific order](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/storage/csi-migration.md#upgradedowngrade-migrateunmigrate-scenarios). In summary:
56
58
57
59
* When the CSI migration is **enabled**, events should happen in this order:
58
60
1. Enable the feature gate in all control-plane components.
@@ -62,7 +64,7 @@ CSI Migration requires that feature flags are enabled and disabled in a [specifi
62
64
1. One-by-one, drain the nodes and start the kubelet with the feature gate disabled.
63
65
2. Once that's done, disable the feature gate in all control-plane components.
64
66
65
-
In order to enable and disable these feature gates in OCP, we propose two different approaches to be used at different times during the feature lifecycle.
67
+
In order to achieve that, we propose two different approaches to be used at different times during the feature lifecycle.
66
68
67
69
The first approach is intended to be used once CSI migration is Tech Preview in OCP. The other approach should be used to once we graduate CSI migration to GA.
68
70
@@ -74,7 +76,7 @@ With that in mind, we propose to:
74
76
75
77
1. Create two [new FeatureSets](https://github.com/openshift/api/blob/master/config/v1/types_feature.go#L25-L43) to support CSI migration: `CSIMigrationNode` and `CSIMigrationControlPlane`.
76
78
* Both *FeatureSets* contain the same feature gates: `CSIMigration`, `CSIMIgrationAWS`, `CSIMigrationGCE`, `CSIMigrationAzureDisk`, `CSIMigrationAzureFile`, `CSIMigrationvSphere`, `CSIMigrationOpenStack`.
77
-
* However, only control-plane operators will reacto to the `CSIMigrationControlPlane`*FeatureSet*. The machine-config-operator (MCO) will **ignore** it.
79
+
* However, only control-plane operators will react to the `CSIMigrationControlPlane`*FeatureSet*. The machine-config-operator (MCO) will **ignore** it.
78
80
* On the other hand, only MCO will react to the `CSIMigrationNode`*FeatureSet*. Control-plane operators will ignore it.
79
81
2. To enable CSI Migration for any in-tree plugin, the cluster administrator should:
80
82
* Add the `CSIMigrationControlPlane`*FeatureSet* to the `featuregates/cluster` object:
@@ -101,7 +103,7 @@ With that in mind, we propose to:
101
103
102
104
Once CSI migration reaches GA in upstream, the associated feature gates will be enabled by default and the features will not be optional anymore. As a result, CSI migration will be enabled by default in OCP as wel, and there will not be an option to disable it.
103
105
104
-
In addition that, the *FeatureSets* created to handle the Tech Preview feature will no longer be operatinal. In that case, those *FeatureSets* should be ignored by operators.
106
+
In addition that, the *FeatureSets* created to handle the Tech Preview feature will no longer be operational because the feature flags will be enabled by default. In that case, those *FeatureSets* should be ignored by operators.
105
107
106
108
As for the required ordering described above, the [upgrade order](https://github.com/openshift/cluster-version-operator/blob/master/docs/dev/upgrades.md#generalized-ordering) performed by CVO during a cluster upgrade will take care of applying the feature gates in the correct order.
107
109
@@ -133,7 +135,7 @@ Although this approach does what we need, it has some drawbacks:
133
135
134
136
#### E2E jobs
135
137
136
-
We want to create E2E jobs for all migrated plugins.
138
+
We want E2E jobs for all migrated plugins ready at **Tech Preview** time.
0 commit comments