Skip to content

Commit 811a32b

Browse files
authored
Merge pull request #314 from kzys/fc-stdout-stderr
Connect stdout/stderr of Firecracker in Debug mode
2 parents 38742ee + f64fd96 commit 811a32b

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

runtime/integ_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ var defaultRuntimeConfig = Config{
3030
CPUCount: 1,
3131
CPUTemplate: "T2",
3232
LogLevel: "Debug",
33+
Debug: true,
3334
}
3435

3536
func defaultSnapshotterName() string {

runtime/noop_jailer.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@ func (j noopJailer) BuildJailedMachine(cfg *Config, machineConfig *firecracker.C
5252
WithSocketPath(relSocketPath).
5353
Build(j.ctx)
5454

55+
if cfg.Debug {
56+
cmd.Stdout = j.logger.WithField("vmm_stream", "stdout").WriterLevel(logrus.DebugLevel)
57+
cmd.Stderr = j.logger.WithField("vmm_stream", "stderr").WriterLevel(logrus.DebugLevel)
58+
}
59+
5560
j.logger.Debug("noop operation for BuildJailedMachine")
5661
return []firecracker.Opt{
5762
firecracker.WithProcessRunner(cmd),

runtime/runc_jailer.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ func (j *runcJailer) BuildJailedMachine(cfg *Config, machineConfig *firecracker.
9999
client := firecracker.NewClient(machineConfig.SocketPath, j.logger, machineConfig.Debug)
100100

101101
opts := []firecracker.Opt{
102-
firecracker.WithProcessRunner(j.jailerCommand(vmID)),
102+
firecracker.WithProcessRunner(j.jailerCommand(vmID, cfg.Debug)),
103103
firecracker.WithClient(client),
104104
func(m *firecracker.Machine) {
105105
m.Handlers.FcInit = m.Handlers.FcInit.Prepend(handler)
@@ -340,9 +340,15 @@ func copyFile(src, dst string, mode os.FileMode) error {
340340
return nil
341341
}
342342

343-
func (j runcJailer) jailerCommand(containerName string) *exec.Cmd {
343+
func (j runcJailer) jailerCommand(containerName string, isDebug bool) *exec.Cmd {
344344
cmd := exec.CommandContext(j.ctx, j.runcBinaryPath, "run", containerName)
345345
cmd.Dir = j.OCIBundlePath()
346+
347+
if isDebug {
348+
cmd.Stdout = j.logger.WithField("vmm_stream", "stdout").WriterLevel(logrus.DebugLevel)
349+
cmd.Stderr = j.logger.WithField("vmm_stream", "stderr").WriterLevel(logrus.DebugLevel)
350+
}
351+
346352
return cmd
347353
}
348354

0 commit comments

Comments
 (0)