With kubernetes/eks 1.30 or higher and sleep lifecycle the controller not restart deployment (#757)

* Fix reloader when deployment has a new lifecycle sleep policy

* Fix go mod tidy

* Fix deprecated packages

* Fix deprecated packages 2

---------

Co-authored-by: Muneeb Aijaz <43588696+MuneebAijaz@users.noreply.github.com>
This commit is contained in:
Miguel López Ruiz
2024-12-04 11:05:09 +01:00
committed by GitHub
co-authored by Muneeb Aijaz
parent fabb83a422
commit e2592ddb35
4 changed files with 68 additions and 52 deletions
+13 -8
View File
@@ -28,7 +28,7 @@ import (
type Controller struct {
client kubernetes.Interface
indexer cache.Indexer
queue workqueue.RateLimitingInterface
queue workqueue.TypedRateLimitingInterface[any]
informer cache.Controller
namespace string
resource string
@@ -67,7 +67,7 @@ func NewController(
})
recorder := eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: fmt.Sprintf("reloader-%s", resource)})
queue := workqueue.NewRateLimitingQueue(workqueue.DefaultControllerRateLimiter())
queue := workqueue.NewTypedRateLimitingQueue(workqueue.DefaultTypedControllerRateLimiter[any]())
optionsModifier := func(options *metav1.ListOptions) {
if resource == "namespaces" {
@@ -81,12 +81,17 @@ func NewController(
listWatcher := cache.NewFilteredListWatchFromClient(client.CoreV1().RESTClient(), resource, namespace, optionsModifier)
indexer, informer := cache.NewIndexerInformer(listWatcher, kube.ResourceMap[resource], 0, cache.ResourceEventHandlerFuncs{
AddFunc: c.Add,
UpdateFunc: c.Update,
DeleteFunc: c.Delete,
}, cache.Indexers{})
c.indexer = indexer
_, informer := cache.NewInformerWithOptions(cache.InformerOptions{
ListerWatcher: listWatcher,
ObjectType: kube.ResourceMap[resource],
ResyncPeriod: 0,
Handler: cache.ResourceEventHandlerFuncs{
AddFunc: c.Add,
UpdateFunc: c.Update,
DeleteFunc: c.Delete,
},
Indexers: cache.Indexers{},
})
c.informer = informer
c.queue = queue
c.collectors = collectors