From 7e3695c3ebc4f532fd51165865c2cfb83b1d1a37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Bie=C5=84?= <michal1.bien@gmail.com> Date: Wed, 17 Apr 2019 13:03:12 +0200 Subject: [PATCH] Nonexistent namespace is now created when createorreplace called --- pkg/service/v1/config-service.go | 18 ++++++++++++++---- pkg/service/v1/config-service_test.go | 12 ------------ 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/pkg/service/v1/config-service.go b/pkg/service/v1/config-service.go index 518c3d5..b243a92 100644 --- a/pkg/service/v1/config-service.go +++ b/pkg/service/v1/config-service.go @@ -194,8 +194,13 @@ func (s *configServiceServer) CreateOrReplace(ctx context.Context, req *v1.Insta //check if given k8s namespace exists _, err = s.kubeAPI.CoreV1().Namespaces().Get(depl.Namespace, metav1.GetOptions{}) - if err != nil { - return prepareResponse(v1.Status_FAILED, namespaceNotFound), err + if err != nil{ + ns := apiv1.Namespace{} + ns.Name = depl.Namespace + _, err = s.kubeAPI.CoreV1().Namespaces().Create(&ns) + if err != nil { + return prepareResponse(v1.Status_FAILED, namespaceNotFound), err + } } //check if configmap already exists @@ -318,8 +323,13 @@ func (s *basicAuthServiceServer) CreateOrReplace(ctx context.Context, req *v1.In //check if given k8s namespace exists _, err := s.kubeAPI.CoreV1().Namespaces().Get(depl.Namespace, metav1.GetOptions{}) - if err != nil { - return prepareResponse(v1.Status_FAILED, namespaceNotFound), err + if err != nil{ + ns := apiv1.Namespace{} + ns.Name = depl.Namespace + _, err = s.kubeAPI.CoreV1().Namespaces().Create(&ns) + if err != nil { + return prepareResponse(v1.Status_FAILED, namespaceNotFound), err + } } secretName := getAuthSecretName(depl.Uid) diff --git a/pkg/service/v1/config-service_test.go b/pkg/service/v1/config-service_test.go index 9c3afd5..9335427 100644 --- a/pkg/service/v1/config-service_test.go +++ b/pkg/service/v1/config-service_test.go @@ -170,18 +170,6 @@ func TestBasicAuthServiceServer_CreateOrReplace(t *testing.T) { t.Fail() } - //Fail on namespace check - freq := v1.InstanceCredentialsRequest{Api:apiVersion, Instance:&fake_ns_inst, Credentials: &creds} - res, err = server.CreateOrReplace(context.Background(), &freq) - if err == nil || res.Status != v1.Status_FAILED { - t.Fail() - } - - //create mock namespace - ns := corev1.Namespace{} - ns.Name = "test-namespace" - _, _ = client.CoreV1().Namespaces().Create(&ns) - //Should create new secret req := v1.InstanceCredentialsRequest{Api:apiVersion, Instance:&inst, Credentials: &creds} res, err = server.CreateOrReplace(context.Background(), &req) -- GitLab