Skip to content

Commit

Permalink
Merge pull request #955 from jcmoraisjr/jm-log-fatal
Browse files Browse the repository at this point in the history
Change klog.Fatal to klog.Exit
  • Loading branch information
jcmoraisjr authored Nov 23, 2022
2 parents b4221be + 027888d commit 79eb4d9
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 32 deletions.
2 changes: 1 addition & 1 deletion pkg/common/ingress/controller/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ func (ic *GenericController) CreateDefaultSSLCertificate() (path, hash string, c
)
c, err := ssl.AddOrUpdateCertAndKey("default-fake-certificate", defCert, defKey, []byte{})
if err != nil {
klog.Fatalf("Error generating self signed certificate: %v", err)
klog.Exitf("Error generating self signed certificate: %v", err)
}
return c.PemFileName, c.PemSHA, c.Certificate
}
42 changes: 21 additions & 21 deletions pkg/common/ingress/controller/launch.go
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,7 @@ tracked.`)
}

if !(*reloadStrategy == "native" || *reloadStrategy == "reusesocket" || *reloadStrategy == "multibinder") {
klog.Fatalf("Unsupported reload strategy: %v", *reloadStrategy)
klog.Exitf("Unsupported reload strategy: %v", *reloadStrategy)
}
if *reloadStrategy == "multibinder" {
klog.Warningf("multibinder is deprecated, using reusesocket strategy instead. update your deployment configuration")
Expand All @@ -397,49 +397,49 @@ tracked.`)
if *configMap != "" {
ns, name, err := k8s.ParseNameNS(*configMap)
if err != nil {
klog.Fatalf("invalid format for configmap %s: %v", *configMap, err)
klog.Exitf("invalid format for configmap %s: %v", *configMap, err)
}

_, err = kubeClient.CoreV1().ConfigMaps(ns).Get(ctx, name, metav1.GetOptions{})
if err != nil {
klog.Fatalf("error reading configmap '%s': %v", *configMap, err)
klog.Exitf("error reading configmap '%s': %v", *configMap, err)
}
klog.Infof("watching for global config options from configmap '%s' - --configmap was defined", *configMap)
}

if *defaultSvc != "" {
ns, name, err := k8s.ParseNameNS(*defaultSvc)
if err != nil {
klog.Fatalf("invalid format for service %v: %v", *defaultSvc, err)
klog.Exitf("invalid format for service %v: %v", *defaultSvc, err)
}

_, err = kubeClient.CoreV1().Services(ns).Get(ctx, name, metav1.GetOptions{})
if err != nil {
if strings.Contains(err.Error(), "cannot get services in the namespace") {
klog.Fatalf("✖ It seems the cluster it is running with Authorization enabled (like RBAC) and there is no permissions for the ingress controller. Please check the configuration")
klog.Exitf("✖ It seems the cluster it is running with Authorization enabled (like RBAC) and there is no permissions for the ingress controller. Please check the configuration")
}
klog.Fatalf("no service with name %v found: %v", *defaultSvc, err)
klog.Exitf("no service with name %v found: %v", *defaultSvc, err)
}
klog.Infof("validated %v as the default backend", *defaultSvc)
}

