in main.go [32:65]
func main() {
flag.Parse()
config.NewConfig()
config.UpdateConfig(*objectName, *caValidityYears, *serverValidityYears, *namespace)
logger := log.NewLogger(*logLevel)
ctx := logger.WithLogger(context.TODO())
var label prometheus.Labels
if *webhookTlsManagerEnabled {
logger.Info(ctx, "AKS Webhook TLS Manager Reconciliation Job")
label = prometheus.Labels{"job": consts.ReconciliationJob}
} else {
logger.Info(ctx, "AKS Webhook TLS Manager Cleanup Job")
label = prometheus.Labels{"job": consts.CleanupJob}
}
kubeClient := getKubeClientFunc()
http.Handle("/metrics", promhttp.Handler())
go func() {
if err := http.ListenAndServe(addr, nil); err != nil {
logger.Errorf(ctx, "failed to start http server: %s", err)
}
}()
webhookGoalResolver := goalresolvers.NewWebhookTlsManagerGoalResolver(ctx, kubeClient, *kubeSystemNamespaceBlocked, *webhookTlsManagerEnabled)
webhookTlsManagerReconciler := reconcilers.NewWebhookTlsManagerReconciler(webhookGoalResolver, kubeClient)
cerr := webhookTlsManagerReconciler.Reconcile(ctx)
if cerr != nil {
logger.Errorf(ctx, "WebhookTlsManagerReconciler failed. error: %s", *cerr)
metrics.ResultMetric.With(label).Set(1)
os.Exit(1)
}
metrics.ResultMetric.With(label).Set(0)
}