diff --git a/VERSION b/VERSION
index ebbf6e5..98c938e 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.2.12-dev
+2.2.12
diff --git a/pkg/grpc/server.go b/pkg/grpc/server.go
index 488d470..7796b83 100644
--- a/pkg/grpc/server.go
+++ b/pkg/grpc/server.go
@@ -79,12 +79,14 @@
 	port int,
 	certs *GrpcSecurity,
 	secure bool,
+	probe ReadyProbe,
 ) *GrpcServer {
 	server := &GrpcServer{
 		address:      address,
 		port:         port,
 		secure:       secure,
 		GrpcSecurity: certs,
+		probe:        probe,
 	}
 	return server
 }
@@ -124,12 +126,6 @@
 	}
 }
 
-// Attach a readiness probe to the server.
-// If the probe returns NotReady, the server will return UNAVAILABLE
-func (s *GrpcServer) AttachReadyProbe(p ReadyProbe) {
-	s.probe = p
-}
-
 func withServerUnaryInterceptor(s *GrpcServer) grpc.ServerOption {
 	return grpc.UnaryInterceptor(mkServerInterceptor(s))
 }
diff --git a/pkg/grpc/server_test.go b/pkg/grpc/server_test.go
index a3afc09..df3911c 100644
--- a/pkg/grpc/server_test.go
+++ b/pkg/grpc/server_test.go
@@ -38,12 +38,12 @@
 }
 
 func TestNewGrpcServer(t *testing.T) {
-	server := NewGrpcServer("127.0.0.1", 1234, nil, false)
+	server := NewGrpcServer("127.0.0.1", 1234, nil, false, nil)
 	assert.NotNil(t, server)
 }
 
 func TestMkServerInterceptorNoProbe(t *testing.T) {
-	server := NewGrpcServer("127.0.0.1", 1234, nil, false)
+	server := NewGrpcServer("127.0.0.1", 1234, nil, false, nil)
 	assert.NotNil(t, server)
 
 	f := mkServerInterceptor(server)
@@ -62,7 +62,9 @@
 }
 
 func TestMkServerInterceptorReady(t *testing.T) {
-	server := NewGrpcServer("127.0.0.1", 1234, nil, false)
+	probe := &MockReadyProbe{Ready: true}
+
+	server := NewGrpcServer("127.0.0.1", 1234, nil, false, probe)
 	assert.NotNil(t, server)
 
 	f := mkServerInterceptor(server)
@@ -71,9 +73,6 @@
 	req := "SomeRequest"
 	serverInfo := grpc.UnaryServerInfo{Server: nil, FullMethod: "somemethod"}
 
-	probe := &MockReadyProbe{Ready: true}
-	server.AttachReadyProbe(probe)
-
 	result, err := f(context.Background(),
 		req,
 		&serverInfo,
@@ -84,7 +83,9 @@
 }
 
 func TestMkServerInterceptorNotReady(t *testing.T) {
-	server := NewGrpcServer("127.0.0.1", 1234, nil, false)
+	probe := &MockReadyProbe{Ready: false}
+
+	server := NewGrpcServer("127.0.0.1", 1234, nil, false, probe)
 	assert.NotNil(t, server)
 
 	f := mkServerInterceptor(server)
@@ -93,9 +94,6 @@
 	req := "SomeRequest"
 	serverInfo := grpc.UnaryServerInfo{Server: nil, FullMethod: "somemethod"}
 
-	probe := &MockReadyProbe{Ready: false}
-	server.AttachReadyProbe(probe)
-
 	result, err := f(context.Background(),
 		req,
 		&serverInfo,
