in flink-kubernetes-operator/src/main/java/org/apache/flink/kubernetes/operator/health/InformerHealthSummary.java [36:60]
public static InformerHealthSummary fromRuntimeInfo(RuntimeInfo runtimeInfo) {
var newUnHealthy = new HashSet<InformerIdentifier>();
boolean anyHealthy = false;
for (var controllerEntry :
runtimeInfo.unhealthyInformerWrappingEventSourceHealthIndicator().entrySet()) {
for (var eventSourceEntry : controllerEntry.getValue().entrySet()) {
Map<String, InformerHealthIndicator> informers =
eventSourceEntry.getValue().informerHealthIndicators();
for (var informerEntry : informers.entrySet()) {
if (informerEntry.getValue().getStatus() == Status.HEALTHY) {
anyHealthy = true;
} else {
newUnHealthy.add(
new InformerIdentifier(
controllerEntry.getKey(),
eventSourceEntry.getKey(),
informerEntry.getKey()));
}
}
}
}
return new InformerHealthSummary(anyHealthy || newUnHealthy.isEmpty(), newUnHealthy);
}