From 56fde14319a4f5929129e3bdbda71849c03dd952 Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Wed, 30 Jun 2021 11:25:13 -0400 Subject: [PATCH] PodSecurity: test GA-only cases and alpha/beta fields separately Kubernetes-commit: ba6b4c5a18c455867f11036a7208962e84012a86 --- featuregate/feature_gate.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/featuregate/feature_gate.go b/featuregate/feature_gate.go index c805ffb0..c7166d80 100644 --- a/featuregate/feature_gate.go +++ b/featuregate/feature_gate.go @@ -109,6 +109,8 @@ type MutableFeatureGate interface { 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 } // featureGate implements FeatureGate as well as pflag.Value for flag parsing. @@ -290,6 +292,15 @@ func (f *featureGate) Add(features map[Feature]FeatureSpec) error { return nil } +// GetAll returns a copy of the map of known feature names to feature specs. +func (f *featureGate) GetAll() map[Feature]FeatureSpec { + retval := map[Feature]FeatureSpec{} + for k, v := range f.known.Load().(map[Feature]FeatureSpec) { + retval[k] = v + } + return retval +} + // Enabled returns true if the key is enabled. If the key is not known, this call will panic. func (f *featureGate) Enabled(key Feature) bool { if v, ok := f.enabled.Load().(map[Feature]bool)[key]; ok {