1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-04-08 18:15:48 +00:00

refactor: remove ns lister from webhookconfig (#3452)

Signed-off-by: Charles-Edouard Brétéché <charled.breteche@gmail.com>

Co-authored-by: Prateek Pandey <prateekpandey14@gmail.com>
This commit is contained in:
Charles-Edouard Brétéché 2022-03-23 09:04:02 +01:00 committed by GitHub
parent 06fc472f52
commit 65409890b4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 20 additions and 35 deletions

View file

@ -243,7 +243,6 @@ func main() {
kubeInformer.Admissionregistration().V1().ValidatingWebhookConfigurations(),
rCache,
kubeKyvernoInformer.Apps().V1().Deployments(),
kubeInformer.Core().V1().Namespaces(),
pInformer.Kyverno().V1().ClusterPolicies(),
pInformer.Kyverno().V1().Policies(),
serverIP,
@ -251,7 +250,8 @@ func main() {
debug,
autoUpdateWebhooks,
stopCh,
log.Log)
log.Log,
)
webhookMonitor, err := webhookconfig.NewMonitor(kubeClient, log.Log)
if err != nil {

View file

@ -49,7 +49,6 @@ type Interface interface {
//NewEventGenerator to generate a new event controller
func NewEventGenerator(client *client.Client, cpInformer kyvernoinformer.ClusterPolicyInformer, pInformer kyvernoinformer.PolicyInformer, log logr.Logger) *Generator {
gen := Generator{
client: client,
cpLister: cpInformer.Lister(),
@ -85,10 +84,15 @@ func initRecorder(client *client.Client, eventSource Source, log logr.Logger) re
}
eventBroadcaster.StartRecordingToSink(
&typedcorev1.EventSinkImpl{
Interface: eventInterface})
Interface: eventInterface,
},
)
recorder := eventBroadcaster.NewRecorder(
scheme.Scheme,
v1.EventSource{Component: eventSource.String()})
v1.EventSource{
Component: eventSource.String(),
},
)
return recorder
}

View file

@ -5,7 +5,7 @@ import (
"regexp"
)
//MsgKey is an identified to determine the preset message formats
//MsgKey is an identifier to determine the preset message formats
type MsgKey int
//Message id for pre-defined messages

View file

