1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-09 01:16:55 +00:00
kyverno/pkg/policy/utils.go

41 lines
919 B
Go
Raw Normal View History

2019-08-23 18:34:23 -07:00
package policy
import (
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/util/sets"
)
func fetchUniqueKinds(rule kyvernov1.Rule) []string {
kinds := sets.New(rule.MatchResources.Kinds...)
for _, any := range rule.MatchResources.Any {
kinds.Insert(any.Kinds...)
}
for _, all := range rule.MatchResources.All {
kinds.Insert(all.Kinds...)
}
return kinds.UnsortedList()
}
func convertlist(ulists []unstructured.Unstructured) []*unstructured.Unstructured {
var result []*unstructured.Unstructured
for _, list := range ulists {
result = append(result, list.DeepCopy())
}
return result
}
func castPolicy(p interface{}) kyvernov1.PolicyInterface {
var policy kyvernov1.PolicyInterface
switch obj := p.(type) {
case *kyvernov1.ClusterPolicy:
policy = obj
case *kyvernov1.Policy:
policy = obj
}
return policy
}