in cmd/k8s-cloudkms-plugin/main.go [121:147]
func run(pluginManager *plugin.PluginManager, h *plugin.HealthCheckerManager, m *plugin.Metrics) error {
signalsChan := make(chan os.Signal, 1)
signal.Notify(signalsChan, syscall.SIGINT, syscall.SIGTERM)
metricsErrCh := m.Serve()
healthzErrCh := h.Serve()
gRPCSrv, kmsErrorCh := pluginManager.Start()
defer gRPCSrv.GracefulStop()
for {
select {
case sig := <-signalsChan:
return fmt.Errorf("captured %v, shutting down kms-plugin", sig)
case kmsError := <-kmsErrorCh:
return kmsError
case metricsErr := <-metricsErrCh:
// Limiting this to warning only - will run without metrics.
glog.Warning(metricsErr)
metricsErrCh = nil
case healthzErr := <-healthzErrCh:
// Limiting this to warning only - will run without healthz.
glog.Warning(healthzErr)
healthzErrCh = nil
}
}
}