in src/app/backend/integration/metric/heapster/selector.go [74:98]
func getMyPodsFromCache(selector metricapi.ResourceSelector, cachedPods []v1.Pod) (matchingPods []v1.Pod, err error) {
switch {
case cachedPods == nil:
err = fmt.Errorf(`Pods were not available in cache. Required for resource type: "%s"`,
selector.ResourceType)
case selector.ResourceType == api.ResourceKindDeployment:
for _, pod := range cachedPods {
if pod.ObjectMeta.Namespace == selector.Namespace && api.IsSelectorMatching(selector.Selector, pod.Labels) {
matchingPods = append(matchingPods, pod)
}
}
default:
for _, pod := range cachedPods {
if pod.Namespace == selector.Namespace {
for _, ownerRef := range pod.OwnerReferences {
if ownerRef.Controller != nil && *ownerRef.Controller == true &&
ownerRef.UID == selector.UID {
matchingPods = append(matchingPods, pod)
}
}
}
}
}
return
}