|
|
|
@ -47,10 +47,6 @@ func Run(ctx context.Context, cfg *config.Node) error {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if os.Getenv("CONTAINERD_LOG_LEVEL") != "" {
|
|
|
|
|
args = append(args, "-l", os.Getenv("CONTAINERD_LOG_LEVEL"))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
stdOut := io.Writer(os.Stdout)
|
|
|
|
|
stdErr := io.Writer(os.Stderr)
|
|
|
|
|
|
|
|
|
@ -67,18 +63,33 @@ func Run(ctx context.Context, cfg *config.Node) error {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
go func() {
|
|
|
|
|
env := []string{}
|
|
|
|
|
|
|
|
|
|
for _, e := range os.Environ() {
|
|
|
|
|
pair := strings.SplitN(e, "=", 2)
|
|
|
|
|
switch {
|
|
|
|
|
case pair[0] == "NOTIFY_SOCKET":
|
|
|
|
|
// elide NOTIFY_SOCKET to prevent spurious notifications to systemd
|
|
|
|
|
case pair[0] == "CONTAINERD_LOG_LEVEL":
|
|
|
|
|
// Turn CONTAINERD_LOG_LEVEL variable into log-level flag
|
|
|
|
|
args = append(args, "--log-level", pair[1])
|
|
|
|
|
case strings.HasPrefix(pair[0], "CONTAINERD_"):
|
|
|
|
|
// Strip variables with CONTAINERD_ prefix before passing through
|
|
|
|
|
// This allows doing things like setting a proxy for image pulls by setting
|
|
|
|
|
// CONTAINERD_https_proxy=http://proxy.example.com:8080
|
|
|
|
|
pair[0] = strings.TrimPrefix(pair[0], "CONTAINERD_")
|
|
|
|
|
fallthrough
|
|
|
|
|
default:
|
|
|
|
|
env = append(env, strings.Join(pair, "="))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
logrus.Infof("Running containerd %s", config.ArgString(args[1:]))
|
|
|
|
|
cmd := exec.Command(args[0], args[1:]...)
|
|
|
|
|
cmd.Stdout = stdOut
|
|
|
|
|
cmd.Stderr = stdErr
|
|
|
|
|
cmd.Env = os.Environ()
|
|
|
|
|
// elide NOTIFY_SOCKET to prevent spurious notifications to systemd
|
|
|
|
|
for i := range cmd.Env {
|
|
|
|
|
if strings.HasPrefix(cmd.Env[i], "NOTIFY_SOCKET=") {
|
|
|
|
|
cmd.Env = append(cmd.Env[:i], cmd.Env[i+1:]...)
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
cmd.Env = env
|
|
|
|
|
|
|
|
|
|
addDeathSig(cmd)
|
|
|
|
|
if err := cmd.Run(); err != nil {
|
|
|
|
|
fmt.Fprintf(os.Stderr, "containerd: %s\n", err)
|
|
|
|
|