From 3eb99183968725206bec54532a66cff023046519 Mon Sep 17 00:00:00 2001 From: Justin Santa Barbara Date: Fri, 14 Oct 2022 12:42:40 -0400 Subject: [PATCH] Avoid fragile global initialization of scheme (#3620) Move to normal codepath --- porch/controllers/main.go | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/porch/controllers/main.go b/porch/controllers/main.go index e9ffd98725..eb8524a792 100644 --- a/porch/controllers/main.go +++ b/porch/controllers/main.go @@ -34,7 +34,6 @@ import ( "k8s.io/klog/v2/klogr" "k8s.io/apimachinery/pkg/runtime" - utilruntime "k8s.io/apimachinery/pkg/util/runtime" clientgoscheme "k8s.io/client-go/kubernetes/scheme" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/healthz" @@ -48,8 +47,6 @@ import ( ) var ( - scheme = runtime.NewScheme() - reconcilers = map[string]newReconciler{ "rootsyncsets": func() Reconciler { return &rootsyncset.RootSyncSetReconciler{} @@ -75,11 +72,6 @@ type newReconciler func() Reconciler //+kubebuilder:rbac:groups=coordination.k8s.io,resources=leases,verbs=get;list;watch;create;update;patch;delete //+kubebuilder:rbac:groups="",resources=events,verbs=create;patch -func init() { - utilruntime.Must(clientgoscheme.AddToScheme(scheme)) - //+kubebuilder:scaffold:scheme -} - func main() { err := run(context.Background()) if err != nil { @@ -105,6 +97,11 @@ func run(ctx context.Context) error { flag.Parse() + scheme := runtime.NewScheme() + if err := clientgoscheme.AddToScheme(scheme); err != nil { + return fmt.Errorf("error initializing scheme: %w", err) + } + managerOptions := ctrl.Options{ Scheme: scheme, MetricsBindAddress: ":8080",