Skip to content
This repository was archived by the owner on Apr 16, 2025. It is now read-only.

Commit c09c54c

Browse files
authored
Replace logrus zerolog (#114)
* Replace Logrus with Zerolog * Replace Logrus with Zerolog * update go.mod * remove unused pretty print option * use old logging style * add zerolog linter and faster ci check * update zerolog * update zerolog and radix-common * Add go.sum * cleanup bugs * fix tests
1 parent faed4c4 commit c09c54c

File tree

18 files changed

+157
-169
lines changed

18 files changed

+157
-169
lines changed

.github/workflows/pr.yaml

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,13 @@ jobs:
1111
- uses: actions/checkout@v4
1212
with:
1313
fetch-depth: 2
14-
- uses: actions/setup-go@v4
14+
- uses: actions/setup-go@v5
1515
with:
16-
go-version: '1.21'
17-
- name: Install dependencies
18-
run: go mod download
19-
- name: Install GolangCI Lint
20-
run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.55.2
21-
16+
go-version-file: 'go.mod'
2217
- name: golangci-lint
23-
run: golangci-lint run --timeout=30m --max-same-issues=0 --out-format=github-actions
18+
uses: golangci/golangci-lint-action@v4
19+
with:
20+
version: v1.55.2
2421

2522
test:
2623
name: Test

.golangci.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
run:
2+
timeout: 30m
3+
4+
linters:
5+
enable:
6+
- errcheck
7+
- gosimple
8+
- govet
9+
- ineffassign
10+
- staticcheck
11+
- unused
12+
- zerologlint
13+
14+
linters-settings:
15+
issues:
16+
max-same-issues: 0

go.mod

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ go 1.21
55
toolchain go1.21.0
66

77
require (
8-
github.com/equinor/radix-common v1.7.1
8+
github.com/equinor/radix-common v1.9.2
99
github.com/equinor/radix-operator v1.50.2
1010
github.com/go-git/go-git/v5 v5.11.0
1111
github.com/golang/mock v1.6.0
1212
github.com/pkg/errors v0.9.1
13-
github.com/sirupsen/logrus v1.9.3
13+
github.com/rs/zerolog v1.32.0
1414
github.com/spf13/viper v1.18.2
1515
github.com/stretchr/testify v1.8.4
1616
github.com/tektoncd/pipeline v0.55.0
@@ -69,6 +69,8 @@ require (
6969
github.com/kevinburke/ssh_config v1.2.0 // indirect
7070
github.com/magiconair/properties v1.8.7 // indirect
7171
github.com/mailru/easyjson v0.7.7 // indirect
72+
github.com/mattn/go-colorable v0.1.13 // indirect
73+
github.com/mattn/go-isatty v0.0.19 // indirect
7274
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
7375
github.com/mitchellh/mapstructure v1.5.0 // indirect
7476
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
@@ -88,6 +90,7 @@ require (
8890
github.com/sagikazarmark/locafero v0.4.0 // indirect
8991
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
9092
github.com/sergi/go-diff v1.2.0 // indirect
93+
github.com/sirupsen/logrus v1.9.3 // indirect
9194
github.com/skeema/knownhosts v1.2.1 // indirect
9295
github.com/sourcegraph/conc v0.3.0 // indirect
9396
github.com/spf13/afero v1.11.0 // indirect

go.sum

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUK
8181
github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU=
8282
github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA=
8383
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
84+
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
8485
github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg=
8586
github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4=
8687
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -97,8 +98,8 @@ github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymF
9798
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
9899
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
99100
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
100-
github.com/equinor/radix-common v1.7.1 h1:kl7Tuo2VEo2WHGm/vkvktrZ9t9S3Nht7Mob3CSIzcJI=
101-
github.com/equinor/radix-common v1.7.1/go.mod h1:M6mhgHtFQ3rnjJnyOuECXiZOh7XQ5xVeHMyCAU+YPzQ=
101+
github.com/equinor/radix-common v1.9.2 h1:pOYN/mSAoPe6KO/Nvudfd5DUETbLv4nLTLzFPr62ADw=
102+
github.com/equinor/radix-common v1.9.2/go.mod h1:ekn86U68NT4ccSdt3GT+ukpiclzfuhr96a7zBJKv/jw=
102103
github.com/equinor/radix-operator v1.50.2 h1:xa5kPUN77QT6QJq9+DJzF/ic2c7AJcl4KKztky38sdc=
103104
github.com/equinor/radix-operator v1.50.2/go.mod h1:rl8Tbor0wvKfol67nd/p72MRh0iDTClGeQ2HcMRG/LQ=
104105
github.com/evanphx/json-patch v5.7.0+incompatible h1:vgGkfT/9f8zE6tvSCe74nfpAVDQ2tG6yudJd8LBksgI=
@@ -145,6 +146,7 @@ github.com/go-openapi/swag v0.22.7/go.mod h1:Gl91UqO+btAM0plGGxHqJcQZ1ZTy6jbmrid
145146
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
146147
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI=
147148
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
149+
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
148150
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
149151
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
150152
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
@@ -273,6 +275,11 @@ github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0V
273275
github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
274276
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
275277
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
278+
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
279+
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
280+
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
281+
github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA=
282+
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
276283
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
277284
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg=
278285
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k=
@@ -341,6 +348,9 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L
341348
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
342349
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
343350
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
351+
github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
352+
github.com/rs/zerolog v1.32.0 h1:keLypqrlIjaFsbmJOBdB/qvyF8KEtCWHwobLp5l/mQ0=
353+
github.com/rs/zerolog v1.32.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss=
344354
github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ=
345355
github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4=
346356
github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE=
@@ -568,10 +578,12 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc
568578
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
569579
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
570580
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
581+
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
571582
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
572583
golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
573584
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
574585
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
586+
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
575587
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
576588
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
577589
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=

main.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,35 +8,36 @@ import (
88
"github.com/equinor/radix-tekton/pkg/models"
99
"github.com/equinor/radix-tekton/pkg/models/env"
1010
"github.com/equinor/radix-tekton/pkg/pipeline"
11-
log "github.com/sirupsen/logrus"
11+
"github.com/equinor/radix-tekton/pkg/utils/logger"
12+
"github.com/rs/zerolog/log"
1213
)
1314

1415
func main() {
1516
environment := env.NewEnvironment()
16-
setLogLevel(environment)
17+
level, err := environment.GetLogLevel()
18+
if err != nil {
19+
log.Fatal().Err(err).Msg("Failed to initialize log level")
20+
}
21+
22+
logger.InitializeLogger(level, true)
1723

1824
kubeClient, radixClient, tektonClient, err := kubernetes.GetClients()
1925
if err != nil {
20-
log.Fatal(err.Error())
26+
log.Fatal().Err(err).Msg("Failed to initialize kubeClient")
2127
}
2228

2329
ctx := pipeline.NewPipelineContext(kubeClient, radixClient, tektonClient, environment)
2430
err = runAction(ctx)
2531
if err != nil {
26-
log.Fatal(err.Error())
32+
log.Fatal().Err(err).Msg("Failed to run ")
2733
}
2834

29-
log.Infof("Completed")
35+
log.Info().Msg("Completed")
3036
}
3137

32-
func setLogLevel(environment env.Env) {
33-
logLevel := environment.GetLogLevel()
34-
log.SetLevel(logLevel)
35-
log.Debugf("log-level '%v'", logLevel)
36-
}
3738
func runAction(ctx models.Context) error {
3839
action := ctx.GetEnv().GetPipelinesAction()
39-
log.Debugf("execute an action %s", action)
40+
log.Debug().Msgf("execute an action %s", action)
4041
switch action {
4142
case pipelineDefaults.RadixPipelineActionPrepare:
4243
return ctx.ProcessRadixAppConfig()

pkg/internal/wait/pipelinerun.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"time"
88

99
"github.com/equinor/radix-tekton/pkg/models/env"
10-
log "github.com/sirupsen/logrus"
10+
"github.com/rs/zerolog/log"
1111
pipelinev1 "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1"
1212
tektonclient "github.com/tektoncd/pipeline/pkg/client/clientset/versioned"
1313
tektonInformerFactory "github.com/tektoncd/pipeline/pkg/client/informers/externalversions"
@@ -70,18 +70,18 @@ func waitForCompletionOf(pipelineRuns map[string]*pipelinev1.PipelineRun, tekton
7070

7171
switch {
7272
case lastCondition.Reason == pipelinev1.PipelineRunReasonCompleted.String():
73-
log.Infof("pipelineRun completed: %s", lastCondition.Message)
73+
log.Info().Msgf("pipelineRun completed: %s", lastCondition.Message)
7474
case lastCondition.Reason == pipelinev1.PipelineRunReasonFailed.String():
7575
errChan <- fmt.Errorf("PipelineRun failed: %s", lastCondition.Message)
7676
return
7777
default:
78-
log.Infof("pipelineRun status %s: %s", lastCondition.Reason, lastCondition.Message)
78+
log.Info().Msgf("pipelineRun status %s: %s", lastCondition.Reason, lastCondition.Message)
7979
}
8080
if len(pipelineRuns) == 0 {
8181
errChan <- nil
8282
}
8383
} else {
84-
log.Debugf("Ongoing - PipelineRun has not completed yet")
84+
log.Debug().Msgf("Ongoing - PipelineRun has not completed yet")
8585
}
8686
},
8787
DeleteFunc: func(old interface{}) {

pkg/models/env/env.go

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
"github.com/equinor/radix-operator/pkg/apis/utils/git"
1212
tektonDefaults "github.com/equinor/radix-tekton/pkg/defaults"
1313
"github.com/equinor/radix-tekton/pkg/models/env/internal"
14-
log "github.com/sirupsen/logrus"
14+
"github.com/rs/zerolog"
1515
"github.com/spf13/viper"
1616
)
1717

@@ -106,15 +106,13 @@ func (e *env) GetDNSConfig() *dnsalias.DNSConfig {
106106
}
107107

108108
// GetLogLevel Log level: ERROR, INFO (default), DEBUG
109-
func (e *env) GetLogLevel() log.Level {
110-
switch viper.GetString(defaults.LogLevel) {
111-
case "DEBUG":
112-
return log.DebugLevel
113-
case "ERROR":
114-
return log.ErrorLevel
115-
default:
116-
return log.InfoLevel
109+
func (e *env) GetLogLevel() (zerolog.Level, error) {
110+
level := viper.GetString(defaults.LogLevel)
111+
if level == "" {
112+
return zerolog.InfoLevel, nil
117113
}
114+
115+
return zerolog.ParseLevel(level)
118116
}
119117

120118
// GetGitRepositoryWorkspace Path to the cloned GitHub repository
@@ -143,7 +141,7 @@ type Env interface {
143141
GetRadixImageTag() string
144142
GetBranch() string
145143
GetPipelinesAction() string
146-
GetLogLevel() log.Level
144+
GetLogLevel() (zerolog.Level, error)
147145
GetGitRepositoryWorkspace() string
148146
GetSourceDeploymentGitCommitHash() string
149147
GetSourceDeploymentGitBranch() string

pkg/models/env/env_mock.go

Lines changed: 5 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/pipeline/pipeline_context.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import (
1414
"github.com/equinor/radix-tekton/pkg/models"
1515
"github.com/equinor/radix-tekton/pkg/models/env"
1616
ownerreferences "github.com/equinor/radix-tekton/pkg/utils/owner_references"
17-
log "github.com/sirupsen/logrus"
17+
"github.com/rs/zerolog/log"
1818
tektonclient "github.com/tektoncd/pipeline/pkg/client/clientset/versioned"
1919
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2020
"k8s.io/client-go/kubernetes"
@@ -67,7 +67,7 @@ func (ctx *pipelineContext) setPipelineRunParamsFromBuild(envVarsMap v1.EnvVarsM
6767
if ctx.radixApplication.Spec.Build == nil ||
6868
ctx.radixApplication.Spec.Build.Variables == nil ||
6969
len(ctx.radixApplication.Spec.Build.Variables) == 0 {
70-
log.Debugln("No radixApplication build variables")
70+
log.Debug().Msg("No radixApplication build variables")
7171
return
7272
}
7373

@@ -90,7 +90,7 @@ func (ctx *pipelineContext) setPipelineRunParamsFromEnvironmentBuilds(targetEnv
9090
// getGitHash return git commit to which the user repository should be reset before parsing sub-pipelines.
9191
func (ctx *pipelineContext) getGitHash() (string, error) {
9292
if ctx.env.GetRadixPipelineType() == v1.Build {
93-
log.Infof("build job with no deployment, skipping sub-pipelines.")
93+
log.Info().Msg("build job with no deployment, skipping sub-pipelines.")
9494
return "", nil
9595
}
9696

@@ -101,7 +101,7 @@ func (ctx *pipelineContext) getGitHash() (string, error) {
101101
return sourceRdHashFromAnnotation, nil
102102
}
103103
if sourceDeploymentGitBranch == "" {
104-
log.Infof("source deployment has no git metadata, skipping sub-pipelines")
104+
log.Info().Msg("source deployment has no git metadata, skipping sub-pipelines")
105105
return "", nil
106106
}
107107
sourceRdHashFromBranchHead, err := git.GetGitCommitHashFromHead(ctx.env.GetGitRepositoryWorkspace(), sourceDeploymentGitBranch)
@@ -118,7 +118,7 @@ func (ctx *pipelineContext) getGitHash() (string, error) {
118118
pipelineJobBranch = re.Build.From
119119
}
120120
if pipelineJobBranch == "" {
121-
log.Infof("deploy job with no build branch, skipping sub-pipelines.")
121+
log.Info().Msg("deploy job with no build branch, skipping sub-pipelines.")
122122
return "", nil
123123
}
124124
gitHash, err := git.GetGitCommitHashFromHead(ctx.env.GetGitRepositoryWorkspace(), pipelineJobBranch)

0 commit comments

Comments
 (0)