Repository: quarkusio/quarkus
Issue: devmode: Quarkus 1.7.0.Final + grpc + smallrye health gRPC Server is DOWN

**Describe the bug**
After generating a project from code.quarkus.io with grpc and smallrye health extensions, then following the quarkus gRPC quickstart guide, the healthcheck endpoint always reports gRPC server as DOWN despite the endpoint successfully responding to calls.

**Expected behavior**
Healthcheck should report UP if the service is available.

```
$ grpcurl -plaintext -proto=src/main/proto/helloworld.proto localhost:9000 helloworld.Greeter.SayHello
{
  "message": "Hello "
}
```

**Actual behavior**
Healthcheck reports DOWN

```
{
    "status": "DOWN",
    "checks": [
        {
            "name": "gRPC Server",
            "status": "DOWN"
        }
    ]
}
```

**To Reproduce**
Reproduction repo: https://github.com/jeffhubLR/quarkus-1.7-grpc-smallrye-health

Steps to reproduce the behavior:
1. Generate project from code.quarkus.io, selecting grpc and smallrye health
2. Follow quarkus grpc quickstart, creating proto and .java file
3. Start up service
4. Find that calls to the grpc service succeed, while the health endpoint still reports DOWN

**Environment (please complete the following information):**
 - Output of `uname -a` or `ver`: Darwin USMACEA094JHUBB 19.5.0 Darwin Kernel Version 19.5.0: Tue May 26 20:41:44 PDT 2020; root:xnu-6153.121.2~2/RELEASE_X86_64 x86_64
 - Output of `java -version`: 
openjdk version "11.0.8" 2020-07-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.8+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.8+10, mixed mode)
 - GraalVM version (if different from Java): 
 - Quarkus version or git rev: 1.7.0.Final
 - Build tool (ie. output of `mvnw --version` or `gradlew --version`): 
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /usr/local/Cellar/maven/3.6.3_1/libexec
Java version: 11.0.8, vendor: AdoptOpenJDK, runtime: /Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.8.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.15.5", arch: "x86_64", family: "mac"


Changed files:
extensions/grpc/runtime/src/main/java/io/quarkus/grpc/runtime/GrpcServerRecorder.java

diff --git a/extensions/grpc/runtime/src/main/java/io/quarkus/grpc/runtime/GrpcServerRecorder.java b/extensions/grpc/runtime/src/main/java/io/quarkus/grpc/runtime/GrpcServerRecorder.java
index 5ca99a60e32..77b64699480 100644
--- a/extensions/grpc/runtime/src/main/java/io/quarkus/grpc/runtime/GrpcServerRecorder.java
+++ b/extensions/grpc/runtime/src/main/java/io/quarkus/grpc/runtime/GrpcServerRecorder.java
@@ -95,24 +95,7 @@ private void prodStart(GrpcContainer grpcContainer, Vertx vertx, GrpcServerConfi
                     if (result.failed()) {
                         startResult.completeExceptionally(result.cause());
                     } else {
-                        grpcContainer.getHealthStorage().stream().forEach(new Consumer<GrpcHealthStorage>() { //NOSONAR
-                            @Override
-                            public void accept(GrpcHealthStorage storage) {
-                                storage.setStatus(GrpcHealthStorage.DEFAULT_SERVICE_NAME,
-                                        HealthOuterClass.HealthCheckResponse.ServingStatus.SERVING);
-                                grpcContainer.getServices().forEach(
-                                        new Consumer<BindableService>() { // NOSONAR
-                                            @Override
-                                            public void accept(BindableService service) {
-                                                ServerServiceDefinition definition = service.bindService();
-                                                storage.setStatus(definition.getServiceDescriptor().getName(),
-                                                        HealthOuterClass.HealthCheckResponse.ServingStatus.SERVING);
-                                            }
-                                        });
-                            }
-                        });
-                        LOGGER.infof("gRPC Server started on %s:%d [SSL enabled: %s]",
-                                configuration.host, configuration.port, !configuration.plainText);
+                        postStartup(grpcContainer, configuration);
 
                         startResult.complete(null);
                     }
@@ -130,6 +113,27 @@ public void accept(BindableService service) {
         }
     }
 
+    private void postStartup(GrpcContainer grpcContainer, GrpcServerConfiguration configuration) {
+        grpcContainer.getHealthStorage().stream().forEach(new Consumer<GrpcHealthStorage>() { //NOSONAR
+            @Override
+            public void accept(GrpcHealthStorage storage) {
+                storage.setStatus(GrpcHealthStorage.DEFAULT_SERVICE_NAME,
+                        HealthOuterClass.HealthCheckResponse.ServingStatus.SERVING);
+                grpcContainer.getServices().forEach(
+                        new Consumer<BindableService>() { // NOSONAR
+                            @Override
+                            public void accept(BindableService service) {
+                                ServerServiceDefinition definition = service.bindService();
+                                storage.setStatus(definition.getServiceDescriptor().getName(),
+                                        HealthOuterClass.HealthCheckResponse.ServingStatus.SERVING);
+                            }
+                        });
+            }
+        });
+        LOGGER.infof("gRPC Server started on %s:%d [SSL enabled: %s]",
+                configuration.host, configuration.port, !configuration.plainText);
+    }
+
     private void devModeStart(GrpcContainer grpcContainer, Vertx vertx, GrpcServerConfiguration configuration,
             ShutdownContext shutdown) {
         CompletableFuture<Boolean> future = new CompletableFuture<>();
@@ -142,6 +146,7 @@ public void handle(AsyncResult<Void> ar) {
                             LOGGER.error("Unable to start the gRPC server", ar.cause());
                             future.completeExceptionally(ar.cause());
                         } else {
+                            postStartup(grpcContainer, configuration);
                             future.complete(true);
                             grpcVerticleCount.incrementAndGet();
                         }