mirror of
https://github.com/helmfile/helmfile.git
synced 2026-10-21 11:33:39 +02:00
fix: Fix broken trackLogs functionality in Kubedog tracker (#2630)
* fix: Fix broken `trackLogs` functionality in Kubedog tracker
When using helmfile with the following setup
```
releases:
- name: my-app
chart: ./mychart
trackMode: kubedog
trackLogs: true
trackFailOnError: true
```
We don't actually see any logs from the container being printed.
This is because when building the options for the Kubedog tracker, we never
specify `SaveLogsOnlyForNumberOfReplicas` which means this defaults to 0.
Looking at the logic in `pkg/tracker/deployment/tracker.go` we see
```
ignoreLogs := job.ignoreLogs || job.savingLogsReplicas >= job.SaveLogsOnlyForNumberOfReplicas
```
With job.SaveLogsOnlyForNumberOfReplicas always defaulting to 0, this will always ignore logs
This change sets it to a reasonable default of tracking logs from up to 10 pods.
Signed-off-by: Graeme Gillies <ggillies@gitlab.com>
* fix formatting
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Graeme Gillies <ggillies@gitlab.com>
* feat: Refactor out building tracker opts into it's own function, add tests
Signed-off-by: Graeme Gillies <ggillies@gitlab.com>
---------
Signed-off-by: Graeme Gillies <ggillies@gitlab.com>
Co-authored-by: Graeme Gillies <ggillies@gitlab.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
co-authored by
Copilot Autofix powered by AI
Graeme Gillies
parent
f4686027ff
commit
94e14f3b4e
@@ -1,6 +1,7 @@
|
||||
package kubedog
|
||||
|
||||
import (
|
||||
"context"
|
||||
"math"
|
||||
"os"
|
||||
"testing"
|
||||
@@ -275,3 +276,31 @@ users:
|
||||
assert.NotNil(t, tr)
|
||||
}
|
||||
}
|
||||
|
||||
func TestBuildTrackerOptions_LogsEnabled(t *testing.T) {
|
||||
tr := &Tracker{
|
||||
trackOptions: NewTrackOptions().WithLogs(true),
|
||||
}
|
||||
|
||||
opts := tr.buildTrackerOptions(context.Background())
|
||||
|
||||
// With logs enabled, kubedog must be told to stream logs and to save logs
|
||||
// for a positive number of replicas, otherwise log output is silently
|
||||
// suppressed.
|
||||
assert.False(t, opts.IgnoreLogs)
|
||||
assert.Equal(t, defaultSaveLogsReplicas, opts.SaveLogsOnlyForNumberOfReplicas)
|
||||
assert.Equal(t, 5*time.Minute, opts.Timeout)
|
||||
}
|
||||
|
||||
func TestBuildTrackerOptions_LogsDisabled(t *testing.T) {
|
||||
tr := &Tracker{
|
||||
trackOptions: NewTrackOptions().WithLogs(false),
|
||||
}
|
||||
|
||||
opts := tr.buildTrackerOptions(context.Background())
|
||||
|
||||
// With logs disabled, kubedog should ignore logs and not save any replicas'
|
||||
// logs (leaving the default zero value).
|
||||
assert.True(t, opts.IgnoreLogs)
|
||||
assert.Zero(t, opts.SaveLogsOnlyForNumberOfReplicas)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user