plugin/kubernetes: make glog log to standard output (#1598)
Jump through all the hoops to make this work.
This commit is contained in:
parent
8d27dd7e92
commit
95342dfaad
1 changed files with 12 additions and 0 deletions
|
@ -2,7 +2,9 @@ package kubernetes
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
@ -19,6 +21,13 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
// Kubernetes plugin uses the kubernetes library, which uses glog (ugh), we must set this *flag*,
|
||||||
|
// so we don't log to the filesystem, which can fill up and crash CoreDNS indirectly by calling os.Exit().
|
||||||
|
// We also set: os.Stderr = os.Stdout in the setup function below so we output to standard out; as we do for
|
||||||
|
// all CoreDNS logging. We can't do *that* in the init function, because we, when starting, also barf some
|
||||||
|
// things to stderr.
|
||||||
|
flag.Set("logtostderr", "true")
|
||||||
|
|
||||||
caddy.RegisterPlugin("kubernetes", caddy.Plugin{
|
caddy.RegisterPlugin("kubernetes", caddy.Plugin{
|
||||||
ServerType: "dns",
|
ServerType: "dns",
|
||||||
Action: setup,
|
Action: setup,
|
||||||
|
@ -26,6 +35,9 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func setup(c *caddy.Controller) error {
|
func setup(c *caddy.Controller) error {
|
||||||
|
// See comment in the init function.
|
||||||
|
os.Stderr = os.Stdout
|
||||||
|
|
||||||
k, err := kubernetesParse(c)
|
k, err := kubernetesParse(c)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return plugin.Error("kubernetes", err)
|
return plugin.Error("kubernetes", err)
|
||||||
|
|
Loading…
Add table
Reference in a new issue