From 0cb8295df18218e5611f53954c02fb80858bbe76 Mon Sep 17 00:00:00 2001 From: Nikolai Rodionov Date: Mon, 6 May 2024 10:48:59 +0200 Subject: [PATCH] Try a clientset instead of a client --- internal/controllers/environments.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/internal/controllers/environments.go b/internal/controllers/environments.go index b207ab0..66c0143 100644 --- a/internal/controllers/environments.go +++ b/internal/controllers/environments.go @@ -13,7 +13,6 @@ import ( "git.badhouseplants.net/softplayer/softplayer-backend/internal/helpers/kube" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" ctrl "sigs.k8s.io/controller-runtime" @@ -21,6 +20,7 @@ import ( type Environemnt struct { Controller ctrl.Manager + Config *rest.Config UserID string Data *EnvironemntData Token string @@ -56,9 +56,12 @@ SP_DISK_SIZE=%d`, // Check whether used has passed the email verification func (env *Environemnt) isNsVerified(ctx context.Context) error { - client := env.Controller.GetClient() - ns := &corev1.Namespace{} - if err := client.Get(ctx, types.NamespacedName{Name: env.UserID}, ns); err != nil { + clientset, err := kubernetes.NewForConfig(env.Config) + if err != nil { + return err + } + ns, err := clientset.CoreV1().Namespaces().Get(ctx, env.UserID, metav1.GetOptions{}) + if err != nil { return err } @@ -66,18 +69,21 @@ func (env *Environemnt) isNsVerified(ctx context.Context) error { if !ok || val == "false" { return errors.New("user email is not verified, can't create an new env") } + return nil } // Create environment should create a new configmap in the user's namespace // using a token that belongs to the user. func (env *Environemnt) Create(ctx context.Context) error { - env.Data.UUID = uuid.New().String() if err := env.isNsVerified(ctx); err != nil { log.Println("Can't verify ns") return err } + // Prepare a new ID for a enironment + env.Data.UUID = uuid.New().String() + env.Controller.GetClient() conf := &rest.Config{ Host: "https://kubernetes.default.svc.cluster.local:443",