diff --git a/api/proto/v1/config-service.proto b/api/proto/v1/config-service.proto
index a7c2e636a4cb39fe5267d172ba7afc7969707971..d626cd817695d8f6bcc93c703fb150a46e6717d6 100644
--- a/api/proto/v1/config-service.proto
+++ b/api/proto/v1/config-service.proto
@@ -36,7 +36,7 @@ message InfoServiceResponse {
     string api = 1;
     Status status = 2;
     string message = 3;
-	string info = 4;
+    string info = 4;
 }
 
 message InstanceCredentialsRequest {
@@ -65,4 +65,5 @@ service ReadinessService {
 
 service InformationService {
     rpc RetrieveServiceIp(InstanceRequest) returns (InfoServiceResponse);
-}
\ No newline at end of file
+    rpc CheckServiceExists(InstanceRequest) returns (InfoServiceResponse);
+}
diff --git a/build_and_publish.sh b/build_and_publish.sh
index d9ea15ba1cb6d129a48d148cde26ae851340d557..767a46b2e61b5fc1735bf90e469a8813e305ff7c 100755
--- a/build_and_publish.sh
+++ b/build_and_publish.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-TAG=1.3.2
+TAG=1.4.1
 WHAT=janitor
 sudo docker build --rm -t artifactory.software.geant.org/nmaas-docker-local/nmaas-$WHAT:$TAG .
 sudo docker push artifactory.software.geant.org/nmaas-docker-local/nmaas-$WHAT:$TAG
diff --git a/pkg/service/v1/config-service.go b/pkg/service/v1/config-service.go
index b534161d3bedaeddd9edf0a745ab33a09a0004ba..c48df51e6d6ec5f8f215cfc9db629030e96d16ee 100644
--- a/pkg/service/v1/config-service.go
+++ b/pkg/service/v1/config-service.go
@@ -550,3 +550,31 @@ func (s *informationServiceServer) RetrieveServiceIp(ctx context.Context, req *v
 	}
 
 }
+
+func (s *informationServiceServer) CheckServiceExists(ctx context.Context, req *v1.InstanceRequest) (*v1.InfoServiceResponse, error) {
+
+	log.Printf("Entered CheckServiceExists method")
+
+	// check if the API version requested by client is supported by server
+	if err := checkAPI(req.Api, apiVersion); err != nil {
+		return nil, err
+	}
+
+	depl := req.Deployment
+
+	//check if given k8s namespace exists
+	_, err := s.kubeAPI.CoreV1().Namespaces().Get(ctx, depl.Namespace, metav1.GetOptions{})
+	if err != nil {
+		return prepareInfoResponse(v1.Status_FAILED, namespaceNotFound, ""), err
+	}
+
+	log.Printf("About to read service %s details from namespace %s", depl.Uid, depl.Namespace)
+
+	ser, err := s.kubeAPI.CoreV1().Services(depl.Namespace).Get(ctx, depl.Uid, metav1.GetOptions{})
+	if err != nil {
+		return prepareInfoResponse(v1.Status_FAILED, "Service not found!", ""), err
+	}
+	
+	return prepareInfoResponse(v1.Status_OK, "", ser.Name), err
+
+}
diff --git a/pkg/service/v1/config-service_test.go b/pkg/service/v1/config-service_test.go
index 5b9df9a681dcb12216ea444464a2a693030899ba..c80601afb3af5f59fa1ac15ab4a3ce25513525eb 100644
--- a/pkg/service/v1/config-service_test.go
+++ b/pkg/service/v1/config-service_test.go
@@ -197,6 +197,46 @@ func TestInformationServiceServer_RetrieveServiceIp(t *testing.T) {
 	}
 }
 
+func TestInformationServiceServer_CheckServiceExists(t *testing.T) {
+	client := testclient.NewSimpleClientset()
+	server := NewInformationServiceServer(client)
+
+	//Fail on API version check
+	res, err := server.CheckServiceExists(context.Background(), &illegal_req)
+	if err == nil || res != nil {
+		t.Fail()
+	}
+
+	//Fail on namespace check
+	freq := v1.InstanceRequest{Api:apiVersion, Deployment:&fake_ns_inst}
+	res, err = server.CheckServiceExists(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(context.Background(), &ns, metav1.CreateOptions{})
+
+	//Fail on loading services
+	res, err = server.CheckServiceExists(context.Background(), &req)
+	if err == nil || res.Status != v1.Status_FAILED || res.Message != "Service not found!" {
+		t.Fail()
+	}
+
+	//create mock service without ingress
+	s1 := corev1.Service{}
+	s1.Name = "test-uid"
+	_, _ = client.CoreV1().Services("test-namespace").Create(context.Background(), &s1, metav1.CreateOptions{})
+
+	//Pass
+	res, err = server.CheckServiceExists(context.Background(), &req)
+	if res.Status != v1.Status_OK {
+		t.Fail()
+	}
+}
+
 func TestCertManagerServiceServer_DeleteIfExists(t *testing.T) {
 	client := testclient.NewSimpleClientset()
 	server := NewCertManagerServiceServer(client)