The master-is-stable indicator will retrieve useful information
regarding the discovery. This will be useful even if the local
cluster state is not recovered.

We currently do not evaluate the instance-has-master indicator
if the cluster state is not recovered, but we should remove this
constraint once master-is-stable is merged
server/src/test/java/org/elasticsearch/health/HealthServiceTests.java
assertThat(health.size(), is(equalTo(1)));
        {
            HealthComponentResult component1 = health.stream()
                .filter(result -> result.name().equals("coordination"))
                .findAny()
                .orElseThrow();
            assertThat(component1.status(), is(equalTo(YELLOW)));
            assertThat(component1.indicators(), is(notNullValue()));
            assertThat(component1.indicators(), containsInAnyOrder(hasMaster, networkLatency, slowTasks));
        }
        
        health = service.getHealth("coordination", "slow_task_assignment", false);
        assertThat(health.size(), is(equalTo(1)));
        {
            HealthComponentResult component1 = health.stream()
                .filter(result -> result.name().equals("coordination"))
                .findAny()
                .orElseThrow();
            assertThat(component1.indicators(), is(notNullValue()));
            assertThat(component1.indicators(), contains(slowTasks));
        }
        
        health = service.getHealth("coordination", "has_master", false);
        assertThat(health.size(), is(equalTo(1)));
        {
            HealthComponentResult component1 = health.stream()
                .filter(result -> result.name().equals("coordination"))
                .findAny()
                .orElseThrow();
            assertThat(component1.indicators(), is(notNullValue()));