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/main/java/org/elasticsearch/health/HealthService.java
boolean clusterStateRecovered,
        boolean computeDetails
    ) {
        assert clusterStateRecovered == false || preflightResults.isEmpty() == false
            : "Requires at least one non-GREEN preflight result or cluster state not recovered";
        HealthIndicatorDetails unknownDetails;
        if (computeDetails) {
            if (clusterStateRecovered) {
                
                Map<String, String> clusterUnstableReasons = preflightResults.stream()
                    .filter(result -> HealthStatus.GREEN.equals(result.status()) == false)
                    .collect(toMap(HealthIndicatorResult::name, result -> result.status().xContentValue()));
                assert clusterUnstableReasons.isEmpty() == false : "Requires at least one non-GREEN preflight result";
                unknownDetails = new SimpleHealthIndicatorDetails(Map.of(REASON, clusterUnstableReasons));
            } else {
                unknownDetails = DETAILS_UNKNOWN_STATE_NOT_RECOVERED;
            }
        } else {
            unknownDetails = HealthIndicatorDetails.EMPTY;
        }
        return unknownDetails;
    }
    /**
     * Generates an UNKNOWN result for an indicator
     * @param indicatorService the indicator to generate a result for
     * @param summary the summary to include for the UNKNOWN result
     * @param details the details to include on the result
     * @return A result with the UNKNOWN status
     */
    private HealthIndicatorResult generateUnknownResult(