if *publishSvc != "" {
ns, name, err := k8s.ParseNameNS(*publishSvc)
if err != nil {
klog.Fatalf("invalid service format: %v", err)
klog.Exitf("invalid service format: %v", err)
}

svc, err := kubeClient.CoreV1().Services(ns).Get(ctx, name, metav1.GetOptions{})
if err != nil {
klog.Fatalf("unexpected error getting information about service %v: %v", *publishSvc, err)
klog.Exitf("unexpected error getting information about service %v: %v", *publishSvc, err)
}

if len(svc.Status.LoadBalancer.Ingress) == 0 {
if len(svc.Spec.ExternalIPs) > 0 {
klog.Infof("service %v validated as assigned with externalIP", *publishSvc)
} else {
// We could poll here, but we instead just exit and rely on k8s to restart us
klog.Fatalf("service %s does not (yet) have ingress points", *publishSvc)
klog.Exitf("service %s does not (yet) have ingress points", *publishSvc)
}
} else {
klog.Infof("service %v validated as source of Ingress status", *publishSvc)
Expand All @@ -449,30 +449,30 @@ tracked.`)
if *watchNamespace != "" {
_, err = kubeClient.NetworkingV1().Ingresses(*watchNamespace).List(ctx, metav1.ListOptions{Limit: 1})
if err != nil {
klog.Fatalf("no watchNamespace with name %v found: %v", *watchNamespace, err)
klog.Exitf("no watchNamespace with name %v found: %v", *watchNamespace, err)
}
} else {
_, err = kubeClient.CoreV1().Services("default").Get(ctx, "kubernetes", metav1.GetOptions{})
if err != nil {
klog.Fatalf("error connecting to the apiserver: %v", err)
klog.Exitf("error connecting to the apiserver: %v", err)
}
}

if *rateLimitUpdate <= 0 {
klog.Fatalf("rate limit must be greater than zero")
klog.Exitf("rate limit must be greater than zero")
}

if *rateLimitUpdate < 0.05 {
klog.Fatalf("rate limit update (%v) is too low: %v seconds between Ingress reloads. Use at least 0.05, which means 20 seconds between reloads",
klog.Exitf("rate limit update (%v) is too low: %v seconds between Ingress reloads. Use at least 0.05, which means 20 seconds between reloads",
*rateLimitUpdate, 1.0 / *rateLimitUpdate)
}

if *rateLimitUpdate > 10 {
klog.Fatalf("rate limit update is too high: up to %v Ingress reloads per second (max is 10)", *rateLimitUpdate)
klog.Exitf("rate limit update is too high: up to %v Ingress reloads per second (max is 10)", *rateLimitUpdate)
}

if resyncPeriod.Seconds() < 10 {
klog.Fatalf("resync period (%vs) is too low", resyncPeriod.Seconds())
klog.Exitf("resync period (%vs) is too low", resyncPeriod.Seconds())
}

for _, dir := range []*string{
Expand All @@ -488,12 +488,12 @@ tracked.`)
// TODO evolve this ugly trick to a proper struct that allows custom configuration
*dir = *localFSPrefix + *dir
if err := os.MkdirAll(*dir, 0755); err != nil {
klog.Fatalf("Failed to mkdir %s: %v", *dir, err)
klog.Exitf("Failed to mkdir %s: %v", *dir, err)
}
}

if *forceIsolation && *allowCrossNamespace {
klog.Fatal("Cannot use --allow-cross-namespace if --force-namespace-isolation is true")
klog.Exit("Cannot use --allow-cross-namespace if --force-namespace-isolation is true")
}

var annPrefixList []string
Expand All @@ -505,7 +505,7 @@ tracked.`)
}
switch len(annPrefixList) {
case 0:
klog.Fatal("At least one annotation prefix should be configured")
klog.Exit("At least one annotation prefix should be configured")
case 1:
klog.Infof("using annotations prefix: %s", annPrefixList[0])
default:
Expand All @@ -522,7 +522,7 @@ tracked.`)
}
}
if !stringInSlice(sortEndpoints, []string{"ep", "endpoint", "ip", "name", "random"}) {
klog.Fatalf("Unsupported --sort-endpoint-by option: %s", sortEndpoints)
klog.Exitf("Unsupported --sort-endpoint-by option: %s", sortEndpoints)
}

config := &Configuration{
Expand Down Expand Up @@ -700,7 +700,7 @@ func registerHandlers(enableProfiling bool, port int, ic *GenericController) {
Addr: fmt.Sprintf(":%v", port),
Handler: mux,
}
klog.Fatal(server.ListenAndServe())
klog.Exit(server.ListenAndServe())
}

