containerd: missing config creates a default
This fixes silently ignore the config file not existing as well. ```bash sudo ./bin/containerd --config farts $ sudo ./bin/containerd --config farts INFO[0000] config "farts" does not exist. Creating it. module=containerd INFO[0000] starting containerd boot... module=containerd INFO[0000] starting debug API... debug="/run/containerd/debug.sock" module=containerd INFO[0000] loading monitor plugin "cgroups"... module=containerd INFO[0000] loading runtime plugin "linux"... module=containerd INFO[0000] loading snapshot plugin "snapshot-overlay"... module=containerd INFO[0000] loading grpc service plugin "content-grpc"... module=containerd INFO[0000] loading grpc service plugin "metrics-grpc"... module=containerd INFO[0000] loading grpc service plugin "runtime-grpc"... module=containerd INFO[0000] loading grpc service plugin "healthcheck-grpc"... module=containerd INFO[0000] loading grpc service plugin "rootfs-grpc"... module=containerd INFO[0000] starting GRPC API server... module=containerd INFO[0000] containerd successfully booted in 0.001465s module=containerd ^C$ cat farts state = "/run/containerd" root = "/var/lib/containerd" snapshotter = "overlay" subreaper = false [grpc] socket = "/run/containerd/containerd.sock" uid = 0 gid = 0 [debug] socket = "/run/containerd/debug.sock" level = "info" [metrics] address = "" ``` Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
This commit is contained in:
parent
28d012ea00
commit
93417d446c
1 changed files with 14 additions and 2 deletions
|
@ -162,10 +162,22 @@ func before(context *cli.Context) error {
|
||||||
log.G(global).Infof("containerd default config written to %q", fh.Name())
|
log.G(global).Infof("containerd default config written to %q", fh.Name())
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
if err := loadConfig(context.GlobalString("config")); err != nil &&
|
err := loadConfig(context.GlobalString("config"))
|
||||||
!os.IsNotExist(err) {
|
if err != nil && !os.IsNotExist(err) {
|
||||||
return err
|
return err
|
||||||
|
} else if err != nil && os.IsNotExist(err) {
|
||||||
|
log.G(global).Infof("config %q does not exist. Creating it.", context.GlobalString("config"))
|
||||||
|
fh, err := os.Create(context.GlobalString("config"))
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if _, err := conf.WriteTo(fh); err != nil {
|
||||||
|
fh.Close()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
fh.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
// the order for config vs flag values is that flags will always override
|
// the order for config vs flag values is that flags will always override
|
||||||
// the config values if they are set
|
// the config values if they are set
|
||||||
if err := setLevel(context); err != nil {
|
if err := setLevel(context); err != nil {
|
||||||
|
|
Loading…
Reference in a new issue