From 583333a7cfda859bf6dd3fcc4e88caab8c11de7c Mon Sep 17 00:00:00 2001 From: qingliu Date: Fri, 6 May 2022 18:49:39 +0800 Subject: [PATCH 1/2] feat: support inject newResourceLock for manager.Options We need to insert some leadership election logic. For example, disaster recovery related. --- pkg/manager/options.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 pkg/manager/options.go diff --git a/pkg/manager/options.go b/pkg/manager/options.go new file mode 100644 index 0000000000..542934c7bb --- /dev/null +++ b/pkg/manager/options.go @@ -0,0 +1,34 @@ +/* +Copyright 2022 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package manager + +import ( + "k8s.io/client-go/rest" + "k8s.io/client-go/tools/leaderelection/resourcelock" + "sigs.k8s.io/controller-runtime/pkg/leaderelection" + "sigs.k8s.io/controller-runtime/pkg/recorder" +) + +// SetNewResourceLock set a new resource lock function +// +// Allow this private field to be set in other packages +// You can insert your own leader election logic +func (opt *Options) SetNewResourceLock( + newResourceLock func(config *rest.Config, recorderProvider recorder.Provider, options leaderelection.Options) ( + resourcelock.Interface, error)) { + opt.newResourceLock = newResourceLock +} From a05e3ccf3a4673072e32e3997ad48fdd1e42c7d4 Mon Sep 17 00:00:00 2001 From: ykwang Date: Tue, 27 Sep 2022 16:26:10 +0800 Subject: [PATCH 2/2] fix panic for lazy dynamicRESTMapper --- pkg/client/apiutil/dynamicrestmapper_test.go | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/pkg/client/apiutil/dynamicrestmapper_test.go b/pkg/client/apiutil/dynamicrestmapper_test.go index 51c8f3ca4b..5db57a5a1c 100644 --- a/pkg/client/apiutil/dynamicrestmapper_test.go +++ b/pkg/client/apiutil/dynamicrestmapper_test.go @@ -1,19 +1,3 @@ -/* -Copyright 2021 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - package apiutil import (