mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +00:00
Do not try to create an audit log file named "-"
That PR fixes --audit-log-path=- support. It now logs to stdout as in 1.21.
This commit is contained in:
parent
9b84e473b2
commit
7728428f01
@ -511,21 +511,21 @@ func (o *AuditLogOptions) getWriter() (io.Writer, error) {
|
|||||||
return nil, nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := o.ensureLogFile(); err != nil {
|
if o.Path == "-" {
|
||||||
return nil, err
|
return os.Stdout, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var w io.Writer = os.Stdout
|
if err := o.ensureLogFile(); err != nil {
|
||||||
if o.Path != "-" {
|
return nil, fmt.Errorf("ensureLogFile: %w", err)
|
||||||
w = &lumberjack.Logger{
|
|
||||||
Filename: o.Path,
|
|
||||||
MaxAge: o.MaxAge,
|
|
||||||
MaxBackups: o.MaxBackups,
|
|
||||||
MaxSize: o.MaxSize,
|
|
||||||
Compress: o.Compress,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return w, nil
|
|
||||||
|
return &lumberjack.Logger{
|
||||||
|
Filename: o.Path,
|
||||||
|
MaxAge: o.MaxAge,
|
||||||
|
MaxBackups: o.MaxBackups,
|
||||||
|
MaxSize: o.MaxSize,
|
||||||
|
Compress: o.Compress,
|
||||||
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (o *AuditLogOptions) ensureLogFile() error {
|
func (o *AuditLogOptions) ensureLogFile() error {
|
||||||
|
@ -27,6 +27,7 @@ import (
|
|||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
"gopkg.in/natefinch/lumberjack.v2"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
auditv1 "k8s.io/apiserver/pkg/apis/audit/v1"
|
auditv1 "k8s.io/apiserver/pkg/apis/audit/v1"
|
||||||
"k8s.io/apiserver/pkg/server"
|
"k8s.io/apiserver/pkg/server"
|
||||||
@ -59,6 +60,15 @@ func TestAuditValidOptions(t *testing.T) {
|
|||||||
return o
|
return o
|
||||||
},
|
},
|
||||||
expected: "ignoreErrors<log>",
|
expected: "ignoreErrors<log>",
|
||||||
|
}, {
|
||||||
|
name: "stdout log",
|
||||||
|
options: func() *AuditOptions {
|
||||||
|
o := NewAuditOptions()
|
||||||
|
o.LogOptions.Path = "-"
|
||||||
|
o.PolicyFile = policy
|
||||||
|
return o
|
||||||
|
},
|
||||||
|
expected: "ignoreErrors<log>",
|
||||||
}, {
|
}, {
|
||||||
name: "default log no policy",
|
name: "default log no policy",
|
||||||
options: func() *AuditOptions {
|
options: func() *AuditOptions {
|
||||||
@ -147,6 +157,22 @@ func TestAuditValidOptions(t *testing.T) {
|
|||||||
} else {
|
} else {
|
||||||
assert.Equal(t, tc.expected, fmt.Sprintf("%s", config.AuditBackend))
|
assert.Equal(t, tc.expected, fmt.Sprintf("%s", config.AuditBackend))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
w, err := options.LogOptions.getWriter()
|
||||||
|
require.NoError(t, err, "Writer creation should not fail.")
|
||||||
|
|
||||||
|
// Don't check writer if logging is disabled.
|
||||||
|
if w == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if options.LogOptions.Path == "-" {
|
||||||
|
assert.Equal(t, os.Stdout, w)
|
||||||
|
assert.NoFileExists(t, options.LogOptions.Path)
|
||||||
|
} else {
|
||||||
|
assert.IsType(t, (*lumberjack.Logger)(nil), w)
|
||||||
|
assert.FileExists(t, options.LogOptions.Path)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user