plugin/kubernetes : make kubernetes client log in CoreDNS format (#5461)

Signed-off-by: Ondřej Benkovský <ondrej.benkovsky@jamf.com>
This commit is contained in:
Ondřej Benkovský 2022-06-26 23:49:45 +02:00 committed by GitHub
parent 4a40e9e3a0
commit e0dead4aa2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 40 additions and 2 deletions

View file

@ -0,0 +1,38 @@
package kubernetes
import (
clog "github.com/coredns/coredns/plugin/pkg/log"
"github.com/go-logr/logr"
)
// loggerAdapter is a simple wrapper around CoreDNS plugin logger made to implement logr.LogSink interface, which is used
// as part of klog library for logging in Kubernetes client. By using this adapter CoreDNS is able to log messages/errors from
// kubernetes client in a CoreDNS logging format
type loggerAdapter struct {
clog.P
}
func (l *loggerAdapter) Init(_ logr.RuntimeInfo) {
}
func (l *loggerAdapter) Enabled(_ int) bool {
// verbosity is controlled inside klog library, we do not need to do anything here
return true
}
func (l *loggerAdapter) Info(_ int, msg string, _ ...interface{}) {
l.P.Info(msg)
}
func (l *loggerAdapter) Error(_ error, msg string, _ ...interface{}) {
l.P.Error(msg)
}
func (l *loggerAdapter) WithValues(_ ...interface{}) logr.LogSink {
return l
}
func (l *loggerAdapter) WithName(_ string) logr.LogSink {
return l
}