Skip to content

Commit 6a808b9

Browse files
committed
chore: use structured logging and update imports order
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
1 parent 27c7d31 commit 6a808b9

File tree

10 files changed

+36
-25
lines changed

10 files changed

+36
-25
lines changed

cmd/server/main.go

+12-7
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ func main() {
7171
// initialize metrics exporter
7272
err := metrics.InitMetricsExporter(*metricsBackend, *metricsAddress)
7373
if err != nil {
74-
klog.Fatalf("failed to initialize metrics exporter, error: %+v", err)
74+
klog.ErrorS(err, "failed to initialize metrics exporter")
75+
os.Exit(1)
7576
}
7677

7778
klog.InfoS("Starting KeyManagementServiceServer service", "version", version.BuildVersion, "buildDate", version.BuildDate)
@@ -88,21 +89,25 @@ func main() {
8889
}
8990
kmsServer, err := plugin.New(ctx, pc)
9091
if err != nil {
91-
klog.Fatalf("failed to create server, error: %v", err)
92+
klog.ErrorS(err, "failed to create server")
93+
os.Exit(1)
9294
}
9395

9496
// Initialize and run the GRPC server
9597
proto, addr, err := utils.ParseEndpoint(*listenAddr)
9698
if err != nil {
97-
klog.Fatalf("failed to parse endpoint, err: %+v", err)
99+
klog.ErrorS(err, "failed to parse endpoint")
100+
os.Exit(1)
98101
}
99102
if err := os.Remove(addr); err != nil && !os.IsNotExist(err) {
100-
klog.Fatalf("failed to remove %s, error: %s", addr, err.Error())
103+
klog.ErrorS(err, "failed to remove socket file", "addr", addr)
104+
os.Exit(1)
101105
}
102106

103107
listener, err := net.Listen(proto, addr)
104108
if err != nil {
105-
klog.Fatalf("failed to listen: %v", err)
109+
klog.ErrorS(err, "failed to listen", "addr", addr, "proto", proto)
110+
os.Exit(1)
106111
}
107112
opts := []grpc.ServerOption{
108113
grpc.UnaryInterceptor(utils.UnaryServerInterceptor),
@@ -111,7 +116,7 @@ func main() {
111116
s := grpc.NewServer(opts...)
112117
pb.RegisterKeyManagementServiceServer(s, kmsServer)
113118

114-
klog.Infof("Listening for connections on address: %v", listener.Addr())
119+
klog.InfoS("Listening for connections", "addr", listener.Addr().String())
115120
go s.Serve(listener)
116121

117122
healthz := &plugin.HealthZ{
@@ -127,7 +132,7 @@ func main() {
127132

128133
<-ctx.Done()
129134
// gracefully stop the grpc server
130-
klog.Infof("terminating the server")
135+
klog.Info("terminating the server")
131136
s.GracefulStop()
132137

133138
klog.Flush()

pkg/auth/auth.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func GetServicePrincipalToken(config *config.AzureConfig, aadEndpoint, resource
4141
}
4242

4343
if config.UseManagedIdentityExtension {
44-
klog.V(2).Infof("using managed identity extension to retrieve access token")
44+
klog.V(2).Info("using managed identity extension to retrieve access token")
4545
msiEndpoint, err := adal.GetMSIVMEndpoint()
4646
if err != nil {
4747
return nil, fmt.Errorf("failed to get managed service identity endpoint, error: %v", err)
@@ -79,7 +79,7 @@ func GetServicePrincipalToken(config *config.AzureConfig, aadEndpoint, resource
7979
}
8080

8181
if len(config.AADClientCertPath) > 0 && len(config.AADClientCertPassword) > 0 {
82-
klog.V(2).Infof("using jwt client_assertion (client_cert+client_private_key) to retrieve access token")
82+
klog.V(2).Info("using jwt client_assertion (client_cert+client_private_key) to retrieve access token")
8383
certData, err := os.ReadFile(config.AADClientCertPath)
8484
if err != nil {
8585
return nil, fmt.Errorf("failed to read client certificate from file %s, error: %v", config.AADClientCertPath, err)

pkg/auth/auth_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,10 @@ import (
1010
"strings"
1111
"testing"
1212

13+
"github.com/Azure/kubernetes-kms/pkg/config"
14+
1315
"github.com/Azure/go-autorest/autorest/adal"
1416
"github.com/Azure/go-autorest/autorest/azure"
15-
"github.com/Azure/kubernetes-kms/pkg/config"
1617
)
1718

1819
func TestParseAzureEnvironment(t *testing.T) {

pkg/config/azure_config.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ type AzureConfig struct {
2424
func GetAzureConfig(configFile string) (config *AzureConfig, err error) {
2525
cfg := AzureConfig{}
2626

27-
klog.V(5).Infof("populating AzureConfig from %s", configFile)
27+
klog.V(5).InfoS("populating AzureConfig from config file", "configFile", configFile)
2828
bytes, err := os.ReadFile(configFile)
2929
if err != nil {
3030
return nil, fmt.Errorf("failed to load config file %s, error: %+v", configFile, err)

pkg/metrics/exporter.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const (
1414
// InitMetricsExporter initializes new exporter
1515
func InitMetricsExporter(metricsBackend, metricsAddress string) error {
1616
exporter := strings.ToLower(metricsBackend)
17-
klog.Infof("metrics backend: %s", exporter)
17+
klog.InfoS("metrics backend", "exporter", exporter)
1818

1919
switch exporter {
2020
// Prometheus is the only exporter supported for now

pkg/metrics/prometheus_exporter.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package metrics
33
import (
44
"fmt"
55
"net/http"
6+
"os"
67

78
"go.opentelemetry.io/otel/exporters/metric/prometheus"
89
"k8s.io/klog/v2"
@@ -25,7 +26,8 @@ func initPrometheusExporter(metricsAddress string) error {
2526
http.HandleFunc(fmt.Sprintf("/%s", metricsEndpoint), exporter.ServeHTTP)
2627
go func() {
2728
if err := http.ListenAndServe(fmt.Sprintf(":%s", metricsAddress), nil); err != nil {
28-
klog.Fatalf("Failed to register prometheus endpoint - %v", err)
29+
klog.ErrorS(err, "failed to register prometheus endpoint", "metricsAddress", metricsAddress)
30+
os.Exit(1)
2931
}
3032
}()
3133

pkg/plugin/healthz.go

+7-5
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@ import (
1111
"net"
1212
"net/http"
1313
"net/url"
14+
"os"
1415
"time"
1516

17+
"github.com/Azure/kubernetes-kms/pkg/version"
18+
1619
"google.golang.org/grpc"
1720
pb "k8s.io/apiserver/pkg/storage/value/encrypt/envelope/v1beta1"
1821
"k8s.io/klog/v2"
19-
20-
"github.com/Azure/kubernetes-kms/pkg/version"
2122
)
2223

2324
const (
@@ -36,12 +37,13 @@ func (h *HealthZ) Serve() {
3637
serveMux := http.NewServeMux()
3738
serveMux.HandleFunc(h.HealthCheckURL.EscapedPath(), h.ServeHTTP)
3839
if err := http.ListenAndServe(h.HealthCheckURL.Host, serveMux); err != nil && err != http.ErrServerClosed {
39-
klog.Fatalf("failed to start health check server, err: %+v", err)
40+
klog.ErrorS(err, "failed to start health check server", "url", h.HealthCheckURL.String())
41+
os.Exit(1)
4042
}
4143
}
4244

4345
func (h *HealthZ) ServeHTTP(w http.ResponseWriter, r *http.Request) {
44-
klog.V(5).Infof("Started health check")
46+
klog.V(5).Info("Started health check")
4547
ctx, cancel := context.WithTimeout(context.Background(), h.RPCTimeout)
4648
defer cancel()
4749

@@ -78,7 +80,7 @@ func (h *HealthZ) ServeHTTP(w http.ResponseWriter, r *http.Request) {
7880
}
7981
w.WriteHeader(http.StatusOK)
8082
w.Write([]byte("ok"))
81-
klog.V(5).Infof("Completed health check")
83+
klog.V(5).Info("Completed health check")
8284
}
8385

8486
// checkRPC initiates a grpc request to validate the socket is responding

pkg/plugin/server.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,13 @@ func (s *KeyManagementServiceServer) Encrypt(ctx context.Context, request *k8spb
7474
s.reporter.ReportRequest(ctx, metrics.EncryptOperationTypeValue, status, time.Since(start).Seconds(), errors)
7575
}()
7676

77-
klog.V(2).Infof("encrypt request started")
77+
klog.V(2).Info("encrypt request started")
7878
cipher, err := s.kvClient.Encrypt(ctx, request.Plain)
7979
if err != nil {
8080
klog.ErrorS(err, "failed to encrypt")
8181
return &k8spb.EncryptResponse{}, err
8282
}
83-
klog.V(2).Infof("encrypt request complete")
83+
klog.V(2).Info("encrypt request complete")
8484
return &k8spb.EncryptResponse{Cipher: cipher}, nil
8585
}
8686

@@ -99,12 +99,12 @@ func (s *KeyManagementServiceServer) Decrypt(ctx context.Context, request *k8spb
9999
s.reporter.ReportRequest(ctx, metrics.DecryptOperationTypeValue, status, time.Since(start).Seconds(), errors)
100100
}()
101101

102-
klog.V(2).Infof("decrypt request started")
102+
klog.V(2).Info("decrypt request started")
103103
plain, err := s.kvClient.Decrypt(ctx, request.Cipher)
104104
if err != nil {
105105
klog.ErrorS(err, "failed to decrypt")
106106
return &k8spb.DecryptResponse{}, err
107107
}
108-
klog.V(2).Infof("decrypt request complete")
108+
klog.V(2).Info("decrypt request complete")
109109
return &k8spb.DecryptResponse{Plain: plain}, nil
110110
}

pkg/plugin/server_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ import (
1010
"fmt"
1111
"testing"
1212

13-
k8spb "k8s.io/apiserver/pkg/storage/value/encrypt/envelope/v1beta1"
14-
1513
"github.com/Azure/kubernetes-kms/pkg/metrics"
1614
mockkeyvault "github.com/Azure/kubernetes-kms/pkg/plugin/mock_keyvault"
1715
"github.com/Azure/kubernetes-kms/pkg/version"
16+
17+
k8spb "k8s.io/apiserver/pkg/storage/value/encrypt/envelope/v1beta1"
1818
)
1919

2020
func TestEncrypt(t *testing.T) {

pkg/utils/grpc.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"time"
88

99
"github.com/Azure/kubernetes-kms/pkg/metrics"
10+
1011
"google.golang.org/grpc"
1112
"k8s.io/klog/v2"
1213
)
@@ -38,7 +39,7 @@ func UnaryServerInterceptor(ctx context.Context, req interface{}, info *grpc.Una
3839
reporter.ReportRequest(ctx, fmt.Sprintf("%s_%s", metrics.GrpcOperationTypeValue, getGRPCMethodName(info.FullMethod)), status, time.Since(start).Seconds(), errors)
3940
}()
4041

41-
klog.V(5).Infof("GRPC call: %s", info.FullMethod)
42+
klog.V(5).InfoS("GRPC call", "method", info.FullMethod)
4243
resp, err := handler(ctx, req)
4344
if err != nil {
4445
klog.ErrorS(err, "GRPC request error")

0 commit comments

Comments
 (0)