From 58471cb842d7fa69addf3669e443b244920687d1 Mon Sep 17 00:00:00 2001 From: kaiyou <dev@kaiyou.fr> Date: Thu, 27 Apr 2023 20:32:46 +0200 Subject: [PATCH] Setup missing restmapper for GC --- services/cm.go | 3 +-- services/k8s.go | 8 ++++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/services/cm.go b/services/cm.go index bb3702b..5809458 100644 --- a/services/cm.go +++ b/services/cm.go @@ -19,7 +19,6 @@ import ( "k8s.io/kubernetes/pkg/controller/nodelifecycle" "k8s.io/kubernetes/pkg/controller/podgc" "k8s.io/kubernetes/pkg/controller/replication" - "k8s.io/kubernetes/pkg/controller/resourceclaim" "k8s.io/kubernetes/pkg/controller/resourcequota" "k8s.io/kubernetes/pkg/controller/serviceaccount" "k8s.io/kubernetes/pkg/controller/ttl" @@ -207,7 +206,7 @@ var kubeControllerManager = &Unit{ } gc, err := garbagecollector.NewGarbageCollector( clients.Client, clients.MetadataClient, - nil, // TODO + clients.RESTMapper, ignored, clients.Informer, allReady, diff --git a/services/k8s.go b/services/k8s.go index 7f965ad..09455d5 100644 --- a/services/k8s.go +++ b/services/k8s.go @@ -8,12 +8,15 @@ import ( "github.com/spf13/pflag" "go.acides.org/pekahi" core "k8s.io/api/core/v1" + "k8s.io/client-go/discovery" + "k8s.io/client-go/discovery/cached/memory" "k8s.io/client-go/dynamic" "k8s.io/client-go/dynamic/dynamicinformer" "k8s.io/client-go/informers" "k8s.io/client-go/kubernetes" "k8s.io/client-go/metadata" "k8s.io/client-go/rest" + "k8s.io/client-go/restmapper" "k8s.io/client-go/tools/events" "k8s.io/component-base/cli/flag" "k8s.io/klog/v2" @@ -34,6 +37,8 @@ type Clients struct { DynClient *dynamic.DynamicClient EventClient *kubernetes.Clientset MetadataClient metadata.Interface + CachedClient discovery.CachedDiscoveryInterface + RESTMapper *restmapper.DeferredDiscoveryRESTMapper Broadcaster events.EventBroadcasterAdapter Informer informers.SharedInformerFactory DynInformer dynamicinformer.DynamicSharedInformerFactory @@ -71,6 +76,8 @@ func newClientsForKC(kc *rest.Config) (*Clients, error) { if err != nil { return nil, err } + cachedClient := memory.NewMemCacheClient(baseClient) + restMapper := restmapper.NewDeferredDiscoveryRESTMapper(cachedClient) broadcaster := events.NewEventBroadcasterAdapter(eventsClient) informers := informers.NewSharedInformerFactory(baseClient, 0) dynInformers := dynamicinformer.NewFilteredDynamicSharedInformerFactory(dynClient, 0, core.NamespaceAll, nil) @@ -81,6 +88,7 @@ func newClientsForKC(kc *rest.Config) (*Clients, error) { DynClient: dynClient, EventClient: eventsClient, MetadataClient: metadataClient, + RESTMapper: restMapper, Broadcaster: broadcaster, Informer: informers, DynInformer: dynInformers, -- GitLab