@@ -40,11 +40,13 @@ import (
4040 "github.com/crunchydata/postgres-operator/pkg/apis/postgres-operator.crunchydata.com/v1beta1"
4141)
4242
43- // assertNoError panics when err is not nil.
44- func assertNoError (err error ) {
43+ // must panics when err is not nil.
44+ func must (err error ) { need (0 , err ) }
45+ func need [V any ](v V , err error ) V {
4546 if err != nil {
4647 panic (err )
4748 }
49+ return v
4850}
4951
5052func initLogging () {
@@ -173,7 +175,7 @@ func main() {
173175 }
174176
175177 features := feature .NewGate ()
176- assertNoError (features .Set (os .Getenv ("PGO_FEATURE_GATES" )))
178+ must (features .Set (os .Getenv ("PGO_FEATURE_GATES" )))
177179
178180 running = feature .NewContext (running , features )
179181 log .Info ("feature gates" ,
@@ -183,15 +185,12 @@ func main() {
183185 "enabled" , feature .ShowEnabled (running ))
184186
185187 // Initialize OpenTelemetry and flush data when there is a panic.
186- otelFinish , err := initOpenTelemetry (running )
187- assertNoError (err )
188+ otelFinish := need (initOpenTelemetry (running ))
188189 defer func (ctx context.Context ) { _ = otelFinish (ctx ) }(running )
189190
190191 tracing .SetDefaultTracer (tracing .New ("github.com/CrunchyData/postgres-operator" ))
191192
192- cfg , err := runtime .GetConfig ()
193- assertNoError (err )
194-
193+ cfg := need (runtime .GetConfig ())
195194 cfg .UserAgent = userAgent
196195 cfg .Wrap (otelTransportWrapper ())
197196
@@ -201,14 +200,12 @@ func main() {
201200 // deprecation warnings when using an older version of a resource for backwards compatibility).
202201 rest .SetDefaultWarningHandler (rest.NoWarnings {})
203202
204- k8s , err := kubernetes .NewDiscoveryRunner (cfg )
205- assertNoError (err )
206- assertNoError (k8s .Read (running ))
203+ k8s := need (kubernetes .NewDiscoveryRunner (cfg ))
204+ must (k8s .Read (running ))
207205
208206 log .Info ("connected to Kubernetes" , "api" , k8s .Version ().String (), "openshift" , k8s .IsOpenShift ())
209207
210- options , err := initManager (running )
211- assertNoError (err )
208+ options := need (initManager (running ))
212209
213210 // Add to the Context that Manager passes to Reconciler.Start, Runnable.Start,
214211 // and eventually Reconciler.Reconcile.
@@ -219,51 +216,44 @@ func main() {
219216 return ctx
220217 }
221218
222- mgr , err := runtime .NewManager (cfg , options )
223- assertNoError (err )
224- assertNoError (mgr .Add (k8s ))
219+ manager := need (runtime .NewManager (cfg , options ))
220+ must (manager .Add (k8s ))
225221
226- registrar , err := registration .NewRunner (os .Getenv ("RSA_KEY" ), os .Getenv ("TOKEN_PATH" ), stopRunning )
227- assertNoError (err )
228- assertNoError (mgr .Add (registrar ))
222+ registrar := need (registration .NewRunner (os .Getenv ("RSA_KEY" ), os .Getenv ("TOKEN_PATH" ), stopRunning ))
223+ must (manager .Add (registrar ))
229224 token , _ := registrar .CheckToken ()
230225
231226 // add all PostgreSQL Operator controllers to the runtime manager
232- addControllersToManager (mgr , log , registrar )
227+ addControllersToManager (manager , log , registrar )
233228
234229 if features .Enabled (feature .BridgeIdentifiers ) {
230+ url := os .Getenv ("PGO_BRIDGE_URL" )
235231 constructor := func () * bridge.Client {
236- client := bridge .NewClient (os . Getenv ( "PGO_BRIDGE_URL" ) , versionString )
232+ client := bridge .NewClient (url , versionString )
237233 client .Transport = otelTransportWrapper ()(http .DefaultTransport )
238234 return client
239235 }
240236
241- assertNoError (bridge .ManagedInstallationReconciler (mgr , constructor ))
237+ must (bridge .ManagedInstallationReconciler (manager , constructor ))
242238 }
243239
244240 // Enable upgrade checking
245241 upgradeCheckingDisabled := strings .EqualFold (os .Getenv ("CHECK_FOR_UPGRADES" ), "false" )
246242 if ! upgradeCheckingDisabled {
247243 log .Info ("upgrade checking enabled" )
248- // get the URL for the check for upgrades endpoint if set in the env
249- assertNoError (
250- upgradecheck .ManagedScheduler (
251- mgr ,
252- os .Getenv ("CHECK_FOR_UPGRADES_URL" ),
253- versionString ,
254- token ,
255- ))
244+ url := os .Getenv ("CHECK_FOR_UPGRADES_URL" )
245+ must (upgradecheck .ManagedScheduler (manager , url , versionString , token ))
256246 } else {
257247 log .Info ("upgrade checking disabled" )
258248 }
259249
260250 // Enable health probes
261- assertNoError ( mgr .AddHealthzCheck ("health" , healthz .Ping ))
262- assertNoError ( mgr .AddReadyzCheck ("check" , healthz .Ping ))
251+ must ( manager .AddHealthzCheck ("health" , healthz .Ping ))
252+ must ( manager .AddReadyzCheck ("check" , healthz .Ping ))
263253
264254 // Start the manager and wait for its context to be canceled.
265255 stopped := make (chan error , 1 )
266- go func () { stopped <- mgr .Start (running ) }()
256+ go func () { stopped <- manager .Start (running ) }()
267257 <- running .Done ()
268258
269259 // Set a deadline for graceful termination.
@@ -272,6 +262,7 @@ func main() {
272262 defer cancel ()
273263
274264 // Wait for the manager to return or the deadline to pass.
265+ var err error
275266 select {
276267 case err = <- stopped :
277268 case <- stopping .Done ():
0 commit comments