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
ClusterService clusterService
    ) {
        this.preflightHealthIndicatorServices = preflightHealthIndicatorServices;
        this.healthIndicatorServices = healthIndicatorServices;
        this.clusterService = clusterService;
    }
    /**
     * Returns the list of HealthComponentResults for this cluster. If no componentName is specified, one HealthComponentResult is returned
     * for each component in the system. If a componentName is given, only the single HealthComponentResult for that component is
     * returned. If both a componentName and indicatorName are given, the returned HealthComponentResult will only have information about
     * the given indicatorName.
     * @param componentName If not null, only the component with this name is returned
     * @param indicatorName If not null, the returned component will only have this indicator
     * @param explain Whether to compute the details portion of the component results
     * @return A list of all HealthComponentResults if componentName is null, or one HealthComponentResult if componentName is not null
     * @throws ResourceNotFoundException if a component name is given and the component or indicator are not found
     */
    public List<HealthComponentResult> getHealth(@Nullable String componentName, @Nullable String indicatorName, boolean explain) {
        final boolean shouldDrillDownToIndicatorLevel = indicatorName != null;
        final boolean showRolledUpComponentStatus = shouldDrillDownToIndicatorLevel == false;
        
        boolean clusterStateRecovered = clusterService.state()
            .getBlocks()
            .hasGlobalBlock(GatewayService.STATE_NOT_RECOVERED_BLOCK) == false;
        List<HealthIndicatorResult> preflightResults;
        if (clusterStateRecovered) {
            
            preflightResults = preflightHealthIndicatorServices.stream().map(service -> service.calculate(explain)).toList();
        } else {