Documentation ¶
Index ¶
- Variables
- type Gate
- type RegisterFlagsOption
- type RegisterOption
- type Registry
- func (r *Registry) MustRegister(id string, stage Stage, opts ...RegisterOption) *Gate
- func (r *Registry) Register(id string, stage Stage, opts ...RegisterOption) (*Gate, error)
- func (r *Registry) RegisterFlags(flagSet *flag.FlagSet, _ ...RegisterFlagsOption)
- func (r *Registry) Set(id string, enabled bool) error
- func (r *Registry) VisitAll(fn func(*Gate))
- type Stage
Constants ¶
This section is empty.
Variables ¶
var ErrAlreadyRegistered = errors.New("gate is already registered")
ErrAlreadyRegistered is returned when adding a Gate that is already registered.
Functions ¶
This section is empty.
Types ¶
type Gate ¶
type Gate struct {
// contains filtered or unexported fields
}
Gate is an immutable object that is owned by the Registry and represents an individual feature that may be enabled or disabled based on the lifecycle state of the feature and CLI flags specified by the user.
func (*Gate) Description ¶
Description returns the description for the Gate.
func (*Gate) FromVersion ¶ added in v0.76.0
FromVersion returns the version information when the Gate's was added.
func (*Gate) ReferenceURL ¶
ReferenceURL returns the URL to the contextual information about the Gate.
type RegisterFlagsOption ¶ added in v1.0.0
type RegisterFlagsOption interface {
// contains filtered or unexported methods
}
RegisterFlagsOption is an option for RegisterFlags.
type RegisterOption ¶ added in v0.71.0
type RegisterOption interface {
// contains filtered or unexported methods
}
RegisterOption allows to configure additional information about a Gate during registration.
func WithRegisterDescription ¶
func WithRegisterDescription(description string) RegisterOption
WithRegisterDescription adds description for the Gate.
func WithRegisterFromVersion ¶ added in v0.76.0
func WithRegisterFromVersion(fromVersion string) RegisterOption
WithRegisterFromVersion is used to set the Gate "FromVersion". The "FromVersion" contains the Collector release when a feature is introduced. fromVersion must be a valid version string: it may start with 'v' and must be in the format Major.Minor.Patch[-PreRelease]. PreRelease is optional and may have dashes, tildes and ASCII alphanumeric characters.
func WithRegisterReferenceURL ¶
func WithRegisterReferenceURL(referenceURL string) RegisterOption
WithRegisterReferenceURL adds a URL that has all the contextual information about the Gate. referenceURL must be a valid URL as defined by `net/url.Parse`.
func WithRegisterToVersion ¶ added in v0.76.0
func WithRegisterToVersion(toVersion string) RegisterOption
WithRegisterToVersion is used to set the Gate "ToVersion". The "ToVersion", if not empty, contains the last Collector release in which you can still use a feature gate. If the feature stage is either "Deprecated" or "Stable", the "ToVersion" is the Collector release when the feature is removed. toVersion must be a valid version string: it may start with 'v' and must be in the format Major.Minor.Patch[-PreRelease]. PreRelease is optional and may have dashes, tildes and ASCII alphanumeric characters.
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
func GlobalRegistry ¶ added in v0.70.0
func GlobalRegistry() *Registry
GlobalRegistry returns the global Registry.
func (*Registry) MustRegister ¶ added in v0.71.0
func (r *Registry) MustRegister(id string, stage Stage, opts ...RegisterOption) *Gate
MustRegister like Register but panics if an invalid ID or gate options are provided.
func (*Registry) Register ¶ added in v0.71.0
Register a Gate and return it. The returned Gate can be used to check if is enabled or not. id must be an ASCII alphanumeric nonempty string. Dots are allowed for namespacing.
func (*Registry) RegisterFlags ¶ added in v1.0.0
func (r *Registry) RegisterFlags(flagSet *flag.FlagSet, _ ...RegisterFlagsOption)
RegisterFlags that directly applies feature gate statuses to a Registry.
type Stage ¶
type Stage int8
Stage represents the Gate's lifecycle and what is the expected state of it.
const ( // StageAlpha is used when creating a new feature and the Gate must be explicitly enabled // by the operator. // // The Gate will be disabled by default. StageAlpha Stage = iota // StageBeta is used when the feature gate is well tested and is enabled by default, // but can be disabled by a Gate. // // The Gate will be enabled by default. StageBeta // StageStable is used when feature is permanently enabled and can not be disabled by a Gate. // This value is used to provide feedback to the user that the gate will be removed in the next versions. // // The Gate will be enabled by default and will return an error if disabled. StageStable // StageDeprecated is used when feature is permanently disabled and can not be enabled by a Gate. // This value is used to provide feedback to the user that the gate will be removed in the next versions. // // The Gate will be disabled by default and will return an error if modified. StageDeprecated )