diff --git a/Dockerfile b/Dockerfile
index 37081217965a8e9c8db6db06e70abb2f2be32681..d8d5b6e68fa003ea0f01e0baa28486b83a10cbc2 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM golang:1.11.4 as builder
+FROM golang:1.14.3-stretch as builder
 WORKDIR /
 RUN apt-get update && apt-get install unzip
 RUN wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protoc-3.6.1-linux-x86_64.zip
diff --git a/pkg/service/v1/config-service.go b/pkg/service/v1/config-service.go
index 7f9689587fcece68dfdb812965379de11c172369..25747d95b9c83c5ac1c6e3c99a34e484abbe29af 100644
--- a/pkg/service/v1/config-service.go
+++ b/pkg/service/v1/config-service.go
@@ -184,7 +184,7 @@ func (s *configServiceServer) CreateOrReplace(ctx context.Context, req *v1.Insta
 	}
 
 	//check if configmap already exists
-	_, err = s.kubeAPI.CoreV1().ConfigMaps(depl.Namespace).Get(depl.Uid, metav1.GetOptions{})		
+	_, err = s.kubeAPI.CoreV1().ConfigMaps(depl.Namespace).Get(depl.Uid, metav1.GetOptions{})
 	if err != nil { //Not exists, we create new
 
 		_, err = s.kubeAPI.CoreV1().ConfigMaps(depl.Namespace).Create(&cm)
@@ -414,16 +414,25 @@ func (s *readinessServiceServer) CheckIfReady(ctx context.Context, req *v1.Insta
 		return prepareResponse(v1.Status_FAILED, namespaceNotFound), err
 	}
 
-	app, err := s.kubeAPI.ExtensionsV1beta1().Deployments(depl.Namespace).Get(depl.Uid, metav1.GetOptions{})
-	if err != nil {
-		return prepareResponse(v1.Status_FAILED, "Deployment not found!"), err
-	}
-
-	if *app.Spec.Replicas == app.Status.ReadyReplicas {
-		return prepareResponse(v1.Status_OK, "Deployment is ready"), nil
+	//looking for deployment and checking its status
+	dep, err := s.kubeAPI.ExtensionsV1beta1().Deployments(depl.Namespace).Get(depl.Uid, metav1.GetOptions{})
+	if err == nil {
+		if *dep.Spec.Replicas == dep.Status.ReadyReplicas {
+			return prepareResponse(v1.Status_OK, "Deployment is ready"), nil
+		}
+		return prepareResponse(v1.Status_PENDING, "Waiting for deployment"), err
+	} else {
+		//deployment not found, looking for statefulset and checking its status
+		sts, err2 := s.kubeAPI.AppsV1().StatefulSets(depl.Namespace).Get(depl.Uid, metav1.GetOptions{})
+		if err2 == nil {
+			if *sts.Spec.Replicas == sts.Status.ReadyReplicas {
+				return prepareResponse(v1.Status_OK, "StatefulSet is ready"), nil
+			}
+			return prepareResponse(v1.Status_PENDING, "Waiting for deployment"), err
+		}
 	}
 
-	return prepareResponse(v1.Status_PENDING, "Waiting for deployment"), err
+	return prepareResponse(v1.Status_FAILED, "Neither Deployment nor StatefulSet found!"), err
 }
 
 func (s *informationServiceServer) RetrieveServiceIp(ctx context.Context, req *v1.InstanceRequest) (*v1.InfoServiceResponse, error) {
diff --git a/pkg/service/v1/config-service_test.go b/pkg/service/v1/config-service_test.go
index 4ed3c31a66d851ab84c9649ec9a60ebe91bc0f6c..d536e353f034ee82c4aef2e34caefe0d058e97a8 100644
--- a/pkg/service/v1/config-service_test.go
+++ b/pkg/service/v1/config-service_test.go
@@ -6,6 +6,7 @@ import (
 	"github.com/xanzy/go-gitlab"
 	extension "k8s.io/api/extensions/v1beta1"
 	corev1 "k8s.io/api/core/v1"
+	appsv1 "k8s.io/api/apps/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"testing"
 	testclient "k8s.io/client-go/kubernetes/fake"
@@ -84,6 +85,48 @@ func TestReadinessServiceServer_CheckIfReady(t *testing.T) {
 	}
 }
 
+func TestReadinessServiceServer_CheckIfReadyWithStatefulSet(t *testing.T) {
+	client := testclient.NewSimpleClientset()
+	server := NewReadinessServiceServer(client)
+
+	//Fail on API version check
+	res, err := server.CheckIfReady(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.CheckIfReady(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)
+
+	//Fail on missing deployment
+	res, err = server.CheckIfReady(context.Background(), &req)
+	if err == nil || res.Status != v1.Status_FAILED {
+		t.Fail()
+	}
+
+	//create mock statefulset that is fully deployed
+        sts := appsv1.StatefulSet{}
+        sts.Name = "test-uid"
+        q := int32(5)
+        sts.Spec.Replicas = &q
+        sts.Status.ReadyReplicas = q
+        _, _ = client.AppsV1().StatefulSets("test-namespace").Create(&sts)
+
+        res, err = server.CheckIfReady(context.Background(), &req)
+        if err != nil || res.Status != v1.Status_OK {
+                t.Fail()
+        }
+}
+
 func TestInformationServiceServer_RetrieveServiceIp(t *testing.T) {
 	client := testclient.NewSimpleClientset()
 	server := NewInformationServiceServer(client)