blob: 06d970f669af11a2a3cd875bcba251947993deac [file] [log] [blame]
Lorenz Brund58edf42024-11-27 20:38:14 +00001package kubernetes
2
3import (
4 "fmt"
5 "strings"
6
7 "k8s.io/component-base/featuregate"
8)
9
10type featureGates map[featuregate.Feature]bool
11
12// AsFlag returns the feature gates as a --feature-gate flag.
13func (fgs featureGates) AsFlag() string {
14 var strb strings.Builder
15 strb.WriteString("--feature-gates=")
16 i := 0
17 for f, en := range fgs {
18 fmt.Fprintf(&strb, "%s=%v", string(f), en)
19 if i++; i != len(fgs) {
20 strb.WriteByte(',')
21 }
22 }
23 return strb.String()
24}
25
26// AsConfigObject returns the feature gates as a plain map for K8s configs.
27func (fgs featureGates) AsMap() map[string]bool {
28 out := make(map[string]bool)
29 for f, en := range fgs {
30 out[string(f)] = en
31 }
32 return out
33}
34
35var extraFeatureGates = featureGates{}