@@ -86,6 +86,32 @@ func (d *GRPCDriver) BuildClients(ctx context.Context, secretOption register.Sec
8686 clusterClient , 10 * time .Minute ).Cluster ().V1 ().ManagedClusters ()
8787 clusterWatchStore .SetInformer (clusterInformers .Informer ())
8888
89+ csrClientHolder , err := cloudeventscsr .NewAgentClientHolder (ctx ,
90+ cloudeventsoptions .NewGenericClientOptions (
91+ config ,
92+ cloudeventscsr .NewCSRCodec (),
93+ secretOption .ClusterName ,
94+ ).WithClusterName (secretOption .ClusterName ),
95+ )
96+ if err != nil {
97+ return nil , err
98+ }
99+ csrControl := & ceCSRControl {csrClientHolder : csrClientHolder }
100+ if err := d .csrDriver .SetCSRControl (csrControl , secretOption .ClusterName ); err != nil {
101+ return nil , err
102+ }
103+ d .control = csrControl
104+
105+ // Initialize the cluster client and CSR control in the bootstrap phase.
106+ // Other clients should not be initialized, since they require
107+ // permissions that are not allowed in the bootstrap phase.
108+ if bootstrapped {
109+ return & register.Clients {
110+ ClusterClient : clusterClient ,
111+ ClusterInformer : clusterInformers ,
112+ }, nil
113+ }
114+
89115 leaseWatchStore := cloudeventsstore .NewSimpleStore [* coordv1.Lease ]()
90116 leaseClient , err := cloudeventslease .NewLeaseClient (
91117 ctx ,
@@ -128,22 +154,6 @@ func (d *GRPCDriver) BuildClients(ctx context.Context, secretOption register.Sec
128154 Addon ().V1alpha1 ().ManagedClusterAddOns ()
129155 addonWatchStore .SetInformer (addonInformer .Informer ())
130156
131- csrClientHolder , err := cloudeventscsr .NewAgentClientHolder (ctx ,
132- cloudeventsoptions .NewGenericClientOptions (
133- config ,
134- cloudeventscsr .NewCSRCodec (),
135- secretOption .ClusterName ,
136- ).WithClusterName (secretOption .ClusterName ),
137- )
138- if err != nil {
139- return nil , err
140- }
141- csrControl := & ceCSRControl {csrClientHolder : csrClientHolder }
142- if err := d .csrDriver .SetCSRControl (csrControl , secretOption .ClusterName ); err != nil {
143- return nil , err
144- }
145- d .control = csrControl
146-
147157 clients := & register.Clients {
148158 ClusterClient : clusterClient ,
149159 ClusterInformer : clusterInformers ,
0 commit comments