package resource import ( corev1 "k8s.io/api/core/v1" ) type Resource string const ( UIRequestResource Resource = "display.edge.ncr.com/ui-request" AudioRequestResource Resource = "audio.edge.ncr.com/audio-request" ) func (resource Resource) String() string { return string(resource) } func (resource Resource) ResourceName() corev1.ResourceName { return corev1.ResourceName(resource) } // Returns true if any of the pod's containers make a request for // the given resource. func ContainersHasResourceRequest(ctrs []corev1.Container, resource Resource) bool { containers := findPodContainersWithResourceRequest(ctrs, resource) return len(containers) > 0 } // Returns a pod's containers which made the given resource request. func findPodContainersWithResourceRequest(ctrs []corev1.Container, resource Resource) []*corev1.Container { containers := []*corev1.Container{} for idx, container := range ctrs { for resourceName := range container.Resources.Requests { if resourceName == resource.ResourceName() { containers = append(containers, &ctrs[idx]) } } } return containers }