Skip to content

Commit ed8e85d

Browse files
authored
Merge pull request #3453 from gman0/cachedresource-dynrestmapper
Use DynamicRESTMapper with CachedResource reconciler
2 parents 53ba4a6 + c345af7 commit ed8e85d

File tree

4 files changed

+18
-3
lines changed

4 files changed

+18
-3
lines changed

pkg/reconciler/cache/cachedresources/cachedresources_controller.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import (
4242
"github.com/kcp-dev/kcp/pkg/logging"
4343
replicationcontroller "github.com/kcp-dev/kcp/pkg/reconciler/cache/cachedresources/replication"
4444
"github.com/kcp-dev/kcp/pkg/reconciler/committer"
45+
"github.com/kcp-dev/kcp/pkg/reconciler/dynamicrestmapper"
4546
cachev1alpha1 "github.com/kcp-dev/kcp/sdk/apis/cache/v1alpha1"
4647
kcpclientset "github.com/kcp-dev/kcp/sdk/client/clientset/versioned/cluster"
4748
cachev1alpha1client "github.com/kcp-dev/kcp/sdk/client/clientset/versioned/typed/cache/v1alpha1"
@@ -73,6 +74,8 @@ func NewController(
7374
namespaceInformer kcpcorev1informers.NamespaceClusterInformer,
7475
secretInformer kcpcorev1informers.SecretClusterInformer,
7576

77+
dynRESTMapper *dynamicrestmapper.DynamicRESTMapper,
78+
7679
discoveringDynamicKcpInformers *informer.DiscoveringDynamicSharedInformerFactory,
7780
cacheKcpInformers kcpinformers.SharedInformerFactory,
7881

@@ -92,6 +95,8 @@ func NewController(
9295
dynamicClient: dynamicClient,
9396
cacheDynamicClient: cacheDynamicClient,
9497

98+
dynRESTMapper: dynRESTMapper,
99+
95100
discoveringDynamicKcpInformers: discoveringDynamicKcpInformers,
96101
cacheKcpInformers: cacheKcpInformers,
97102

@@ -151,6 +156,8 @@ type Controller struct {
151156
dynamicClient kcpdynamic.ClusterInterface
152157
cacheDynamicClient kcpdynamic.ClusterInterface
153158

159+
dynRESTMapper *dynamicrestmapper.DynamicRESTMapper
160+
154161
discoveringDynamicKcpInformers *informer.DiscoveringDynamicSharedInformerFactory
155162
cacheKcpInformers kcpinformers.SharedInformerFactory
156163

pkg/reconciler/cache/cachedresources/cachedresources_reconcile.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ func (c *Controller) reconcile(ctx context.Context, cluster logicalcluster.Name,
8585
shardName: c.shardName,
8686
dynamicCacheClient: c.dynamicClient,
8787
kcpCacheClient: c.kcpCacheClient,
88+
dynRESTMapper: c.dynRESTMapper,
8889
cacheKcpInformers: c.cacheKcpInformers,
8990
discoveringDynamicKcpInformers: c.discoveringDynamicKcpInformers,
9091
callback: c.enqueue,

pkg/reconciler/cache/cachedresources/cachedresources_reconcile_replication.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ package cachedresources
1919
import (
2020
"context"
2121
"fmt"
22-
"strings"
2322

2423
"k8s.io/apimachinery/pkg/labels"
2524
"k8s.io/apimachinery/pkg/runtime/schema"
@@ -31,6 +30,7 @@ import (
3130

3231
"github.com/kcp-dev/kcp/pkg/informer"
3332
replicationcontroller "github.com/kcp-dev/kcp/pkg/reconciler/cache/cachedresources/replication"
33+
"github.com/kcp-dev/kcp/pkg/reconciler/dynamicrestmapper"
3434
cachev1alpha1 "github.com/kcp-dev/kcp/sdk/apis/cache/v1alpha1"
3535
"github.com/kcp-dev/kcp/sdk/apis/third_party/conditions/util/conditions"
3636
kcpclientset "github.com/kcp-dev/kcp/sdk/client/clientset/versioned/cluster"
@@ -43,6 +43,7 @@ type replication struct {
4343
shardName string
4444
dynamicCacheClient kcpdynamic.ClusterInterface
4545
kcpCacheClient kcpclientset.ClusterInterface
46+
dynRESTMapper *dynamicrestmapper.DynamicRESTMapper
4647
cacheKcpInformers kcpinformers.SharedInformerFactory
4748
discoveringDynamicKcpInformers *informer.DiscoveringDynamicSharedInformerFactory
4849
callback func(obj interface{})
@@ -85,9 +86,14 @@ func (r *replication) reconcile(ctx context.Context, cachedResource *cachev1alph
8586
cancel()
8687
return reconcileStatusStopAndRequeue, err
8788
}
88-
// TODO(mjudeikis): dynamic RestMapper!
89+
replicatedKind, err := r.dynRESTMapper.ForCluster(clusterName).KindFor(gvr)
90+
if err != nil {
91+
logger.Error(err, "Failed to get Kind for resource", "resource", gvr)
92+
cancel()
93+
return reconcileStatusStopAndRequeue, err
94+
}
8995
replicated := &replicationcontroller.ReplicatedGVR{
90-
Kind: strings.TrimSuffix(strings.Title(gvr.Resource), "s"), //nolint:staticcheck
96+
Kind: replicatedKind.Kind,
9197
Local: local.Informer(),
9298
Global: global.Informer(),
9399
}

pkg/server/controllers.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1719,6 +1719,7 @@ func (s *Server) installCacheController(ctx context.Context, config *rest.Config
17191719
s.KubeClusterClient,
17201720
s.KubeSharedInformerFactory.Core().V1().Namespaces(),
17211721
s.KubeSharedInformerFactory.Core().V1().Secrets(),
1722+
s.DynRESTMapper,
17221723
s.DiscoveringDynamicSharedInformerFactory,
17231724
s.CacheKcpSharedInformerFactory,
17241725
cachedResourceInformer,

0 commit comments

Comments
 (0)