mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-15 20:20:22 +00:00
chore: add error logs in wait for cache sync helper (#6279)
Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
This commit is contained in:
parent
15cf69f737
commit
bfdde54291
5 changed files with 25 additions and 17 deletions
|
@ -220,7 +220,7 @@ func main() {
|
||||||
nil,
|
nil,
|
||||||
)
|
)
|
||||||
// start informers and wait for cache sync
|
// start informers and wait for cache sync
|
||||||
if !internal.StartInformersAndWaitForCacheSync(signalCtx, kyvernoInformer, kubeKyvernoInformer, cacheInformer) {
|
if !internal.StartInformersAndWaitForCacheSync(signalCtx, logger, kyvernoInformer, kubeKyvernoInformer, cacheInformer) {
|
||||||
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
@ -258,7 +258,7 @@ func main() {
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
// start informers and wait for cache sync
|
// start informers and wait for cache sync
|
||||||
if !internal.StartInformersAndWaitForCacheSync(signalCtx, kyvernoInformer, kubeInformer) {
|
if !internal.StartInformersAndWaitForCacheSync(signalCtx, logger, kyvernoInformer, kubeInformer) {
|
||||||
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
|
@ -158,7 +158,7 @@ func main() {
|
||||||
cleanup.Workers,
|
cleanup.Workers,
|
||||||
)
|
)
|
||||||
// start informers and wait for cache sync
|
// start informers and wait for cache sync
|
||||||
if !internal.StartInformersAndWaitForCacheSync(ctx, kyvernoInformer, kubeInformer, kubeKyvernoInformer) {
|
if !internal.StartInformersAndWaitForCacheSync(ctx, logger, kyvernoInformer, kubeInformer, kubeKyvernoInformer) {
|
||||||
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
@ -188,7 +188,7 @@ func main() {
|
||||||
polLister := kyvernoInformer.Kyverno().V2alpha1().CleanupPolicies().Lister()
|
polLister := kyvernoInformer.Kyverno().V2alpha1().CleanupPolicies().Lister()
|
||||||
nsLister := kubeInformer.Core().V1().Namespaces().Lister()
|
nsLister := kubeInformer.Core().V1().Namespaces().Lister()
|
||||||
// start informers and wait for cache sync
|
// start informers and wait for cache sync
|
||||||
if !internal.StartInformersAndWaitForCacheSync(ctx, kubeKyvernoInformer, kubeInformer, kyvernoInformer) {
|
if !internal.StartInformersAndWaitForCacheSync(ctx, logger, kubeKyvernoInformer, kubeInformer, kyvernoInformer) {
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
// create handlers
|
// create handlers
|
||||||
|
|
|
@ -3,6 +3,8 @@ package internal
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
|
||||||
|
"github.com/go-logr/logr"
|
||||||
)
|
)
|
||||||
|
|
||||||
type startable interface {
|
type startable interface {
|
||||||
|
@ -20,25 +22,31 @@ func StartInformers[T startable](ctx context.Context, informers ...T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func WaitForCacheSync(ctx context.Context, informers ...informer) bool {
|
func WaitForCacheSync(ctx context.Context, logger logr.Logger, informers ...informer) bool {
|
||||||
ret := true
|
ret := true
|
||||||
for i := range informers {
|
for i := range informers {
|
||||||
for _, result := range informers[i].WaitForCacheSync(ctx.Done()) {
|
for t, result := range informers[i].WaitForCacheSync(ctx.Done()) {
|
||||||
|
if !result {
|
||||||
|
logger.Error(nil, "failed to wait for cache sync", "type", t)
|
||||||
|
}
|
||||||
ret = ret && result
|
ret = ret && result
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
func CheckCacheSync[T comparable](status map[T]bool) bool {
|
func CheckCacheSync[T comparable](logger logr.Logger, status map[T]bool) bool {
|
||||||
ret := true
|
ret := true
|
||||||
for _, s := range status {
|
for t, result := range status {
|
||||||
ret = ret && s
|
if !result {
|
||||||
|
logger.Error(nil, "failed to wait for cache sync", "type", t)
|
||||||
|
}
|
||||||
|
ret = ret && result
|
||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
func StartInformersAndWaitForCacheSync(ctx context.Context, informers ...informer) bool {
|
func StartInformersAndWaitForCacheSync(ctx context.Context, logger logr.Logger, informers ...informer) bool {
|
||||||
StartInformers(ctx, informers...)
|
StartInformers(ctx, informers...)
|
||||||
return WaitForCacheSync(ctx, informers...)
|
return WaitForCacheSync(ctx, logger, informers...)
|
||||||
}
|
}
|
||||||
|
|
|
@ -385,7 +385,7 @@ func main() {
|
||||||
openApiManager,
|
openApiManager,
|
||||||
)
|
)
|
||||||
// start informers and wait for cache sync
|
// start informers and wait for cache sync
|
||||||
if !internal.StartInformersAndWaitForCacheSync(signalCtx, kyvernoInformer, kubeInformer, kubeKyvernoInformer, cacheInformer) {
|
if !internal.StartInformersAndWaitForCacheSync(signalCtx, logger, kyvernoInformer, kubeInformer, kubeKyvernoInformer, cacheInformer) {
|
||||||
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
@ -433,7 +433,7 @@ func main() {
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
// start informers and wait for cache sync
|
// start informers and wait for cache sync
|
||||||
if !internal.StartInformersAndWaitForCacheSync(signalCtx, kyvernoInformer, kubeInformer, kubeKyvernoInformer) {
|
if !internal.StartInformersAndWaitForCacheSync(signalCtx, logger, kyvernoInformer, kubeInformer, kubeKyvernoInformer) {
|
||||||
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
@ -524,7 +524,7 @@ func main() {
|
||||||
)
|
)
|
||||||
// start informers and wait for cache sync
|
// start informers and wait for cache sync
|
||||||
// we need to call start again because we potentially registered new informers
|
// we need to call start again because we potentially registered new informers
|
||||||
if !internal.StartInformersAndWaitForCacheSync(signalCtx, kyvernoInformer, kubeInformer, kubeKyvernoInformer, cacheInformer) {
|
if !internal.StartInformersAndWaitForCacheSync(signalCtx, logger, kyvernoInformer, kubeInformer, kubeKyvernoInformer, cacheInformer) {
|
||||||
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
|
@ -305,7 +305,7 @@ func main() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// start informers and wait for cache sync
|
// start informers and wait for cache sync
|
||||||
if !internal.StartInformersAndWaitForCacheSync(ctx, kyvernoInformer, kubeKyvernoInformer, cacheInformer) {
|
if !internal.StartInformersAndWaitForCacheSync(ctx, logger, kyvernoInformer, kubeKyvernoInformer, cacheInformer) {
|
||||||
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
@ -356,12 +356,12 @@ func main() {
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
// start informers and wait for cache sync
|
// start informers and wait for cache sync
|
||||||
if !internal.StartInformersAndWaitForCacheSync(ctx, kyvernoInformer, kubeInformer, kubeKyvernoInformer) {
|
if !internal.StartInformersAndWaitForCacheSync(ctx, logger, kyvernoInformer, kubeInformer, kubeKyvernoInformer) {
|
||||||
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
internal.StartInformers(ctx, metadataInformer)
|
internal.StartInformers(ctx, metadataInformer)
|
||||||
if !internal.CheckCacheSync(metadataInformer.WaitForCacheSync(ctx.Done())) {
|
if !internal.CheckCacheSync(logger, metadataInformer.WaitForCacheSync(ctx.Done())) {
|
||||||
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
logger.Error(errors.New("failed to wait for cache sync"), "failed to wait for cache sync")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue