@@ -4,6 +4,8 @@ package main
44import (
55 "context"
66 "flag"
7+ "fmt"
8+ "log/slog"
79 "os"
810 "os/signal"
911 "syscall"
@@ -14,8 +16,10 @@ import (
1416 "gitlab.com/gitlab-org/gitlab-shell/v14/internal/logger"
1517 "gitlab.com/gitlab-org/gitlab-shell/v14/internal/sshd"
1618
19+ "gitlab.com/gitlab-org/labkit/fields"
1720 "gitlab.com/gitlab-org/labkit/log"
1821 "gitlab.com/gitlab-org/labkit/monitoring"
22+ v2log "gitlab.com/gitlab-org/labkit/v2/log"
1923)
2024
2125var (
@@ -43,6 +47,9 @@ func overrideConfigFromEnvironment(cfg *config.Config) {
4347}
4448
4549func main () {
50+ ctx := context .Background ()
51+ v2Logger := v2log .New ()
52+ v2Logger .InfoContext (ctx , "v2log: gitlab-sshd starting up..." )
4653 command .CheckForVersionFlag (os .Args , Version , BuildTime )
4754
4855 flag .Parse ()
@@ -52,15 +59,23 @@ func main() {
5259 var err error
5360 cfg , err = config .NewFromDir (* configDir )
5461 if err != nil {
62+ v2Logger .ErrorContext (ctx , "v2log: failed to load configuration from specified directory" , slog .String (
63+ fields .ErrorMessage , err .Error (),
64+ ))
5565 log .WithError (err ).Fatal ("failed to load configuration from specified directory" )
5666 }
5767 }
5868
5969 overrideConfigFromEnvironment (cfg )
6070 if err := cfg .IsSane (); err != nil {
71+ ctx = v2log .WithFields (ctx ,
72+ slog .String (fields .ErrorMessage , err .Error ()),
73+ )
6174 if * configDir == "" {
75+ v2Logger .ErrorContext (ctx , "v2log: no config-dir provided, using only environment variables" )
6276 log .WithError (err ).Fatal ("no config-dir provided, using only environment variables" )
6377 } else {
78+ v2Logger .ErrorContext (ctx , "v2log: configuration error" )
6479 log .WithError (err ).Fatal ("configuration error" )
6580 }
6681 }
@@ -70,6 +85,9 @@ func main() {
7085 logCloser := logger .ConfigureStandalone (cfg )
7186 defer func () {
7287 if err := logCloser .Close (); err != nil {
88+ v2Logger .ErrorContext (ctx , "v2log: Error closing logCloser" , slog .String (
89+ fields .ErrorMessage , err .Error (),
90+ ))
7391 log .WithError (err ).Fatal ("Error closing logCloser" )
7492 }
7593 }()
@@ -80,6 +98,9 @@ func main() {
8098
8199 server , err := sshd .NewServer (cfg )
82100 if err != nil {
101+ v2Logger .ErrorContext (ctx , "v2log: Failed to start Gitlab built-in sshd" , slog .String (
102+ fields .ErrorMessage , err .Error (),
103+ ))
83104 log .WithError (err ).Fatal ("Failed to start GitLab built-in sshd" )
84105 }
85106
@@ -94,25 +115,37 @@ func main() {
94115 done := make (chan os.Signal , 1 )
95116 signal .Notify (done , syscall .SIGINT , syscall .SIGTERM )
96117
97- gracefulShutdown (ctx , done , cfg , server , cancel )
118+ gracefulShutdown (ctx , done , cfg , server , cancel , v2Logger )
98119
99120 if err := server .ListenAndServe (ctx ); err != nil {
121+ v2Logger .ErrorContext (ctx , "v2log: GitLab built-in sshd failed to listen for new connections" ,
122+ slog .String (fields .ErrorMessage , err .Error ()))
100123 log .WithError (err ).Fatal ("GitLab built-in sshd failed to listen for new connections" )
101124 }
102125}
103126
104- func gracefulShutdown (ctx context.Context , done chan os.Signal , cfg * config.Config , server * sshd.Server , cancel context.CancelFunc ) {
127+ func gracefulShutdown (
128+ ctx context.Context ,
129+ done chan os.Signal ,
130+ cfg * config.Config ,
131+ server * sshd.Server ,
132+ cancel context.CancelFunc ,
133+ v2Logger * slog.Logger ,
134+ ) {
105135 go func () {
106136 sig := <- done
107137 signal .Reset (syscall .SIGINT , syscall .SIGTERM )
108138
109139 gracePeriod := time .Duration (cfg .Server .GracePeriod )
110140 log .WithContextFields (ctx , log.Fields {"shutdown_timeout_s" : gracePeriod .Seconds (), "signal" : sig .String ()}).Info ("Shutdown initiated" )
141+ v2Logger .InfoContext (ctx , fmt .Sprintf ("v2log: Shutdown initiated with grace period: %f" , gracePeriod .Seconds ()),
142+ slog .String ("signal" , sig .String ()))
111143
112144 if err := server .Shutdown (); err != nil {
145+ v2Logger .ErrorContext (ctx , "v2log: Error shutting down the server" , slog .String (
146+ fields .ErrorMessage , err .Error ()))
113147 log .WithError (err ).Fatal ("Error shutting down the server" )
114148 }
115-
116149 <- time .After (gracePeriod )
117150
118151 cancel ()
0 commit comments