...

Source file src/edge-infra.dev/pkg/sds/ien/resource/resource.go

Documentation: edge-infra.dev/pkg/sds/ien/resource

     1  package resource
     2  
     3  import (
     4  	corev1 "k8s.io/api/core/v1"
     5  )
     6  
     7  type Resource string
     8  
     9  const (
    10  	UIRequestResource    Resource = "display.edge.ncr.com/ui-request"
    11  	AudioRequestResource Resource = "audio.edge.ncr.com/audio-request"
    12  )
    13  
    14  func (resource Resource) String() string {
    15  	return string(resource)
    16  }
    17  
    18  func (resource Resource) ResourceName() corev1.ResourceName {
    19  	return corev1.ResourceName(resource)
    20  }
    21  
    22  // Returns true if any of the pod's containers make a request for
    23  // the given resource.
    24  func ContainersHasResourceRequest(ctrs []corev1.Container, resource Resource) bool {
    25  	containers := findPodContainersWithResourceRequest(ctrs, resource)
    26  	return len(containers) > 0
    27  }
    28  
    29  // Returns a pod's containers which made the given resource request.
    30  func findPodContainersWithResourceRequest(ctrs []corev1.Container, resource Resource) []*corev1.Container {
    31  	containers := []*corev1.Container{}
    32  	for idx, container := range ctrs {
    33  		for resourceName := range container.Resources.Requests {
    34  			if resourceName == resource.ResourceName() {
    35  				containers = append(containers, &ctrs[idx])
    36  			}
    37  		}
    38  	}
    39  	return containers
    40  }
    41  

View as plain text