diff --git a/pkg/service/v1/config-service.go b/pkg/service/v1/config-service.go index 518c3d5caccd7e1f5b811632dae74ad54822f82b..b243a92a1401fc598a3382383a09e289bc7d6680 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 9c3afd5c27b9acabb34f6f9fa5d7f09d182d7a1c..9335427d142cc644bfa7625920a2be8942dd9607 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)