mirror of
https://github.com/kubernetes-sigs/node-feature-discovery.git
synced 2024-12-15 17:50:49 +00:00
34 lines
870 B
Go
34 lines
870 B
Go
package resourcemonitor
|
|
|
|
import (
|
|
corev1 "k8s.io/api/core/v1"
|
|
"k8s.io/apimachinery/pkg/util/sets"
|
|
"k8s.io/klog/v2"
|
|
)
|
|
|
|
// ExcludeResourceList contains a list of resources to ignore during resources scan
|
|
type ExcludeResourceList struct {
|
|
excludeList sets.Set[string]
|
|
}
|
|
|
|
// NewExcludeResourceList returns new ExcludeList with values with set.String types
|
|
func NewExcludeResourceList(resMap map[string][]string, nodeName string) ExcludeResourceList {
|
|
excludeList := make(sets.Set[string])
|
|
|
|
for k, v := range resMap {
|
|
if k == nodeName || k == "*" {
|
|
excludeList.Insert(v...)
|
|
}
|
|
}
|
|
return ExcludeResourceList{
|
|
excludeList: excludeList,
|
|
}
|
|
}
|
|
|
|
func (rl *ExcludeResourceList) IsExcluded(resource corev1.ResourceName) bool {
|
|
if rl.excludeList.Has(string(resource)) {
|
|
klog.V(5).InfoS("resource excluded", "resourceName", resource)
|
|
return true
|
|
}
|
|
return false
|
|
}
|