Documentation ¶
Index ¶
Constants ¶
View Source
const ( // Values for PreRelease. Alpha = prerelease("ALPHA") Beta = prerelease("BETA") GA = prerelease("") )
Variables ¶
View Source
var ( // DefaultMutableFeatureGate is a mutable version of DefaultFeatureGate. // Only top-level commands/options setup should make use of this. DefaultMutableFeatureGate MutableFeatureGate = NewFeatureGate() // DefaultFeatureGate is a shared global FeatureGate. // Top-level commands/options setup that needs to modify this feature gate should use DefaultMutableFeatureGate. DefaultFeatureGate FeatureGate = DefaultMutableFeatureGate )
View Source
var ( TestDataMutableFeatureGate MutableFeatureGate = NewFeatureGate() TestDataFeatureGate FeatureGate = TestDataMutableFeatureGate )
Functions ¶
func NewFeatureGate ¶
func NewFeatureGate() *defaultFeatureGate
Types ¶
type FeatureGate ¶
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 // IsReady returns true if the feature is ready IsReady(key Feature) bool // Subscribe returns a channel. if the channel is closed, means the feature is ready Subscribe(key Feature) (chan struct{}, error) }
FeatureGate indicates whether a given feature is enabled or not
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 // InitFunc used to init process when StartInit is invoked InitFunc func() }
type MutableFeatureGate ¶
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 // AddFeatureSpec adds feature to the featureGate. AddFeatureSpec(key Feature, spec FeatureSpec) error // call StartInit to trigger init functions of feature StartInit() error }
MutableFeatureGate parses and stores flag gates for known features from a string like feature1=true,feature2=false,...
Click to show internal directories.
Click to hide internal directories.