@@ -21,13 +21,26 @@ import (
2121 "syscall"
2222 "time"
2323
24+ "github.com/nvidia/nvsentinel/configmanager"
2425 "github.com/nvidia/nvsentinel/fault-quarantine-module/pkg/initializer"
2526 "k8s.io/klog/v2"
27+ "k8s.io/klog/v2/textlogger"
28+ )
29+
30+ var (
31+ // These variables will be populated during the build process
32+ version = "dev"
33+ commit = "none"
34+ date = "unknown"
2635)
2736
2837func main () {
29- ctx , stop := signal .NotifyContext (context .Background (), syscall .SIGTERM , syscall .SIGINT )
30- defer stop ()
38+ // Initialize klog flags to allow command-line control (e.g., -v=3)
39+ klog .InitFlags (nil )
40+
41+ // Create a context that gets cancelled on OS interrupt signals
42+ ctx , stop := signal .NotifyContext (context .Background (), syscall .SIGINT , syscall .SIGTERM )
43+ defer stop () // Ensure the signal listener is cleaned up
3144
3245 var metricsPort = flag .String ("metrics-port" , "2112" , "port to expose Prometheus metrics on" )
3346
@@ -50,12 +63,20 @@ func main() {
5063 var circuitBreakerEnabled = flag .Bool ("circuit-breaker-enabled" , true ,
5164 "enable or disable fault quarantine circuit breaker" )
5265
53- klog .InitFlags (nil )
54- defer klog .Flush ()
55-
5666 flag .Parse ()
5767
58- klog .Infof ("Mongo client cert path: %s" , * mongoClientCertMountPath )
68+ logger := textlogger .NewLogger (textlogger .NewConfig ()).WithValues (
69+ "version" , version ,
70+ "module" , "fault-quarantine-module" ,
71+ )
72+
73+ klog .SetLogger (logger )
74+ klog .InfoS ("Starting fault-quarantine-module" , "version" , version , "commit" , commit , "date" , date )
75+ defer klog .Flush ()
76+
77+ if _ , err := configmanager.GetEnvVar [string ]("POD_NAMESPACE" ); err != nil {
78+ klog .Fatalf ("Failed to get POD_NAMESPACE: %v" , err )
79+ }
5980
6081 params := initializer.InitializationParams {
6182 MongoClientCertMountPath : * mongoClientCertMountPath ,
0 commit comments