@@ -56,6 +56,7 @@ import (
56
56
57
57
configuniversal "github.com/kcp-dev/kcp/config/universal"
58
58
bootstrappolicy "github.com/kcp-dev/kcp/pkg/authorization/bootstrap"
59
+ "github.com/kcp-dev/kcp/pkg/dynamicrestmapper"
59
60
kcpfeatures "github.com/kcp-dev/kcp/pkg/features"
60
61
"github.com/kcp-dev/kcp/pkg/informer"
61
62
permissionclaimlabler "github.com/kcp-dev/kcp/pkg/permissionclaim"
@@ -1594,6 +1595,38 @@ func (s *Server) installGarbageCollectorController(ctx context.Context, config *
1594
1595
})
1595
1596
}
1596
1597
1598
+ func (s * Server ) installDynamicRESTMapper (ctx context.Context , config * rest.Config ) error {
1599
+ config = rest .CopyConfig (config )
1600
+ config = rest .AddUserAgent (config , dynamicrestmapper .ControllerName )
1601
+
1602
+ crdClusterClient , err := kcpapiextensionsclientset .NewForConfig (config )
1603
+ if err != nil {
1604
+ return err
1605
+ }
1606
+
1607
+ c , err := dynamicrestmapper .NewController (ctx , s .DynRESTMapper , crdClusterClient ,
1608
+ s .ApiExtensionsSharedInformerFactory .Apiextensions ().V1 ().CustomResourceDefinitions ())
1609
+ if err != nil {
1610
+ return err
1611
+ }
1612
+
1613
+ if err := s .registerController (& controllerWrapper {
1614
+ Name : dynamicrestmapper .ControllerName ,
1615
+ Wait : func (ctx context.Context , s * Server ) error {
1616
+ return wait .PollUntilContextCancel (ctx , waitPollInterval , true , func (ctx context.Context ) (bool , error ) {
1617
+ return s .ApiExtensionsSharedInformerFactory .Apiextensions ().V1 ().CustomResourceDefinitions ().Informer ().HasSynced (), nil
1618
+ })
1619
+ },
1620
+ Runner : func (ctx context.Context ) {
1621
+ c .Start (ctx , 2 )
1622
+ },
1623
+ }); err != nil {
1624
+ return err
1625
+ }
1626
+
1627
+ return nil
1628
+ }
1629
+
1597
1630
func (s * Server ) WaitForSync (stop <- chan struct {}) error {
1598
1631
// Wait for shared informer factories to by synced.
1599
1632
// factory. Otherwise, informer list calls may go into backoff (before the CRDs are ready) and
0 commit comments