1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-06 16:06:56 +00:00
kyverno/pkg/engine/context/resolvers/utils.go
Charles-Edouard Brétéché 9dd618c13b
chore: move cache enabled label (#7949)
Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
2023-08-01 16:28:38 +00:00

39 lines
1 KiB
Go

package resolvers
import (
"errors"
"time"
"github.com/kyverno/kyverno/api/kyverno"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/selection"
kubeinformers "k8s.io/client-go/informers"
"k8s.io/client-go/kubernetes"
)
func GetCacheSelector() (labels.Selector, error) {
selector := labels.Everything()
requirement, err := labels.NewRequirement(kyverno.LabelCacheEnabled, selection.Exists, nil)
if err != nil {
return nil, err
}
return selector.Add(*requirement), err
}
func GetCacheInformerFactory(client kubernetes.Interface, resyncPeriod time.Duration) (kubeinformers.SharedInformerFactory, error) {
if client == nil {
return nil, errors.New("client cannot be nil")
}
selector, err := GetCacheSelector()
if err != nil {
return nil, err
}
return kubeinformers.NewSharedInformerFactoryWithOptions(
client,
resyncPeriod,
kubeinformers.WithTweakListOptions(func(opts *metav1.ListOptions) {
opts.LabelSelector = selector.String()
}),
), nil
}