@@ -24,13 +24,12 @@ import (
2424 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2525 "k8s.io/apimachinery/pkg/runtime/schema"
2626 "k8s.io/client-go/discovery"
27- "k8s.io/client-go/rest"
2827 "k8s.io/client-go/restmapper"
2928)
3029
31- // LazyRESTMapper is a RESTMapper that will lazily query the provided
30+ // lazyRESTMapper is a RESTMapper that will lazily query the provided
3231// client for discovery information to do REST mappings.
33- type LazyRESTMapper struct {
32+ type lazyRESTMapper struct {
3433 mapper meta.RESTMapper
3534 client * discovery.DiscoveryClient
3635 knownGroups map [string ]* restmapper.APIGroupResources
@@ -40,27 +39,17 @@ type LazyRESTMapper struct {
4039 mu sync.Mutex
4140}
4241
43- // NewLazyRESTMapper initializes a LazyRESTMapper.
44- func NewLazyRESTMapper (c * rest.Config ) (meta.RESTMapper , error ) {
45- discoveryClient , err := discovery .NewDiscoveryClientForConfig (c )
46- if err != nil {
47- return nil , fmt .Errorf ("failed to create discovery client: %w" , err )
48- }
49-
50- return NewLazyRESTMapperWithClient (discoveryClient )
51- }
52-
53- // NewLazyRESTMapperWithClient initializes a LazyRESTMapper with a custom discovery client.
54- func NewLazyRESTMapperWithClient (discoveryClient * discovery.DiscoveryClient ) (meta.RESTMapper , error ) {
55- return & LazyRESTMapper {
42+ // newLazyRESTMapperWithClient initializes a LazyRESTMapper with a custom discovery client.
43+ func newLazyRESTMapperWithClient (discoveryClient * discovery.DiscoveryClient ) (meta.RESTMapper , error ) {
44+ return & lazyRESTMapper {
5645 mapper : restmapper .NewDiscoveryRESTMapper ([]* restmapper.APIGroupResources {}),
5746 client : discoveryClient ,
5847 knownGroups : map [string ]* restmapper.APIGroupResources {},
5948 }, nil
6049}
6150
6251// KindFor implements Mapper.KindFor.
63- func (m * LazyRESTMapper ) KindFor (resource schema.GroupVersionResource ) (schema.GroupVersionKind , error ) {
52+ func (m * lazyRESTMapper ) KindFor (resource schema.GroupVersionResource ) (schema.GroupVersionKind , error ) {
6453 res , err := m .mapper .KindFor (resource )
6554 if meta .IsNoMatchError (err ) {
6655 if err = m .addKnownGroupAndReload (resource .Group , resource .Version ); err != nil {
@@ -74,7 +63,7 @@ func (m *LazyRESTMapper) KindFor(resource schema.GroupVersionResource) (schema.G
7463}
7564
7665// KindsFor implements Mapper.KindsFor.
77- func (m * LazyRESTMapper ) KindsFor (resource schema.GroupVersionResource ) ([]schema.GroupVersionKind , error ) {
66+ func (m * lazyRESTMapper ) KindsFor (resource schema.GroupVersionResource ) ([]schema.GroupVersionKind , error ) {
7867 res , err := m .mapper .KindsFor (resource )
7968 if meta .IsNoMatchError (err ) {
8069 if err = m .addKnownGroupAndReload (resource .Group , resource .Version ); err != nil {
@@ -88,7 +77,7 @@ func (m *LazyRESTMapper) KindsFor(resource schema.GroupVersionResource) ([]schem
8877}
8978
9079// ResourceFor implements Mapper.ResourceFor.
91- func (m * LazyRESTMapper ) ResourceFor (input schema.GroupVersionResource ) (schema.GroupVersionResource , error ) {
80+ func (m * lazyRESTMapper ) ResourceFor (input schema.GroupVersionResource ) (schema.GroupVersionResource , error ) {
9281 res , err := m .mapper .ResourceFor (input )
9382 if meta .IsNoMatchError (err ) {
9483 if err = m .addKnownGroupAndReload (input .Group , input .Version ); err != nil {
@@ -102,7 +91,7 @@ func (m *LazyRESTMapper) ResourceFor(input schema.GroupVersionResource) (schema.
10291}
10392
10493// ResourcesFor implements Mapper.ResourcesFor.
105- func (m * LazyRESTMapper ) ResourcesFor (input schema.GroupVersionResource ) ([]schema.GroupVersionResource , error ) {
94+ func (m * lazyRESTMapper ) ResourcesFor (input schema.GroupVersionResource ) ([]schema.GroupVersionResource , error ) {
10695 res , err := m .mapper .ResourcesFor (input )
10796 if meta .IsNoMatchError (err ) {
10897 if err = m .addKnownGroupAndReload (input .Group , input .Version ); err != nil {
@@ -116,7 +105,7 @@ func (m *LazyRESTMapper) ResourcesFor(input schema.GroupVersionResource) ([]sche
116105}
117106
118107// RESTMapping implements Mapper.RESTMapping.
119- func (m * LazyRESTMapper ) RESTMapping (gk schema.GroupKind , versions ... string ) (* meta.RESTMapping , error ) {
108+ func (m * lazyRESTMapper ) RESTMapping (gk schema.GroupKind , versions ... string ) (* meta.RESTMapping , error ) {
120109 res , err := m .mapper .RESTMapping (gk , versions ... )
121110 if meta .IsNoMatchError (err ) {
122111 if err = m .addKnownGroupAndReload (gk .Group , versions ... ); err != nil {
@@ -130,7 +119,7 @@ func (m *LazyRESTMapper) RESTMapping(gk schema.GroupKind, versions ...string) (*
130119}
131120
132121// RESTMappings implements Mapper.RESTMappings.
133- func (m * LazyRESTMapper ) RESTMappings (gk schema.GroupKind , versions ... string ) ([]* meta.RESTMapping , error ) {
122+ func (m * lazyRESTMapper ) RESTMappings (gk schema.GroupKind , versions ... string ) ([]* meta.RESTMapping , error ) {
134123 res , err := m .mapper .RESTMappings (gk , versions ... )
135124 if meta .IsNoMatchError (err ) {
136125 if err = m .addKnownGroupAndReload (gk .Group , versions ... ); err != nil {
@@ -144,13 +133,13 @@ func (m *LazyRESTMapper) RESTMappings(gk schema.GroupKind, versions ...string) (
144133}
145134
146135// ResourceSingularizer implements Mapper.ResourceSingularizer.
147- func (m * LazyRESTMapper ) ResourceSingularizer (resource string ) (string , error ) {
136+ func (m * lazyRESTMapper ) ResourceSingularizer (resource string ) (string , error ) {
148137 return m .mapper .ResourceSingularizer (resource )
149138}
150139
151140// addKnownGroupAndReload reloads the mapper with updated information about missing API group.
152141// versions can be specified for partial updates, for instance for v1beta1 version only.
153- func (m * LazyRESTMapper ) addKnownGroupAndReload (groupName string , versions ... string ) error {
142+ func (m * lazyRESTMapper ) addKnownGroupAndReload (groupName string , versions ... string ) error {
154143 m .mu .Lock ()
155144 defer m .mu .Unlock ()
156145
@@ -209,7 +198,7 @@ func (m *LazyRESTMapper) addKnownGroupAndReload(groupName string, versions ...st
209198}
210199
211200// findAPIGroupByName returns API group by its name.
212- func (m * LazyRESTMapper ) findAPIGroupByName (groupName string ) (metav1.APIGroup , error ) {
201+ func (m * lazyRESTMapper ) findAPIGroupByName (groupName string ) (metav1.APIGroup , error ) {
213202 // Ensure that required info about existing API groups is received and stored in the mapper.
214203 // It will make 2 API calls to /api and /apis, but only once.
215204 if m .apiGroups == nil {
@@ -234,7 +223,7 @@ func (m *LazyRESTMapper) findAPIGroupByName(groupName string) (metav1.APIGroup,
234223}
235224
236225// fetchGroupVersionResources fetches the resources for the specified group and its versions.
237- func (m * LazyRESTMapper ) fetchGroupVersionResources (groupName string , versions ... string ) (map [schema.GroupVersion ]* metav1.APIResourceList , error ) {
226+ func (m * lazyRESTMapper ) fetchGroupVersionResources (groupName string , versions ... string ) (map [schema.GroupVersion ]* metav1.APIResourceList , error ) {
238227 groupVersionResources := make (map [schema.GroupVersion ]* metav1.APIResourceList )
239228 failedGroups := make (map [schema.GroupVersion ]error )
240229
0 commit comments