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
groupingBy(
                        HealthIndicatorResult::component,
                        TreeMap::new,
                        collectingAndThen(
                            toList(),
                            indicators -> HealthService.createComponentFromIndicators(indicators, showRolledUpComponentStatus)
                        )
                    )
                )
                .values()
        );
        if (components.isEmpty() && componentName != null) {
            String errorMessage;
            if (indicatorName != null) {
                errorMessage = String.format(Locale.ROOT, "Did not find indicator %s in component %s", indicatorName, componentName);
            } else {
                errorMessage = String.format(Locale.ROOT, "Did not find component %s", componentName);
            }
            throw new ResourceNotFoundException(errorMessage);
        }
        return components;
    }
    /**
     * Return details to include on health indicator results when health information cannot be obtained due to unstable cluster.
     * @param preflightResults Results of indicators used to determine if health checks can happen.
     * @param computeDetails If details should be calculated on which indicators are causing the UNKNOWN state.
     * @return Details explaining why results are UNKNOWN, or an empty detail set if computeDetails is false.
     */
    private HealthIndicatorDetails healthUnknownReason(
        List<HealthIndicatorResult> preflightResults,