Bug 1894977 - Feature Gate enablement - add CLI section and add an example to enable multiple feature gates
Summary: Feature Gate enablement - add CLI section and add an example to enable multip...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: OpenShift Container Platform
Classification: Red Hat
Component: Documentation
Version: 4.6
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: ---
: 4.6.z
Assignee: Servesha
QA Contact: Sunil Choudhary
Latha S
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-11-05 14:06 UTC by Andreas Karis
Modified: 2024-03-25 16:57 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-12-09 10:28:04 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1860289 0 low CLOSED FeatureGate documentation is incomplete and incomprehensible 2024-03-25 16:12:35 UTC

Internal Links: 1860289

Description Andreas Karis 2020-11-05 14:06:50 UTC
Document URL: 
https://docs.openshift.com/container-platform/4.6/nodes/clusters/nodes-cluster-enabling-features.html

Section Number and Name: 

Describe the issue: 
Feature Gate enablement - add CLI section and add an example to enable multiple feature gates

The current exampe lists only:
apiVersion: config.openshift.io/v1
kind: FeatureGate
metadata:
  name: cluster
spec:
  featureSet: TechPreviewNoUpgrade 

But how would I enable both:

RotateKubeletServerCertificate and TechPreviewNoUpgrade 

Also, how can admins list all available feature gate featureSets?

Suggestions for improvement: 

Additional information:

Comment 1 Andreas Karis 2020-11-05 14:08:27 UTC
The explain does not help, either:

[root@openshift-jumpserver-0 ~]# oc explain featuregate.spec.featureSet
KIND:     FeatureGate
VERSION:  config.openshift.io/v1

FIELD:    featureSet <string>

DESCRIPTION:
     featureSet changes the list of features in the cluster. The default is
     empty. Be very careful adjusting this setting. Turning on or off features
     may cause irreversible changes in your cluster which cannot be undone.

Comment 2 Andreas Karis 2020-11-05 14:18:13 UTC
https://docs.openshift.com/container-platform/4.6/nodes/clusters/nodes-cluster-enabling-features.html

i) Alternatively, is there just a mismatch between the table, saying:
The following features are affected by FeatureGates: RotateKubeletServerCertificate SupportPodPidsLimit MachineHealthCheck LocalStorageCapacityIsolation

And between the next section:

The following Technology Preview features are enabled by feature gates:
    RotateKubeletServerCertificate
    SupportPodPidsLimit

One section lists 4 features, the other lists 2 which are enabled by:
featureSet: TechPreviewNoUpgrade

ii) Looking at:
https://github.com/openshift/api/blob/master/config/v1/types_feature.go#L25

We only have 4 featuresets:

var (
	// Default feature set that allows upgrades.
	Default FeatureSet = ""

	// TechPreviewNoUpgrade turns on tech preview features that are not part of the normal supported platform. Turning
	// this feature set on CANNOT BE UNDONE and PREVENTS UPGRADES.
	TechPreviewNoUpgrade FeatureSet = "TechPreviewNoUpgrade"

	// CustomNoUpgrade allows the enabling or disabling of any feature. Turning this feature set on IS NOT SUPPORTED, CANNOT BE UNDONE, and PREVENTS UPGRADES.
	// Because of its nature, this setting cannot be validated.  If you have any typos or accidentally apply invalid combinations
	// your cluster may fail in an unrecoverable way.
	CustomNoUpgrade FeatureSet = "CustomNoUpgrade"

	// TopologyManager enables ToplogyManager support. Upgrades are enabled with this feature.
	LatencySensitive FeatureSet = "LatencySensitive"

	// IPv6DualStackNoUpgrade enables dual-stack. Turning this feature set on IS NOT SUPPORTED, CANNOT BE UNDONE, and PREVENTS UPGRADES.
	IPv6DualStackNoUpgrade FeatureSet = "IPv6DualStackNoUpgrade"
)

So let me rephrase the above question: Should we document how to enable TechPreviewNoUpgrade and LatencySensitive at the same time? If so, how can this be done? The other 2 feature gates seem to be unsupported.

iii) The above source code is very specific about the negative impact on upgrades when enabling TechPreviewNoUpgrade:
~~~
	// TechPreviewNoUpgrade turns on tech preview features that are not part of the normal supported platform. Turning
	// this feature set on CANNOT BE UNDONE and PREVENTS UPGRADES.
~~~

But our doc does not contain this warning. Can we make this more visible in the doc, by adding the same warning?

Comment 6 Sunil Choudhary 2021-12-09 10:27:09 UTC
Reviewing doc section [1], I see it is already mentioned that enabling TechPreviewNoUpgrade also enables RotateKubeletServerCertificate

[1] https://docs.openshift.com/container-platform/4.6/nodes/clusters/nodes-cluster-enabling-features.html#nodes-cluster-enabling-features-about_nodes-cluster-enabling


Note You need to log in before you can comment on or make changes to this bug.