Skip to content

Commit 67d164e

Browse files
committed
chore: use structured logging and update imports order
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
1 parent 0cba524 commit 67d164e

11 files changed

+38
-27
lines changed

cmd/server/main.go

+12-7
Original file line numberDiff line numberDiff line change
@@ -71,27 +71,32 @@ 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)
7879
kmsServer, err := plugin.New(ctx, *configFilePath, *keyvaultName, *keyName, *keyVersion, *proxyMode, *proxyAddress, *proxyPort)
7980
if err != nil {
80-
klog.Fatalf("failed to create server, error: %v", err)
81+
klog.ErrorS(err, "failed to create server")
82+
os.Exit(1)
8183
}
8284

8385
// Initialize and run the GRPC server
8486
proto, addr, err := utils.ParseEndpoint(*listenAddr)
8587
if err != nil {
86-
klog.Fatalf("failed to parse endpoint, err: %+v", err)
88+
klog.ErrorS(err, "failed to parse endpoint")
89+
os.Exit(1)
8790
}
8891
if err := os.Remove(addr); err != nil && !os.IsNotExist(err) {
89-
klog.Fatalf("failed to remove %s, error: %s", addr, err.Error())
92+
klog.ErrorS(err, "failed to remove socket file", "addr", addr)
93+
os.Exit(1)
9094
}
9195

9296
listener, err := net.Listen(proto, addr)
9397
if err != nil {
94-
klog.Fatalf("failed to listen: %v", err)
98+
klog.ErrorS(err, "failed to listen", "addr", addr, "proto", proto)
99+
os.Exit(1)
95100
}
96101
opts := []grpc.ServerOption{
97102
grpc.UnaryInterceptor(utils.UnaryServerInterceptor),
@@ -100,7 +105,7 @@ func main() {
100105
s := grpc.NewServer(opts...)
101106
pb.RegisterKeyManagementServiceServer(s, kmsServer)
102107

103-
klog.Infof("Listening for connections on address: %v", listener.Addr())
108+
klog.InfoS("Listening for connections", "addr", listener.Addr().String())
104109
go s.Serve(listener)
105110

106111
healthz := &plugin.HealthZ{
@@ -116,7 +121,7 @@ func main() {
116121

117122
<-ctx.Done()
118123
// gracefully stop the grpc server
119-
klog.Infof("terminating the server")
124+
klog.Info("terminating the server")
120125
s.GracefulStop()
121126

122127
klog.Flush()

pkg/auth/auth.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func GetServicePrincipalToken(config *config.AzureConfig, aadEndpoint, resource
4343
}
4444

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

8383
if len(config.AADClientCertPath) > 0 && len(config.AADClientCertPassword) > 0 {
84-
klog.V(2).Infof("using jwt client_assertion (client_cert+client_private_key) to retrieve access token")
84+
klog.V(2).Info("using jwt client_assertion (client_cert+client_private_key) to retrieve access token")
8585
certData, err := os.ReadFile(config.AADClientCertPath)
8686
if err != nil {
8787
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/keyvault_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import (
99
"strings"
1010
"testing"
1111

12-
"github.com/Azure/go-autorest/autorest/azure"
13-
1412
"github.com/Azure/kubernetes-kms/pkg/auth"
1513
"github.com/Azure/kubernetes-kms/pkg/config"
1614
"github.com/Azure/kubernetes-kms/pkg/utils"
15+
16+
"github.com/Azure/go-autorest/autorest/azure"
1717
)
1818

1919
func TestNewKeyVaultClient(t *testing.T) {

pkg/plugin/server.go

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

66-
klog.V(2).Infof("encrypt request started")
66+
klog.V(2).Info("encrypt request started")
6767
cipher, err := s.kvClient.Encrypt(ctx, request.Plain)
6868
if err != nil {
6969
klog.ErrorS(err, "failed to encrypt")
7070
return &k8spb.EncryptResponse{}, err
7171
}
72-
klog.V(2).Infof("encrypt request complete")
72+
klog.V(2).Info("encrypt request complete")
7373
return &k8spb.EncryptResponse{Cipher: cipher}, nil
7474
}
7575

@@ -88,12 +88,12 @@ func (s *KeyManagementServiceServer) Decrypt(ctx context.Context, request *k8spb
8888
s.reporter.ReportRequest(ctx, metrics.DecryptOperationTypeValue, status, time.Since(start).Seconds(), errors)
8989
}()
9090

91-
klog.V(2).Infof("decrypt request started")
91+
klog.V(2).Info("decrypt request started")
9292
plain, err := s.kvClient.Decrypt(ctx, request.Cipher)
9393
if err != nil {
9494
klog.ErrorS(err, "failed to decrypt")
9595
return &k8spb.DecryptResponse{}, err
9696
}
97-
klog.V(2).Infof("decrypt request complete")
97+
klog.V(2).Info("decrypt request complete")
9898
return &k8spb.DecryptResponse{Plain: plain}, nil
9999
}

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)