mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-06 07:57:07 +00:00
* feat: add cleanup controller to helm chart Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> * add webhook config Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> * rbac 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> * secret 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> * certs Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> * fix labels Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> * add server Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> * rbac Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> * handler Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> * fix linter Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
37 lines
800 B
Go
37 lines
800 B
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"reflect"
|
|
)
|
|
|
|
// TODO: eventually move this in an util package
|
|
type startable interface {
|
|
Start(stopCh <-chan struct{})
|
|
}
|
|
|
|
type informer interface {
|
|
startable
|
|
WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool
|
|
}
|
|
|
|
func startInformers[T startable](ctx context.Context, informers ...T) {
|
|
for i := range informers {
|
|
informers[i].Start(ctx.Done())
|
|
}
|
|
}
|
|
|
|
func waitForCacheSync(ctx context.Context, informers ...informer) bool {
|
|
ret := true
|
|
for i := range informers {
|
|
for _, result := range informers[i].WaitForCacheSync(ctx.Done()) {
|
|
ret = ret && result
|
|
}
|
|
}
|
|
return ret
|
|
}
|
|
|
|
func startInformersAndWaitForCacheSync(ctx context.Context, informers ...informer) bool {
|
|
startInformers(ctx, informers...)
|
|
return waitForCacheSync(ctx, informers...)
|
|
}
|