Skip to content

Commit

Permalink
Merge pull request #2698 from buildkite/k8s-disabled-warnings
Browse files Browse the repository at this point in the history
Ensure that disabled warnings get passed to the logger in kubernetes agents
  • Loading branch information
moskyb committed Apr 2, 2024
2 parents c9ae9bc + cebd63b commit 1aa78cf
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 13 deletions.
4 changes: 2 additions & 2 deletions clicommand/agent_start.go
Original file line number Diff line number Diff line change
Expand Up @@ -1296,8 +1296,8 @@ func agentLifecycleHook(hookName string, log logger.Logger, cfg AgentStartConfig

// pipe from hook output to logger
r, w := io.Pipe()
sh.Logger = &shell.WriterLogger{Writer: w, Ansi: !cfg.NoColor} // for Promptf
sh.Writer = w // for stdout+stderr
sh.Logger = shell.NewWriterLogger(w, !cfg.NoColor, nil) // for Promptf
sh.Writer = w // for stdout+stderr
var wg sync.WaitGroup
wg.Add(1)
go func() {
Expand Down
9 changes: 5 additions & 4 deletions internal/job/executor.go
Original file line number Diff line number Diff line change
Expand Up @@ -1154,18 +1154,19 @@ func (e *Executor) startKubernetesClient(ctx context.Context, kubernetesClient *
e.shell.Env.Set("BUILDKITE_AGENT_ACCESS_TOKEN", connect.AccessToken)
writer := io.MultiWriter(os.Stdout, kubernetesClient)
e.shell.Writer = writer
e.shell.Logger = &shell.WriterLogger{
Writer: writer,
Ansi: true,
}
e.shell.Logger = shell.NewWriterLogger(writer, true, e.DisabledWarnings)

return nil
})

if err != nil {
return fmt.Errorf("error connecting to kubernetes runner: %w", err)
}

if err := kubernetesClient.Await(ctx, kubernetes.RunStateStart); err != nil {
return fmt.Errorf("error waiting for client to become ready: %w", err)
}

go func() {
if err := kubernetesClient.Await(ctx, kubernetes.RunStateInterrupt); err != nil {
e.shell.Errorf("Error waiting for client interrupt: %v", err)
Expand Down
8 changes: 8 additions & 0 deletions internal/job/shell/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,14 @@ type WriterLogger struct {
DisabledWarningIDs []string
}

func NewWriterLogger(writer io.Writer, ansi bool, disabledWarningIDs []string) *WriterLogger {
return &WriterLogger{
Writer: writer,
Ansi: ansi,
DisabledWarningIDs: disabledWarningIDs,
}
}

func (wl *WriterLogger) Write(b []byte) (int, error) {
wl.Printf("%s", b)
return len(b), nil
Expand Down
4 changes: 2 additions & 2 deletions internal/job/shell/logger_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (

func TestAnsiLogger(t *testing.T) {
got := &bytes.Buffer{}
l := shell.WriterLogger{Writer: got, Ansi: false}
l := shell.NewWriterLogger(got, false, nil)

l.Headerf("Testing header: %q", "llamas")
l.Printf("Testing print: %q", "llamas")
Expand Down Expand Up @@ -44,7 +44,7 @@ func TestAnsiLogger(t *testing.T) {

func TestLoggerStreamer(t *testing.T) {
got := &bytes.Buffer{}
l := &shell.WriterLogger{Writer: got, Ansi: false}
l := shell.NewWriterLogger(got, false, nil)

streamer := shell.NewLoggerStreamer(l)
streamer.Prefix = "TEST>"
Expand Down
2 changes: 1 addition & 1 deletion internal/job/shell/shell_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ func TestRun(t *testing.T) {
sh := newShellForTest(t)
sh.PTY = false
sh.Writer = out
sh.Logger = &shell.WriterLogger{Writer: out, Ansi: false}
sh.Logger = shell.NewWriterLogger(out, false, nil)

go func() {
call := <-sshKeygen.Ch
Expand Down
8 changes: 4 additions & 4 deletions jobapi/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -465,8 +465,8 @@ func TestDebugLogging(t *testing.T) {
assert.NilError(t, err)

logBuf := &bytes.Buffer{}
logger := shell.WriterLogger{Writer: logBuf, Ansi: true}
srv, token, err := jobapi.NewServer(&logger, sockName, env, nil, jobapi.WithDebug())
logger := shell.NewWriterLogger(logBuf, true, nil)
srv, token, err := jobapi.NewServer(logger, sockName, env, nil, jobapi.WithDebug())
assert.NilError(t, err)

assert.NilError(t, srv.Start())
Expand Down Expand Up @@ -511,8 +511,8 @@ func TestNoLogging(t *testing.T) {
assert.NilError(t, err)

logBuf := &bytes.Buffer{}
logger := shell.WriterLogger{Writer: logBuf, Ansi: true}
srv, token, err := jobapi.NewServer(&logger, sockName, env, nil)
logger := shell.NewWriterLogger(logBuf, true, nil)
srv, token, err := jobapi.NewServer(logger, sockName, env, nil)
assert.NilError(t, err)

assert.NilError(t, srv.Start())
Expand Down

0 comments on commit 1aa78cf

Please sign in to comment.