...

Package featuregate

import "k8s.io/component-base/featuregate"
Overview
Index
Subdirectories

Overview ▾

Constants

const (
    // Values for PreRelease.
    Alpha = prerelease("ALPHA")
    Beta  = prerelease("BETA")
    GA    = prerelease("")

    // Deprecated
    Deprecated = prerelease("DEPRECATED")
)

func NewFeatureGate

func NewFeatureGate() *featureGate

type Feature

type Feature string

type FeatureGate

FeatureGate indicates whether a given feature is enabled or not

type FeatureGate interface {
    // Enabled returns true if the key is enabled.
    Enabled(key Feature) bool
    // KnownFeatures returns a slice of strings describing the FeatureGate's known features.
    KnownFeatures() []string
    // DeepCopy returns a deep copy of the FeatureGate object, such that gates can be
    // set on the copy without mutating the original. This is useful for validating
    // config against potential feature gate changes before committing those changes.
    DeepCopy() MutableFeatureGate
}

type FeatureSpec

type FeatureSpec struct {
    // Default is the default enablement state for the feature
    Default bool
    // LockToDefault indicates that the feature is locked to its default and cannot be changed
    LockToDefault bool
    // PreRelease indicates the maturity level of the feature
    PreRelease prerelease
}

type MutableFeatureGate

MutableFeatureGate parses and stores flag gates for known features from a string like feature1=true,feature2=false,...

type MutableFeatureGate interface {
    FeatureGate

    // AddFlag adds a flag for setting global feature gates to the specified FlagSet.
    AddFlag(fs *pflag.FlagSet)
    // Set parses and stores flag gates for known features
    // from a string like feature1=true,feature2=false,...
    Set(value string) error
    // SetFromMap stores flag gates for known features from a map[string]bool or returns an error
    SetFromMap(m map[string]bool) error
    // Add adds features to the featureGate.
    Add(features map[Feature]FeatureSpec) error
    // GetAll returns a copy of the map of known feature names to feature specs.
    GetAll() map[Feature]FeatureSpec
    // AddMetrics adds feature enablement metrics
    AddMetrics()
    // OverrideDefault sets a local override for the registered default value of a named
    // feature. If the feature has not been previously registered (e.g. by a call to Add), has a
    // locked default, or if the gate has already registered itself with a FlagSet, a non-nil
    // error is returned.
    //
    // When two or more components consume a common feature, one component can override its
    // default at runtime in order to adopt new defaults before or after the other
    // components. For example, a new feature can be evaluated with a limited blast radius by
    // overriding its default to true for a limited number of components without simultaneously
    // changing its default for all consuming components.
    OverrideDefault(name Feature, override bool) error
}

Subdirectories

Name Synopsis
..
testing