mirror of https://github.com/k3s-io/k3s
Merge pull request #71005 from mikedanese/certpubfix
rootcacertpublisher: trigger resync on namespace add and updatepull/58/head
commit
1a9fd268a9
|
@ -143,6 +143,7 @@ func startRootCACertPublisher(ctx ControllerContext) (http.Handler, bool, error)
|
||||||
|
|
||||||
sac, err := rootcacertpublisher.NewPublisher(
|
sac, err := rootcacertpublisher.NewPublisher(
|
||||||
ctx.InformerFactory.Core().V1().ConfigMaps(),
|
ctx.InformerFactory.Core().V1().ConfigMaps(),
|
||||||
|
ctx.InformerFactory.Core().V1().Namespaces(),
|
||||||
ctx.ClientBuilder.ClientOrDie("root-ca-cert-publisher"),
|
ctx.ClientBuilder.ClientOrDie("root-ca-cert-publisher"),
|
||||||
rootCA,
|
rootCA,
|
||||||
)
|
)
|
||||||
|
|
|
@ -43,7 +43,7 @@ const RootCACertConfigMapName = "kube-root-ca.crt"
|
||||||
// NewPublisher construct a new controller which would manage the configmap
|
// NewPublisher construct a new controller which would manage the configmap
|
||||||
// which stores certificates in each namespace. It will make sure certificate
|
// which stores certificates in each namespace. It will make sure certificate
|
||||||
// configmap exists in each namespace.
|
// configmap exists in each namespace.
|
||||||
func NewPublisher(cmInformer coreinformers.ConfigMapInformer, cl clientset.Interface, rootCA []byte) (*Publisher, error) {
|
func NewPublisher(cmInformer coreinformers.ConfigMapInformer, nsInformer coreinformers.NamespaceInformer, cl clientset.Interface, rootCA []byte) (*Publisher, error) {
|
||||||
e := &Publisher{
|
e := &Publisher{
|
||||||
client: cl,
|
client: cl,
|
||||||
rootCA: rootCA,
|
rootCA: rootCA,
|
||||||
|
@ -62,6 +62,12 @@ func NewPublisher(cmInformer coreinformers.ConfigMapInformer, cl clientset.Inter
|
||||||
e.cmLister = cmInformer.Lister()
|
e.cmLister = cmInformer.Lister()
|
||||||
e.cmListerSynced = cmInformer.Informer().HasSynced
|
e.cmListerSynced = cmInformer.Informer().HasSynced
|
||||||
|
|
||||||
|
nsInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
|
||||||
|
AddFunc: e.namespaceAdded,
|
||||||
|
UpdateFunc: e.namespaceUpdated,
|
||||||
|
})
|
||||||
|
e.nsListerSynced = nsInformer.Informer().HasSynced
|
||||||
|
|
||||||
e.syncHandler = e.syncNamespace
|
e.syncHandler = e.syncNamespace
|
||||||
|
|
||||||
return e, nil
|
return e, nil
|
||||||
|
@ -79,6 +85,8 @@ type Publisher struct {
|
||||||
cmLister corelisters.ConfigMapLister
|
cmLister corelisters.ConfigMapLister
|
||||||
cmListerSynced cache.InformerSynced
|
cmListerSynced cache.InformerSynced
|
||||||
|
|
||||||
|
nsListerSynced cache.InformerSynced
|
||||||
|
|
||||||
queue workqueue.RateLimitingInterface
|
queue workqueue.RateLimitingInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -120,7 +120,8 @@ func TestConfigMapCreation(t *testing.T) {
|
||||||
client := fake.NewSimpleClientset(caConfigMap, existNS)
|
client := fake.NewSimpleClientset(caConfigMap, existNS)
|
||||||
informers := informers.NewSharedInformerFactory(fake.NewSimpleClientset(), controller.NoResyncPeriodFunc())
|
informers := informers.NewSharedInformerFactory(fake.NewSimpleClientset(), controller.NoResyncPeriodFunc())
|
||||||
cmInformer := informers.Core().V1().ConfigMaps()
|
cmInformer := informers.Core().V1().ConfigMaps()
|
||||||
controller, err := NewPublisher(cmInformer, client, fakeRootCA)
|
nsInformer := informers.Core().V1().Namespaces()
|
||||||
|
controller, err := NewPublisher(cmInformer, nsInformer, client, fakeRootCA)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("error creating ServiceAccounts controller: %v", err)
|
t.Fatalf("error creating ServiceAccounts controller: %v", err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue