Skip to content

Commit f170762

Browse files
committed
Rapid reset scaffold remediation
Signed-off-by: Catherine Chan-Tse <[email protected]>
1 parent d76a8db commit f170762

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

internal/flags/flags.go

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,62 @@
1414

1515
package flags
1616

17+
import (
18+
"crypto/tls"
19+
20+
"sigs.k8s.io/controller-runtime/pkg/webhook"
21+
)
22+
1723
// global command-line flags
1824
const (
1925
VerboseOpt = "verbose"
2026
)
27+
28+
// Flags - Options to be used by a helm operator
29+
type Flags struct {
30+
EnableHTTP2 bool
31+
SecureMetrics bool
32+
}
33+
34+
// AddTo - Add the ansible operator flags to the the flagset
35+
func (f *Flags) AddTo(flagSet *pflag.FlagSet) {
36+
// Store flagset internally to be used for lookups later.
37+
f.flagSet = flagSet
38+
39+
flagSet.BoolVar(&f.EnableHTTP2,
40+
"enable-http2",
41+
false,
42+
"enables HTTP/2 on the webhook and metrics servers",
43+
)
44+
45+
flagSet.BoolVar(&f.SecureMetrics,
46+
"metrics-secure",
47+
false,
48+
"enables secure serving of the metrics endpoint",
49+
)
50+
}
51+
52+
// ToManagerOptions uses the flag set in f to configure options.
53+
// Values of options take precedence over flag defaults,
54+
// as values are assume to have been explicitly set.
55+
func (f *Flags) ToManagerOptions(options manager.Options) manager.Options {
56+
// Alias FlagSet.Changed so options are still updated when fields are empty.
57+
changed := func(flagName string) bool {
58+
return f.flagSet.Changed(flagName)
59+
}
60+
if f.flagSet == nil {
61+
changed = func(flagName string) bool { return false }
62+
}
63+
64+
disableHTTP2 := func(c *tls.Config) {
65+
c.NextProtos = []string{"http/1.1"}
66+
}
67+
if !f.EnableHTTP2 {
68+
options.WebhookServer = webhook.NewServer(webhook.Options{
69+
TLSOpts: []func(*tls.Config){disableHTTP2},
70+
})
71+
options.Metrics.TLSOpts = append(options.Metrics.TLSOpts, disableHTTP2)
72+
}
73+
options.Metrics.SecureServing = f.SecureMetrics
74+
return options
75+
}

0 commit comments

Comments
 (0)