mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-10-10 18:53:25 +00:00
The proxy is in charge to print the agent logs, but when `use_vsocks` is true the runtime doesn't start the proxy, because it's not needed, hence the agent logs are ignored. To mitigate this limitation and to make the debugging processes easier, the fist shim started (the one who monitors the sandbox) will read the console.sock and print the agent logs. Depends-on: github.com/kata-containers/shim#172 fixes #1596 Signed-off-by: Julio Montes <julio.montes@intel.com>
62 lines
1.3 KiB
Go
62 lines
1.3 KiB
Go
// Copyright (c) 2017 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
package virtcontainers
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
type kataShim struct{}
|
|
|
|
// start is the ccShim start implementation.
|
|
// It starts the cc-shim binary with URL and token flags provided by
|
|
// the proxy.
|
|
func (s *kataShim) start(sandbox *Sandbox, params ShimParams) (int, error) {
|
|
if sandbox.config == nil {
|
|
return -1, fmt.Errorf("Sandbox config cannot be nil")
|
|
}
|
|
|
|
config, ok := newShimConfig(*(sandbox.config)).(ShimConfig)
|
|
if !ok {
|
|
return -1, fmt.Errorf("Wrong shim config type, should be ShimConfig type")
|
|
}
|
|
|
|
if config.Path == "" {
|
|
return -1, fmt.Errorf("Shim path cannot be empty")
|
|
}
|
|
|
|
if params.URL == "" {
|
|
return -1, fmt.Errorf("URL cannot be empty")
|
|
}
|
|
|
|
if params.Container == "" {
|
|
return -1, fmt.Errorf("Container cannot be empty")
|
|
}
|
|
|
|
if params.Token == "" {
|
|
return -1, fmt.Errorf("Process token cannot be empty")
|
|
}
|
|
|
|
args := []string{config.Path, "-agent", params.URL, "-container", params.Container, "-exec-id", params.Token}
|
|
|
|
if params.Terminal {
|
|
args = append(args, "-terminal")
|
|
}
|
|
|
|
if config.Debug {
|
|
args = append(args, "-log", "debug")
|
|
if params.ConsoleURL != "" {
|
|
args = append(args, "-agent-logs-socket", params.ConsoleURL)
|
|
}
|
|
}
|
|
|
|
if config.Trace {
|
|
args = append(args, "-trace")
|
|
}
|
|
|
|
return startShim(args, params)
|
|
}
|