docs: Document CustomNoUpgrade featureSet in the feature gates user guide#112545
Conversation
…uide The "Enabling features using feature gates" user guide currently only documents TechPreviewNoUpgrade. CustomNoUpgrade — the only way to enable individual feature gates without the full TechPreview suite — has no user-facing guidance, no correct syntax examples, and no warning about its irreversible nature. Changes: - Add CustomNoUpgrade description and WARNING to the "about" module - Add new procedure module for enabling individual feature gates via oc patch with correct []string syntax - Add cross-references from CLI and web console modules - Include the new module in the assembly - Replace the 2019 "do not document" comment with a historical note explaining why documentation is now appropriate (KCS articles, release notes, OCPSTRAT-2485 CVO manifest gating, ecosystem usage) Tested on OCP 4.22.0-rc.4 (AWS). Related: OCPSTRAT-2485 Co-authored-by: Cursor <cursoragent@cursor.com>
|
🤖 Tue Jun 02 02:41:15 - Prow CI generated the docs preview: https://112545--ocpdocs-pr.netlify.app/openshift-enterprise/latest/nodes/clusters/nodes-cluster-enabling-features.html |
| + | ||
| where `<feature_gate_name>` is the name of the feature gate you want to enable, for example `ClusterAPIMachineManagement`. | ||
| + | ||
| [NOTE] |
There was a problem hiding this comment.
🤖 [error] AsciiDocDITA.TaskStep: Content other than a single list cannot be mapped to DITA steps.
| ---- | ||
| + | ||
| -- | ||
| <1> Must be set to `CustomNoUpgrade` to use the `customNoUpgrade` field. |
There was a problem hiding this comment.
🤖 [error] AsciiDocDITA.CalloutList: Callouts are not supported in DITA.
|
|
||
| `spec.featureSet`:: Specifies the feature set that you want to enable: | ||
| * `TechPreviewNoUpgrade` enables specific Technology Preview features. | ||
| * `CustomNoUpgrade` enables granular control over individual feature gates. See xref:../../nodes/clusters/nodes-cluster-enabling-features.adoc#nodes-cluster-enabling-features-cli-custom_nodes-cluster-enabling[Enabling individual feature gates using the CustomNoUpgrade feature set]. |
There was a problem hiding this comment.
🤖 [error] OpenShiftAsciiDoc.NoXrefInModules: Do not include xrefs in modules, only assemblies (exception: release notes modules).
|
|
||
| `spec.featureSet`:: Specifies the feature set that you want to enable: | ||
| * `TechPreviewNoUpgrade` enables specific Technology Preview features. | ||
| * `CustomNoUpgrade` enables granular control over individual feature gates. See xref:../../nodes/clusters/nodes-cluster-enabling-features.adoc#nodes-cluster-enabling-features-cli-custom_nodes-cluster-enabling[Enabling individual feature gates using the CustomNoUpgrade feature set]. |
There was a problem hiding this comment.
🤖 [error] OpenShiftAsciiDoc.NoXrefInModules: Do not include xrefs in modules, only assemblies (exception: release notes modules).
- Remove xref cross-references from cli.adoc and console.adoc modules (OpenShiftAsciiDoc.NoXrefInModules) and move to assembly Additional resources section - Merge NOTE into paragraph in cli-custom.adoc step 1 to fix AsciiDocDITA.TaskStep (mixed content in procedure steps) - Replace callout markers with description list in cli-custom.adoc to fix AsciiDocDITA.CalloutList (callouts not supported in DITA) Co-authored-by: Cursor <cursoragent@cursor.com>
| '{"spec":{"customNoUpgrade":{"enabled":[]}}}' | ||
| ---- | ||
| + | ||
| [NOTE] |
There was a problem hiding this comment.
🤖 [error] AsciiDocDITA.TaskStep: Content other than a single list cannot be mapped to DITA steps.
|
@nikhilprajapati-world: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|
/label merge-review-needed |
Summary
Add documentation for the
CustomNoUpgradefeatureSet to the "Enabling features using feature gates"section of the Nodes guide. Currently, only
TechPreviewNoUpgradeis documented.CustomNoUpgradeisactively used by customers, operators, and upstream projects to enable individual feature gates, but
has no user-facing guidance.
Changes
CustomNoUpgradedescription and WARNING callout to the "Understanding feature gates" module(
nodes-cluster-enabling-features-about.adoc)nodes-cluster-enabling-features-cli-custom.adoccovering:oc patchCLI examples for enabling/disabling individual gates at runtimecustomNoUpgrade.enabled([]string) syntax[{"name": "..."}]object format is invalid for the specinstall-config.yaml(Name=true) and the runtime CR (["Name"])oc get featuregateCustomNoUpgradecross-references to CLI and web console modulesnodes-cluster-enabling-features.adoc)Why this matters
CustomNoUpgradeis the only way to enable individual feature gates without the full TechPreview suitelook for instructions has zero coverage
KCS 7074157 ("CustomNoUpgrade featureSet blocks the
RHOCP 4 upgrade between minor version")
(CNCF blog,
kata-containers#12864)
CustomNoUpgradefor CVO feature-gate-based manifest gatingHistorical context
A 2019 comment by @derekwaynecarr
originally categorized
CustomNoUpgradeas "not documented". Since then, the landscape has changed:CustomNoUpgradefor Cluster API on GCPCustomNoUpgradeYAML exampleThe old commented-out section in
nodes-cluster-enabling-features-about.adochas been replaced with ahistorical note explaining why documentation is now appropriate.
Technical detail
The
CustomNoUpgradefeatureSet is enforced via a CEL validation rule inopenshift/api:
The
spec.customNoUpgrade.enabledfield is[]string(not[]object), which differs from thestatus.featureGates[].enabledformat ([{name: "..."}]). This type mismatch is the root causeof user confusion and is explicitly addressed in the new documentation.
Testing
Verified on OCP 4.22.0-rc.4 (AWS us-east-2):
CustomNoUpgradecorrectly enables individual feature gatesoc patchwith["GateName"]syntax confirmed workingoc patchwith[{"name":"GateName"}]confirmed rejected with type errorDuplicate check
No existing PR or doc bug found:
openshift/openshift-docsPR addsCustomNoUpgradeto the feature gates user guideOCPDOCS-*Jira ticket references this gapRelated code PRs (not documentation):
Related: OCPSTRAT-2485
Made with Cursor