From b07acc71c6e82cb6bab05f6bbc32a6cb463627e6 Mon Sep 17 00:00:00 2001 From: Troy Connor Date: Wed, 30 Aug 2023 14:10:45 -0400 Subject: [PATCH] add corev1, coordinationv1 scheme for leader election when LeaderElection option is true Signed-off-by: Troy Connor --- pkg/manager/manager.go | 9 +++++++-- pkg/manager/manager_test.go | 7 ++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/pkg/manager/manager.go b/pkg/manager/manager.go index 8553d0378f..7f37a3c880 100644 --- a/pkg/manager/manager.go +++ b/pkg/manager/manager.go @@ -26,9 +26,12 @@ import ( "time" "github.com/go-logr/logr" + coordinationv1 "k8s.io/api/coordination/v1" + corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/client-go/rest" "k8s.io/client-go/tools/leaderelection/resourcelock" "k8s.io/client-go/tools/record" @@ -353,7 +356,10 @@ func New(config *rest.Config, options Options) (Manager, error) { leaderRecorderProvider = recorderProvider } else { leaderConfig = rest.CopyConfig(options.LeaderElectionConfig) - leaderRecorderProvider, err = options.newRecorderProvider(leaderConfig, cluster.GetHTTPClient(), cluster.GetScheme(), options.Logger.WithName("events"), options.makeBroadcaster) + scheme := cluster.GetScheme() + utilruntime.Must(corev1.AddToScheme(scheme)) + utilruntime.Must(coordinationv1.AddToScheme(scheme)) + leaderRecorderProvider, err = options.newRecorderProvider(leaderConfig, cluster.GetHTTPClient(), scheme, options.Logger.WithName("events"), options.makeBroadcaster) if err != nil { return nil, err } @@ -396,7 +402,6 @@ func New(config *rest.Config, options Options) (Manager, error) { errChan := make(chan error) runnables := newRunnables(options.BaseContext, errChan) - return &controllerManager{ stopProcedureEngaged: pointer.Int64(0), cluster: cluster, diff --git a/pkg/manager/manager_test.go b/pkg/manager/manager_test.go index 178e73dec3..2781a65190 100644 --- a/pkg/manager/manager_test.go +++ b/pkg/manager/manager_test.go @@ -35,11 +35,13 @@ import ( "github.com/prometheus/client_golang/prometheus" "go.uber.org/goleak" authenticationv1 "k8s.io/api/authentication/v1" + coordinationv1 "k8s.io/api/coordination/v1" corev1 "k8s.io/api/core/v1" rbacv1 "k8s.io/api/rbac/v1" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/client-go/rest" "k8s.io/client-go/tools/leaderelection/resourcelock" configv1alpha1 "k8s.io/component-base/config/v1alpha1" @@ -313,7 +315,10 @@ var _ = Describe("manger.Manager", func() { PprofBindAddress: "0", }) Expect(err).ToNot(HaveOccurred()) - + gvkcorev1 := schema.GroupVersionKind{Group: corev1.SchemeGroupVersion.Group, Version: corev1.SchemeGroupVersion.Version, Kind: "ConfigMap"} + gvkcoordinationv1 := schema.GroupVersionKind{Group: coordinationv1.SchemeGroupVersion.Group, Version: coordinationv1.SchemeGroupVersion.Version, Kind: "Lease"} + Expect(m.GetScheme().Recognizes(gvkcorev1)).To(BeTrue()) + Expect(m.GetScheme().Recognizes(gvkcoordinationv1)).To(BeTrue()) runnableDone := make(chan struct{}) slowRunnable := RunnableFunc(func(ctx context.Context) error { <-ctx.Done()