const (
Expand Down Expand Up @@ -792,7 +792,7 @@ func createApiserverClient(apiserverHost string, kubeConfig string, disableWarni
* message and quits the server.
*/
func handleFatalInitError(err error) {
klog.Fatalf("Error while initializing connection to Kubernetes apiserver. "+
klog.Exitf("Error while initializing connection to Kubernetes apiserver. "+
"This most likely means that the cluster is misconfigured (e.g., it has "+
"invalid apiserver certificates or service accounts configuration). Reason: %s", err)
}
6 changes: 3 additions & 3 deletions pkg/common/ingress/controller/status.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ func (s statusSync) keyfunc(input interface{}) (interface{}, error) {
func NewStatusSyncer(ic *GenericController) StatusSync {
pod, err := k8s.GetPodDetails(ic.cfg.Client)
if err != nil {
klog.Fatalf("unexpected error obtaining pod information: %v", err)
klog.Exitf("unexpected error obtaining pod information: %v", err)
}

st := statusSync{
Expand Down Expand Up @@ -198,7 +198,7 @@ func NewStatusSyncer(ic *GenericController) StatusSync {
)

if err != nil {
klog.Fatalf("unexpected error configuring leader election resource lock: %v", err)
klog.Exitf("unexpected error configuring leader election resource lock: %v", err)
}

ttl := 30 * time.Second
Expand All @@ -211,7 +211,7 @@ func NewStatusSyncer(ic *GenericController) StatusSync {
})

if err != nil {
klog.Fatalf("unexpected error starting leader election: %v", err)
klog.Exitf("unexpected error starting leader election: %v", err)
}

st.elector = le
Expand Down
6 changes: 3 additions & 3 deletions pkg/common/net/ssl/ssl.go
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ func GetFakeSSLCert(o []string, cn string, dns []string) (cert, key []byte) {
priv, err = rsa.GenerateKey(rand.Reader, 2048)

if err != nil {
klog.Fatalf("failed to generate fake private key: %s", err)
klog.Exitf("failed to generate fake private key: %s", err)
}

notBefore := time.Now()
Expand All @@ -386,7 +386,7 @@ func GetFakeSSLCert(o []string, cn string, dns []string) (cert, key []byte) {
serialNumber, err := rand.Int(rand.Reader, serialNumberLimit)

if err != nil {
klog.Fatalf("failed to generate fake serial number: %s", err)
klog.Exitf("failed to generate fake serial number: %s", err)
}

template := x509.Certificate{
Expand All @@ -405,7 +405,7 @@ func GetFakeSSLCert(o []string, cn string, dns []string) (cert, key []byte) {
}
derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, &priv.(*rsa.PrivateKey).PublicKey, priv)
if err != nil {
klog.Fatalf("Failed to create fake certificate: %s", err)
klog.Exitf("Failed to create fake certificate: %s", err)
}

cert = pem.EncodeToMemory(&pem.Block{Type: "CERTIFICATE", Bytes: derBytes})
Expand Down
4 changes: 2 additions & 2 deletions pkg/controller/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ func (hc *HAProxyController) configController() {
}
hc.instance = haproxy.CreateInstance(hc.logger, instanceOptions)
if err := hc.instance.ParseTemplates(); err != nil {
klog.Fatalf("error creating HAProxy instance: %v", err)
klog.Exitf("error creating HAProxy instance: %v", err)
}
hc.converterOptions = &convtypes.ConverterOptions{
Logger: hc.logger,
Expand Down Expand Up @@ -228,7 +228,7 @@ func (hc *HAProxyController) createFakeCAFile() (crtFile convtypes.CrtFile) {
fakeCA, _ := ssl.GetFakeSSLCert([]string{}, "Fake CA", []string{})
fakeCAFile, err := ssl.AddCertAuth("fake-ca", fakeCA, []byte{})
if err != nil {
klog.Fatalf("error generating fake CA: %v", err)
klog.Exitf("error generating fake CA: %v", err)
}
crtFile = convtypes.CrtFile{
Filename: fakeCAFile.PemFileName,
Expand Down
2 changes: 1 addition & 1 deletion pkg/controller/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,5 +52,5 @@ func (l *logger) Error(msg string, args ...interface{}) {
}

func (l *logger) Fatal(msg string, args ...interface{}) {
klog.FatalDepth(l.depth, l.build(msg, args))
klog.ExitDepth(l.depth, l.build(msg, args))
}
2 changes: 1 addition & 1 deletion pkg/haproxy/template/funcmap.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func createFuncMap() gotemplate.FuncMap {
},
}
if err := mergo.Merge(&fnc, sprig.TxtFuncMap()); err != nil {
klog.Fatalf("Cannot merge funcMap and sprig.FuncMap(): %v", err)
klog.Exitf("Cannot merge funcMap and sprig.FuncMap(): %v", err)
}
return fnc
}
Expand Down

0 comments on commit 79eb4d9

Please sign in to comment.