@@ -42,7 +42,9 @@ import (
4242 apisv1alpha2 "github.com/kcp-dev/kcp/sdk/apis/apis/v1alpha2"
4343 "github.com/kcp-dev/kcp/sdk/apis/apis/v1alpha2/permissionclaims"
4444 "github.com/kcp-dev/kcp/sdk/apis/core"
45+ corev1alpha1 "github.com/kcp-dev/kcp/sdk/apis/core/v1alpha1"
4546 kcpinformers "github.com/kcp-dev/kcp/sdk/client/informers/externalversions"
47+ corev1alpha1listers "github.com/kcp-dev/kcp/sdk/client/listers/core/v1alpha1"
4648)
4749
4850const (
@@ -69,6 +71,11 @@ type apiBindingAdmission struct {
6971
7072 getAPIExport func (path logicalcluster.Path , name string ) (* apisv1alpha2.APIExport , error )
7173
74+ logicalClusterLister corev1alpha1listers.LogicalClusterClusterLister
75+ // getLogicalCluster is a convenience function for easier unit testing,
76+ // it reads a LogicalCluster resource with the given name and from the given cluster.
77+ getLogicalCluster func (clusterName logicalcluster.Name , name string ) (* corev1alpha1.LogicalCluster , error )
78+
7279 apiExportIndexer cache.Indexer
7380 cacheAPIExportIndexer cache.Indexer
7481
@@ -324,6 +331,15 @@ func (o *apiBindingAdmission) SetKcpInformers(local, global kcpinformers.SharedI
324331 o .apiExportIndexer = local .Apis ().V1alpha2 ().APIExports ().Informer ().GetIndexer ()
325332 o .cacheAPIExportIndexer = global .Apis ().V1alpha2 ().APIExports ().Informer ().GetIndexer ()
326333
334+ logicalClusterReady := local .Core ().V1alpha1 ().LogicalClusters ().Informer ().HasSynced
335+ o .SetReadyFunc (func () bool {
336+ return logicalClusterReady ()
337+ })
338+ o .logicalClusterLister = local .Core ().V1alpha1 ().LogicalClusters ().Lister ()
339+ o .getLogicalCluster = func (clusterName logicalcluster.Name , name string ) (* corev1alpha1.LogicalCluster , error ) {
340+ return o .logicalClusterLister .Cluster (clusterName ).Get (name )
341+ }
342+
327343 indexers .AddIfNotPresentOrDie (local .Tenancy ().V1alpha1 ().WorkspaceTypes ().Informer ().GetIndexer (), cache.Indexers {
328344 indexers .ByLogicalClusterPathAndName : indexers .IndexByLogicalClusterPathAndName ,
329345 })
0 commit comments