in pkg/networkaware/networkoverhead/networkoverhead.go [496:568]
func checkMaxNetworkCostRequirements(
scheduledList networkawareutil.ScheduledList,
dependencyList []agv1alpha1.DependenciesInfo,
nodeInfo *framework.NodeInfo,
region string,
zone string,
costMap map[networkawareutil.CostKey]int64,
no *NetworkOverhead) (int64, int64, error) {
var satisfied int64 = 0
var violated int64 = 0
// check if maxNetworkCost fits
for _, podAllocated := range scheduledList { // For each pod already allocated
if podAllocated.Hostname != "" { // if hostname not empty...
for _, d := range dependencyList { // For each pod dependency
// If the pod allocated is not an established dependency, continue.
if podAllocated.Selector != d.Workload.Selector {
continue
}
// If the Pod hostname is the node being filtered, requirements are checked via extended resources
if podAllocated.Hostname == nodeInfo.Node().Name {
satisfied += 1
continue
}
// If Nodes are not the same, get NodeInfo from pod Hostname
podNodeInfo, err := no.handle.SnapshotSharedLister().NodeInfos().Get(podAllocated.Hostname)
if err != nil {
klog.ErrorS(nil, "getting pod nodeInfo %q from Snapshot: %v", podNodeInfo, err)
return satisfied, violated, err
}
// Get zone and region from Pod Hostname
regionPodNodeInfo := networkawareutil.GetNodeRegion(podNodeInfo.Node())
zonePodNodeInfo := networkawareutil.GetNodeZone(podNodeInfo.Node())
if regionPodNodeInfo == "" && zonePodNodeInfo == "" { // Node has no zone and region defined
violated += 1
} else if region == regionPodNodeInfo { // If Nodes belong to the same region
if zone == zonePodNodeInfo { // If Nodes belong to the same zone
satisfied += 1
} else { // belong to a different zone, check maxNetworkCost
cost, costOK := costMap[networkawareutil.CostKey{ // Retrieve the cost from the map (origin: zone, destination: pod zoneHostname)
Origin: zone, // Time Complexity: O(1)
Destination: zonePodNodeInfo,
}]
if costOK {
if cost <= d.MaxNetworkCost {
satisfied += 1
} else {
violated += 1
}
}
}
} else { // belong to a different region
cost, costOK := costMap[networkawareutil.CostKey{ // Retrieve the cost from the map (origin: zone, destination: pod zoneHostname)
Origin: region, // Time Complexity: O(1)
Destination: regionPodNodeInfo,
}]
if costOK {
if cost <= d.MaxNetworkCost {
satisfied += 1
} else {
violated += 1
}
}
}
}
}
}
return satisfied, violated, nil
}