3434 serverHTTPListenPort = pflag .Int ("http-listen-port" , 8080 , "server http listen port" )
3535 kubeServerListenPort = pflag .Int ("kube-server-listen-port" , 8090 , "kube server grpc http listen port" )
3636
37- logLevel = pflag .String ("log-level" , slog .LevelDebug .String (), "Log level" )
37+ logLevel = pflag .String ("log-level" , slog .LevelDebug .String (), "Log level: debug, info, warn or error " )
3838 logRateInterval = pflag .Duration ("log-rate-interval" , 100 * time .Millisecond , "Log rate limit interval" )
3939 logRateBurst = pflag .Int ("log-rate-burst" , 100 , "Log rate burst" )
4040 promMetricsExportEnabled = pflag .Bool ("prom-metrics-export-enabled" , false , "Enabled sending internal prometheus metrics" )
9898func main () {
9999 pflag .Parse ()
100100
101+ var slogLevel slog.Level
102+ if err := slogLevel .UnmarshalText ([]byte (* logLevel )); err != nil {
103+ fmt .Fprintf (os .Stderr , "invalid log level %q: %v\n " , * logLevel , err )
104+ os .Exit (1 )
105+ }
106+ logHandler := slog .NewTextHandler (os .Stdout , & slog.HandlerOptions {Level : slogLevel })
107+ logger := slog .New (logHandler )
108+ slog .SetDefault (logger )
109+
101110 ctx , cancel := signal .NotifyContext (context .Background (), syscall .SIGINT , syscall .SIGTERM )
102111 defer cancel ()
103112
@@ -120,12 +129,10 @@ func main() {
120129 os .Exit (1 )
121130 }
122131
123- var cloudProviderVal string
124- if * cloudProvider != "" {
125- cloudProviderVal = * cloudProvider
126- } else {
127- slog .Warn (`--kube-bench-cloud-provider is deprecated, please use --cloud-provider instead.` )
128- cloudProviderVal = * kubeBenchCloudProvider
132+ cloudProviderType , err := parseCloudProvider (* cloudProvider , * kubeBenchCloudProvider )
133+ if err != nil {
134+ slog .Error (err .Error ())
135+ os .Exit (1 )
129136 }
130137
131138 podNs := os .Getenv ("POD_NAMESPACE" )
@@ -174,7 +181,7 @@ func main() {
174181 CastaiClusterID : castaiClientCfg .ClusterID ,
175182 CastaiGrpcInsecure : * castaiServerInsecure ,
176183 ImageScanBlobsCacheURL : * imageScanBlobsCacheURL ,
177- CloudProvider : cloudProviderVal ,
184+ CloudProvider : cloudProviderType . KubernetesType () ,
178185 IgnoredNamespaces : * imageScanIgnoredNamespaces ,
179186 DisabledAnalyzers : * imageScanDisabledAnalyzers ,
180187 },
@@ -188,7 +195,7 @@ func main() {
188195 Force : * kubeBenchForceScan ,
189196 ScanInterval : * kubeBenchScanInterval ,
190197 JobImagePullPolicy : * kubeBenchJobImagePullPolicy ,
191- CloudProvider : cloudProviderVal ,
198+ CloudProvider : cloudProviderType . KubernetesType () ,
192199 JobNamespace : podNs ,
193200 },
194201 JobsCleanup : controllers.JobsCleanupConfig {
@@ -201,7 +208,7 @@ func main() {
201208 },
202209 CloudProviderConfig : config.CloudProviderConfig {
203210 CloudProvider : cloudtypes.ProviderConfig {
204- Type : cloudtypes . Type ( * cloudProvider ) ,
211+ Type : cloudProviderType ,
205212 GCPProjectID : * cloudProviderGCPProjectID ,
206213 AWSRegion : * cloudProviderAWSRegion ,
207214 },
@@ -245,3 +252,13 @@ func getKubeConfig(kubepath string) (*rest.Config, error) {
245252 }
246253 return inClusterConfig , nil
247254}
255+
256+ func parseCloudProvider (cloudProvider string , kubeBenchCloudProvider string ) (cloudtypes.Type , error ) {
257+ if cloudProvider != "" {
258+ return cloudtypes .NewProviderType (cloudProvider )
259+ } else if kubeBenchCloudProvider != "" {
260+ slog .Warn (`--kube-bench-cloud-provider is deprecated, please use --cloud-provider instead.` )
261+ return cloudtypes .NewProviderType (kubeBenchCloudProvider )
262+ }
263+ return "" , nil
264+ }
0 commit comments