const PublicKeysECDSA … const RootlessControlPlane … const EtcdLearnerMode … const WaitForAllControlPlaneComponents … const ControlPlaneKubeletLocalMode … var InitFeatureGates … type Feature … type FeatureList … // ValidateVersion ensures that a feature gate list is compatible with the chosen Kubernetes version func ValidateVersion(allFeatures FeatureList, requestedFeatures map[string]bool, requestedVersion string) error { … } // Enabled indicates whether a feature name has been enabled func Enabled(featureList map[string]bool, featureName string) bool { … } // Supports indicates whether a feature name is supported on the given // feature set func Supports(featureList FeatureList, featureName string) bool { … } // KnownFeatures returns a slice of strings describing the FeatureList features. func KnownFeatures(f *FeatureList) []string { … } // NewFeatureGate parses a string of the form "key1=value1,key2=value2,..." into a // map[string]bool of known keys or returns an error. func NewFeatureGate(f *FeatureList, value string) (map[string]bool, error) { … } // CheckDeprecatedFlags takes a list of existing feature gate flags and validates against the current feature flag set. // It used during upgrades for ensuring consistency of feature gates used in an existing cluster, that might // be created with a previous version of kubeadm, with the set of features currently supported by kubeadm func CheckDeprecatedFlags(f *FeatureList, features map[string]bool) map[string]string { … }