@@ -137,7 +137,6 @@ func main() {
137137 storageAdvAddr = determineAdvStorageAddr (storageAddr , setupLog )
138138 }
139139 storage := mustInitStorage (storagePath , storageAdvAddr , setupLog )
140- go startFileServer (storage .BasePath , storageAddr , setupLog )
141140
142141 if err = (& controllers.GitRepositoryReconciler {
143142 Client : mgr .GetClient (),
@@ -195,6 +194,15 @@ func main() {
195194 }
196195 // +kubebuilder:scaffold:builder
197196
197+ go func () {
198+ // Block until our controller manager is elected leader. We presume our
199+ // entire process will terminate if we lose leadership, so we don't need
200+ // to handle that.
201+ <- mgr .Elected ()
202+
203+ startFileServer (storage .BasePath , storageAddr , setupLog )
204+ }()
205+
198206 setupLog .Info ("starting manager" )
199207 if err := mgr .Start (ctrl .SetupSignalHandler ()); err != nil {
200208 setupLog .Error (err , "problem running manager" )
@@ -203,6 +211,7 @@ func main() {
203211}
204212
205213func startFileServer (path string , address string , l logr.Logger ) {
214+ l .Info ("starting file server" )
206215 fs := http .FileServer (http .Dir (path ))
207216 http .Handle ("/" , fs )
208217 err := http .ListenAndServe (address , nil )
0 commit comments