Skip to content

Commit 50fcb98

Browse files
committed
docs: update WF (GWAPI CRD lifecycle mgmt)
1 parent ca27c59 commit 50fcb98

File tree

1 file changed

+30
-16
lines changed

1 file changed

+30
-16
lines changed

enhancements/ingress/gateway-api-crd-life-cycle-management.md

+30-16
Original file line numberDiff line numberDiff line change
@@ -173,22 +173,36 @@ goes wrong.
173173

174174
### Workflow Description
175175

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.
192206
193207
### API Extensions
194208

0 commit comments

Comments
 (0)