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/resolvers.go
Charles-Edouard Brétéché 6c0549febe
refactor: more engine interface (#6199)
* refactor: more engine interface

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>

* fixes

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>

* fix

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>

* fix

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>

---------

Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
2023-02-03 13:01:11 +08:00

42 lines
1.2 KiB
Go

package resolvers
import (
"context"
"errors"
engineapi "github.com/kyverno/kyverno/pkg/engine/api"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
corev1listers "k8s.io/client-go/listers/core/v1"
)
type informerBasedResolver struct {
lister corev1listers.ConfigMapLister
}
func NewInformerBasedResolver(lister corev1listers.ConfigMapLister) (engineapi.ConfigmapResolver, error) {
if lister == nil {
return nil, errors.New("lister must not be nil")
}
return &informerBasedResolver{lister}, nil
}
func (i *informerBasedResolver) Get(ctx context.Context, namespace, name string) (*corev1.ConfigMap, error) {
return i.lister.ConfigMaps(namespace).Get(name)
}
type clientBasedResolver struct {
kubeClient kubernetes.Interface
}
func NewClientBasedResolver(client kubernetes.Interface) (engineapi.ConfigmapResolver, error) {
if client == nil {
return nil, errors.New("client must not be nil")
}
return &clientBasedResolver{client}, nil
}
func (c *clientBasedResolver) Get(ctx context.Context, namespace, name string) (*corev1.ConfigMap, error) {
return c.kubeClient.CoreV1().ConfigMaps(namespace).Get(ctx, name, metav1.GetOptions{})
}