mirror of
https://github.com/hanzoai/visor.git
synced 2026-09-24 17:04:14 +00:00
For now, all sandbox controller methods are implemented to return unimplemented errors (errdefs.ErrNotImplemented). Add an integration test to verify that containerd correctly routes sandbox API calls to our shim when configured with "sandboxer = shim" (or "sandbox_mode = "shim" for containerd 1.7), and that the shim returns the expected unimplemented error. PiperOrigin-RevId: 923663790
94 lines
2.8 KiB
Go
94 lines
2.8 KiB
Go
// Copyright 2018 The gVisor Authors.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// https://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package runsc
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/BurntSushi/toml"
|
|
"github.com/containerd/log"
|
|
)
|
|
|
|
const optionsType = "io.containerd.runsc.v1.options"
|
|
|
|
// GetRuntimeOptions returns the runtime options from the global config file.
|
|
func GetRuntimeOptions() *Options {
|
|
opts := &Options{}
|
|
shimConfigPaths := []string{
|
|
"/run/containerd/runsc/config.toml",
|
|
"/etc/containerd/runsc/config.toml",
|
|
"config.toml",
|
|
}
|
|
|
|
tomlPath := ""
|
|
for _, path := range shimConfigPaths {
|
|
if _, err := os.Stat(path); err == nil {
|
|
log.L.Debugf("Found shim config file %q", path)
|
|
tomlPath = path
|
|
break
|
|
}
|
|
}
|
|
if len(tomlPath) == 0 {
|
|
log.L.Debugf("Failed to find shim config file")
|
|
return opts
|
|
}
|
|
|
|
if _, err := toml.DecodeFile(tomlPath, opts); err != nil {
|
|
log.L.Debugf("Failed to decode shim config file %q: %v", tomlPath, err)
|
|
return opts
|
|
}
|
|
|
|
return opts
|
|
}
|
|
|
|
// Options is runtime options for io.containerd.runsc.v1.
|
|
type Options struct {
|
|
// ShimCgroup is the cgroup the shim should be in.
|
|
ShimCgroup string `toml:"shim_cgroup" json:"shimCgroup"`
|
|
|
|
// IoUID is the I/O's pipes uid.
|
|
IoUID uint32 `toml:"io_uid" json:"ioUid"`
|
|
|
|
// IoGID is the I/O's pipes gid.
|
|
IoGID uint32 `toml:"io_gid" json:"ioGid"`
|
|
|
|
// BinaryName is the binary name of the runsc binary.
|
|
BinaryName string `toml:"binary_name" json:"binaryName"`
|
|
|
|
// Root is the runsc root directory.
|
|
Root string `toml:"root" json:"root"`
|
|
|
|
// LogLevel sets the logging level. Some of the possible values are: debug,
|
|
// info, warning.
|
|
//
|
|
// This configuration only applies when the shim is running as a service.
|
|
LogLevel string `toml:"log_level" json:"logLevel"`
|
|
|
|
// LogPath is the path to log directory. %ID% tags inside the string are
|
|
// replaced with the container ID.
|
|
//
|
|
// This configuration only applies when the shim is running as a service.
|
|
LogPath string `toml:"log_path" json:"logPath"`
|
|
|
|
// Grouping indicates if shim grouping should be enabled.
|
|
Grouping bool `toml:"grouping" json:"grouping"`
|
|
|
|
// EnableHibernateServer indicates if the hibernate server should be started.
|
|
EnableHibernateServer bool `toml:"enable_hibernate_server" json:"enableHibernateServer"`
|
|
|
|
// RunscConfig is a key/value map of all runsc flags.
|
|
RunscConfig map[string]string `toml:"runsc_config" json:"runscConfig"`
|
|
}
|