@ -23,15 +23,13 @@ import (
"github.com/pkg/errors"
admregapi "k8s.io/api/admissionregistration/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime/schema"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
adminformers "k8s.io/client-go/informers/admissionregistration/v1"
informers "k8s.io/client-go/informers/core/v1"
admlisters "k8s.io/client-go/listers/admissionregistration/v1"
listers "k8s.io/client-go/listers/core/v1"
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/util/workqueue"
)
@ -83,9 +81,6 @@ type webhookConfigManager struct {
stopCh <-chan struct{}
log logr.Logger
nsLister listers.NamespaceLister
nsListerSynced func() bool
}
type manage interface {
@ -100,7 +95,6 @@ func newWebhookConfigManager(
mwcInformer adminformers.MutatingWebhookConfigurationInformer,
vwcInformer adminformers.ValidatingWebhookConfigurationInformer,
resCache resourcecache.ResourceCache,
nsInformer informers.NamespaceInformer,
serverIP string,
autoUpdateWebhooks bool,
createDefaultWebhook chan<- string,
@ -125,9 +119,6 @@ func newWebhookConfigManager(
m.pLister = pInformer.Lister()
m.npLister = npInformer.Lister()
m.nsLister = nsInformer.Lister()
m.nsListerSynced = nsInformer.Informer().HasSynced
m.pListerSynced = pInformer.Informer().HasSynced
m.npListerSynced = npInformer.Informer().HasSynced
@ -302,7 +293,7 @@ func (m *webhookConfigManager) start() {
m.log.Info("starting")
defer m.log.Info("shutting down")
if !cache.WaitForCacheSync(m.stopCh, m.pListerSynced, m.npListerSynced, m.mutateInformerSynced, m.validateInformerSynced, m.nsListerSynced) {
if !cache.WaitForCacheSync(m.stopCh, m.pListerSynced, m.npListerSynced, m.mutateInformerSynced, m.validateInformerSynced) {
m.log.Info("failed to sync informer cache")
return
}
@ -414,22 +405,14 @@ func (m *webhookConfigManager) getPolicy(namespace, name string) (*kyverno.Clust
func (m *webhookConfigManager) listAllPolicies() ([]*kyverno.ClusterPolicy, error) {
policies := []*kyverno.ClusterPolicy{}
namespaces, err := m.nsLister.List(labels.Everything())
polList, err := m.npLister.Policies(metav1.NamespaceAll).List(labels.Everything())
if err != nil {
m.log.Error(err, "unabled to list namespaces")
return nil, err
return nil, errors.Wrapf(err, "failed to list Policy")
}
for _, ns := range namespaces {
polList, err := m.npLister.Policies(ns.GetName()).List(labels.Everything())
if err != nil {
return nil, errors.Wrapf(err, "failed to list Policy")
}
for _, pol := range polList {
p := kyverno.ClusterPolicy(*pol)
policies = append(policies, &p)
}
for _, pol := range polList {
p := kyverno.ClusterPolicy(*pol)
policies = append(policies, &p)
}
cpolList, err := m.pLister.List(labels.Everything())
@ -751,10 +734,10 @@ func (m *webhookConfigManager) updateStatus(policy *kyverno.ClusterPolicy, statu
return nil
}
if policy.GetNamespace() == "" {
_, err := m.kyvernoClient.KyvernoV1().ClusterPolicies().UpdateStatus(context.TODO(), policyCopy, v1.UpdateOptions{})
_, err := m.kyvernoClient.KyvernoV1().ClusterPolicies().UpdateStatus(context.TODO(), policyCopy, metav1.UpdateOptions{})
return err
}
_, err := m.kyvernoClient.KyvernoV1().Policies(policyCopy.GetNamespace()).UpdateStatus(context.TODO(), (*kyverno.Policy)(policyCopy), v1.UpdateOptions{})
_, err := m.kyvernoClient.KyvernoV1().Policies(policyCopy.GetNamespace()).UpdateStatus(context.TODO(), (*kyverno.Policy)(policyCopy), metav1.UpdateOptions{})
return err
}

View file

@ -26,7 +26,6 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema"
adminformers "k8s.io/client-go/informers/admissionregistration/v1"
informers "k8s.io/client-go/informers/apps/v1"
coreinformers "k8s.io/client-go/informers/core/v1"
admlisters "k8s.io/client-go/listers/admissionregistration/v1"
listers "k8s.io/client-go/listers/apps/v1"
rest "k8s.io/client-go/rest"
@ -81,7 +80,6 @@ func NewRegister(
vwcInformer adminformers.ValidatingWebhookConfigurationInformer,
resCache resourcecache.ResourceCache,
kDeplInformer informers.DeploymentInformer,
nsInformer coreinformers.NamespaceInformer,
pInformer kyvernoinformer.ClusterPolicyInformer,
npInformer kyvernoinformer.PolicyInformer,
serverIP string,
@ -110,7 +108,7 @@ func NewRegister(
stopCh: stopCh,
}
register.manage = newWebhookConfigManager(client, kyvernoClient, pInformer, npInformer, mwcInformer, vwcInformer, resCache, nsInformer, serverIP, register.autoUpdateWebhooks, register.createDefaultWebhook, stopCh, log.WithName("WebhookConfigManager"))
register.manage = newWebhookConfigManager(client, kyvernoClient, pInformer, npInformer, mwcInformer, vwcInformer, resCache, serverIP, register.autoUpdateWebhooks, register.createDefaultWebhook, stopCh, log.WithName("WebhookConfigManager"))
return register
}