diff --git a/runtime/integ_test.go b/runtime/integ_test.go index abae16441..283d31359 100644 --- a/runtime/integ_test.go +++ b/runtime/integ_test.go @@ -30,6 +30,7 @@ var defaultRuntimeConfig = Config{ CPUCount: 1, CPUTemplate: "T2", LogLevel: "Debug", + Debug: true, } func defaultSnapshotterName() string { diff --git a/runtime/noop_jailer.go b/runtime/noop_jailer.go index ae15872e6..516b032b3 100644 --- a/runtime/noop_jailer.go +++ b/runtime/noop_jailer.go @@ -52,6 +52,11 @@ func (j noopJailer) BuildJailedMachine(cfg *Config, machineConfig *firecracker.C WithSocketPath(relSocketPath). Build(j.ctx) + if cfg.Debug { + cmd.Stdout = j.logger.WithField("vmm_stream", "stdout").WriterLevel(logrus.DebugLevel) + cmd.Stderr = j.logger.WithField("vmm_stream", "stderr").WriterLevel(logrus.DebugLevel) + } + j.logger.Debug("noop operation for BuildJailedMachine") return []firecracker.Opt{ firecracker.WithProcessRunner(cmd), diff --git a/runtime/runc_jailer.go b/runtime/runc_jailer.go index 79fe25cb3..77b8beb19 100644 --- a/runtime/runc_jailer.go +++ b/runtime/runc_jailer.go @@ -99,7 +99,7 @@ func (j *runcJailer) BuildJailedMachine(cfg *Config, machineConfig *firecracker. client := firecracker.NewClient(machineConfig.SocketPath, j.logger, machineConfig.Debug) opts := []firecracker.Opt{ - firecracker.WithProcessRunner(j.jailerCommand(vmID)), + firecracker.WithProcessRunner(j.jailerCommand(vmID, cfg.Debug)), firecracker.WithClient(client), func(m *firecracker.Machine) { m.Handlers.FcInit = m.Handlers.FcInit.Prepend(handler) @@ -340,9 +340,15 @@ func copyFile(src, dst string, mode os.FileMode) error { return nil } -func (j runcJailer) jailerCommand(containerName string) *exec.Cmd { +func (j runcJailer) jailerCommand(containerName string, isDebug bool) *exec.Cmd { cmd := exec.CommandContext(j.ctx, j.runcBinaryPath, "run", containerName) cmd.Dir = j.OCIBundlePath() + + if isDebug { + cmd.Stdout = j.logger.WithField("vmm_stream", "stdout").WriterLevel(logrus.DebugLevel) + cmd.Stderr = j.logger.WithField("vmm_stream", "stderr").WriterLevel(logrus.DebugLevel) + } + return cmd }