in pkg/multiclusterclient/provider.go [24:49]
func (c *ClientProvider) GetClusterClient(ctx context.Context, secretNamespace, clusterName string, options client.Options) (client.Client, error) {
if clusterName == "" || clusterName == cdPipeApi.InCluster {
return c.internalClusterClient, nil
}
secret, err := c.getClusterSecret(ctx, clusterName, secretNamespace)
if err != nil {
return nil, err
}
restConfig, err := ClusterSecretToRestConfig(secret)
if err != nil {
return nil, err
}
if options.Scheme == nil {
options.Scheme = c.internalClusterClient.Scheme()
}
cl, err := client.New(restConfig, options)
if err != nil {
return nil, fmt.Errorf("failed to create client: %w", err)
}
return cl, nil
}