@@ -173,22 +173,36 @@ goes wrong.
173
173
174
174
### Workflow Description
175
175
176
- > Explain how the user will use the feature. Be detailed and explicit. Describe
177
- > all of the actors, their roles, and the APIs or interfaces involved. Define a
178
- > starting state and then list the steps that the user would need to go through to
179
- > trigger the feature described in the enhancement. Optionally add a
180
- > [ mermaid] ( https://github.com/mermaid-js/mermaid#readme ) sequence diagram.
181
- >
182
- > Use sub-sections to explain variations, such as for error handling,
183
- > failure recovery, or alternative outcomes.
184
-
185
- ** cluster-admin** is a human user responsible for managing a cluster.
186
-
187
- 1 . Start with a 4.18 cluster with conflicting CRDs.
188
- 2 . Upgrade to 4.19.
189
- 3 . Check clusteroperators, see a conflict.
190
- 4 . Run some ` oc ` command.
191
- 5 . Check the ingress clusteroperator again. Now everything should be dandy.
176
+ The workflow in this case is an upgrade process. From the _ user_ perspective the
177
+ CRDs will be fully managed via the platform from here on out, so they only need
178
+ to interface with the upgrade workflow on the condition that their cluster had
179
+ previously installed Gateway API CRDs. The workflow consists of the pre-upgrade
180
+ checks and the post-upgrade checks.
181
+
182
+ ### Pre-upgrade
183
+
184
+ 1 . In the CIO a pre-upgrade check verifies CRD presence
185
+ * IF the CRDs are present
186
+ * an admingate is created requiring acknowledgement of CRD succession
187
+ * UNTIL the schema matches an exact versions we set ` Upgradable=false `
188
+ 2 . Once CRDs are not present OR an exact match we set ` Upgradable=true `
189
+
190
+ > ** Note** : A ** cluster-admin** is required for these steps.
191
+
192
+ ### Post-upgrade
193
+
194
+ 1 . The CIO is hereafter deployed alongside its CRD protection VAP
195
+ 2 . The CIO constantly checks for the presence of the CRDs
196
+ * IF the CRDs are present
197
+ * UNTIL the CRD schema matches what is expected ` Degraded ` status is set
198
+ * ELSE the CRDs are deployed by the CIO
199
+
200
+ > ** Note** : If we reach ` Degraded ` its expected that some tampering has
201
+ > occurred (e.g. a cluster-admin has for some reason destroyed our VAP and
202
+ > manually changed the CRDs). For the initial release we will simply require
203
+ > manual intervention (support) to fix this as we can't guess too well at the
204
+ > original intent behind the change. In future iterations we may consider more
205
+ > solutions if this becomes a common problem for some reason.
192
206
193
207
### API Extensions
194
208
0 commit comments