@@ -50,15 +50,40 @@ func main() {
5050 var metricsAddr string
5151 var enableLeaderElection bool
5252 var tailingSidecarImage string
53+ var configPath string
54+ var config Config
55+ var err error
56+
5357 flag .StringVar (& metricsAddr , "metrics-addr" , ":8080" , "The address the metric endpoint binds to." )
5458 flag .BoolVar (& enableLeaderElection , "enable-leader-election" , false ,
5559 "Enable leader election for controller manager. " +
5660 "Enabling this will ensure there is only one active controller manager." )
57- flag .StringVar (& tailingSidecarImage , "tailing-sidecar-image" , "sumologic/tailing-sidecar:latest" , "tailing sidecar image" )
61+ flag .StringVar (& tailingSidecarImage , "tailing-sidecar-image" , "" , "tailing sidecar image" )
62+ flag .StringVar (& configPath , "config" , "" , "Path to the configuration file" )
5863 flag .Parse ()
5964
6065 ctrl .SetLogger (zap .New (zap .UseDevMode (true )))
6166
67+ if configPath != "" {
68+ config , err = ReadConfig (configPath )
69+
70+ if err != nil {
71+ setupLog .Error (err , "unable to read configuration" , "configPath" , configPath )
72+ os .Exit (1 )
73+ }
74+ } else {
75+ config = Config {}
76+ }
77+
78+ if err := config .Validate (); err != nil {
79+ setupLog .Error (err , "configuration error" , "configPath" , configPath )
80+ os .Exit (1 )
81+ }
82+
83+ if tailingSidecarImage != "" {
84+ config .Sidecar .Image = tailingSidecarImage
85+ }
86+
6287 mgr , err := ctrl .NewManager (ctrl .GetConfigOrDie (), ctrl.Options {
6388 Scheme : scheme ,
6489 MetricsBindAddress : metricsAddr ,
@@ -84,7 +109,7 @@ func main() {
84109 mgr .GetWebhookServer ().Register ("/add-tailing-sidecars-v1-pod" , & webhook.Admission {
85110 Handler : & handler.PodExtender {
86111 Client : mgr .GetClient (),
87- TailingSidecarImage : tailingSidecarImage ,
112+ TailingSidecarImage : config . Sidecar . Image ,
88113 },
89114 })
90115
0 commit comments