func GetRemoteClientSets()

in ecrtokenrefresher/pkg/secrets/common/common.go [57:93]


func GetRemoteClientSets(defaultClientset *kubernetes.Clientset) (secrets.ClusterClientSet, error) {
	clusterNames, err := getClusterNameFromNamespaces(defaultClientset)
	if err != nil {
		return nil, err
	}

	remoteClientSets := make(secrets.ClusterClientSet)
	for _, clusterName := range clusterNames {
		secretName := clusterName + "-kubeconfig"
		kubeconfigSecret, err := k8s.GetSecret(defaultClientset, secretName, constants.EksaSystemNamespace)
		if err != nil {
			return nil, err
		}

		kubeconfig := kubeconfigSecret.Data["value"]
		if len(kubeconfig) <= 0 {
			return nil, fmt.Errorf("kubeconfig string in secret not set")
		}

		clientConfig, err := clientcmd.NewClientConfigFromBytes(kubeconfig)
		if err != nil {
			return nil, fmt.Errorf("creating client config: %s", err)
		}

		config, err := clientConfig.ClientConfig()
		if err != nil {
			return nil, fmt.Errorf("creating rest config config: %s", err)
		}

		remoteClientSet, err := kubernetes.NewForConfig(config)
		if err != nil {
			return nil, err
		}
		remoteClientSets[clusterName] = remoteClientSet
	}
	return remoteClientSets, nil
}