func()

in pkg/authenticator/target_cluster_client.go [166:191]


func (tcc *targetClusterClient) CreateClusterNamespace(ctx context.Context, clusterName string) (err error) {
	err = tcc.Initialize(ctx, clusterName)
	if err != nil {
		return fmt.Errorf("initializing target client: %s", err)
	}

	restConfig, err := tcc.ToRESTConfig()
	if err != nil {
		return fmt.Errorf("create rest config for %s: %s", clusterName, err)
	}

	k8sClient, err := client.New(restConfig, client.Options{})
	if err != nil {
		return fmt.Errorf("creating client for %s: %s", clusterName, err)
	}

	if !tcc.CheckNamespace(ctx, api.PackageNamespace) {
		err := k8sClient.Create(ctx, &corev1.Namespace{
			ObjectMeta: metav1.ObjectMeta{Name: api.PackageNamespace},
		})
		if err != nil {
			return fmt.Errorf("create namespace for %q: %s", clusterName, err)
		}
	}
	return nil
}