Skip to content

Commit d439295

Browse files
committed
feat: allow controller-runtime log level in tests to be set via LOG_LEVEL
1 parent 2671980 commit d439295

File tree

2 files changed

+43
-7
lines changed

2 files changed

+43
-7
lines changed

cmd/listener.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ package cmd
33
import (
44
"crypto/tls"
55
"os"
6+
"strings"
67

78
kcpapis "github.com/kcp-dev/kcp/sdk/apis/apis/v1alpha1"
89
kcpcore "github.com/kcp-dev/kcp/sdk/apis/core/v1alpha1"
910
kcptenancy "github.com/kcp-dev/kcp/sdk/apis/tenancy/v1alpha1"
1011
"github.com/spf13/cobra"
12+
"go.uber.org/zap/zapcore"
1113
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
1214
"k8s.io/apimachinery/pkg/runtime"
1315
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
@@ -41,10 +43,20 @@ var listenCmd = &cobra.Command{
4143
utilruntime.Must(kcptenancy.AddToScheme(scheme))
4244
utilruntime.Must(apiextensionsv1.AddToScheme(scheme))
4345

44-
opts := zap.Options{
45-
Development: true,
46+
var zapLevel zapcore.Level
47+
switch strings.ToUpper(log.GetLevel().String()) {
48+
case "ERROR":
49+
zapLevel = zapcore.ErrorLevel
50+
case "WARN":
51+
zapLevel = zapcore.WarnLevel
52+
case "INFO":
53+
zapLevel = zapcore.InfoLevel
54+
case "DEBUG", "TRACE":
55+
zapLevel = zapcore.DebugLevel
56+
default:
57+
zapLevel = zapcore.InfoLevel
4658
}
47-
ctrl.SetLogger(zap.New(zap.UseFlagOptions(&opts)))
59+
ctrl.SetLogger(zap.New(zap.UseDevMode(false), zap.Level(zapLevel)))
4860

4961
disableHTTP2 := func(c *tls.Config) {
5062
log.Info().Msg("disabling http/2")

tests/gateway_test/suite_test.go

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,29 @@
11
package gateway_test
22

33
import (
4-
appsv1 "k8s.io/api/apps/v1"
5-
corev1 "k8s.io/api/core/v1"
6-
v1 "k8s.io/api/rbac/v1"
7-
"k8s.io/apimachinery/pkg/runtime"
84
"net/http/httptest"
95
"os"
106
"path/filepath"
7+
"strings"
118
"testing"
129

10+
appsv1 "k8s.io/api/apps/v1"
11+
corev1 "k8s.io/api/core/v1"
12+
v1 "k8s.io/api/rbac/v1"
13+
"k8s.io/apimachinery/pkg/runtime"
14+
1315
"github.com/graphql-go/graphql"
1416
"github.com/openmfp/golang-commons/logger"
1517
"github.com/stretchr/testify/require"
1618
"github.com/stretchr/testify/suite"
19+
"go.uber.org/zap/zapcore"
1720
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
1821
"k8s.io/client-go/rest"
1922
"sigs.k8s.io/controller-runtime/pkg/client"
2023
"sigs.k8s.io/controller-runtime/pkg/envtest"
2124
"sigs.k8s.io/controller-runtime/pkg/kcp"
25+
"sigs.k8s.io/controller-runtime/pkg/log"
26+
"sigs.k8s.io/controller-runtime/pkg/log/zap"
2227

2328
"github.com/openmfp/account-operator/api/v1alpha1"
2429
appConfig "github.com/openmfp/kubernetes-graphql-gateway/common/config"
@@ -27,6 +32,25 @@ import (
2732
"github.com/openmfp/kubernetes-graphql-gateway/gateway/schema"
2833
)
2934

35+
func TestMain(m *testing.M) {
36+
var zapLevel zapcore.Level
37+
level := strings.ToUpper(os.Getenv("LOG_LEVEL"))
38+
switch level {
39+
case "ERROR":
40+
zapLevel = zapcore.ErrorLevel
41+
case "WARN":
42+
zapLevel = zapcore.WarnLevel
43+
case "INFO":
44+
zapLevel = zapcore.InfoLevel
45+
case "DEBUG", "TRACE":
46+
zapLevel = zapcore.DebugLevel
47+
default:
48+
zapLevel = zapcore.ErrorLevel
49+
}
50+
log.SetLogger(zap.New(zap.UseDevMode(false), zap.Level(zapLevel)))
51+
os.Exit(m.Run())
52+
}
53+
3054
type CommonTestSuite struct {
3155
suite.Suite
3256
testEnv *envtest.Environment

0 commit comments

Comments
 (0)