2022-11-24 20:57:01 +01:00
|
|
|
package internal
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
|
|
|
"github.com/go-logr/logr"
|
2022-11-29 10:16:07 +01:00
|
|
|
"github.com/kyverno/kyverno/pkg/metrics"
|
2022-11-24 20:57:01 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
func shutdown(logger logr.Logger, sdowns ...context.CancelFunc) context.CancelFunc {
|
|
|
|
return func() {
|
|
|
|
for i := range sdowns {
|
2023-01-12 12:47:40 +08:00
|
|
|
if sdowns[i] != nil {
|
|
|
|
logger.Info("shutting down...")
|
|
|
|
defer sdowns[i]()
|
|
|
|
}
|
2022-11-24 20:57:01 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-01-26 10:39:52 +01:00
|
|
|
func Setup(name string) (context.Context, logr.Logger, metrics.MetricsConfigManager, context.CancelFunc) {
|
2022-11-24 20:57:01 +01:00
|
|
|
logger := SetupLogger()
|
|
|
|
ShowVersion(logger)
|
|
|
|
sdownMaxProcs := SetupMaxProcs(logger)
|
|
|
|
SetupProfiling(logger)
|
2022-11-29 10:16:07 +01:00
|
|
|
client := CreateKubernetesClient(logger)
|
2022-11-24 20:57:01 +01:00
|
|
|
ctx, sdownSignals := SetupSignals(logger)
|
2022-11-29 10:16:07 +01:00
|
|
|
metricsManager, sdownMetrics := SetupMetrics(ctx, logger, client)
|
2023-01-26 10:39:52 +01:00
|
|
|
sdownTracing := SetupTracing(logger, name, client)
|
2022-12-09 10:49:45 +01:00
|
|
|
return ctx, logger, metricsManager, shutdown(logger.WithName("shutdown"), sdownMaxProcs, sdownMetrics, sdownTracing, sdownSignals)
|
2022-11-24 20:57:01 +01:00
|
|
|
}
|