util

package
v0.0.0-...-3f1f8f2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 23, 2026 License: Apache-2.0, BSD-3-Clause, MIT Imports: 16 Imported by: 8

Documentation

Overview

Package util groups a bunch of common helper functions used by commands.

Index

Constants

This section is empty.

Variables

View Source
var ErrorLogger io.Writer

ErrorLogger is where error messages should be written to. These messages are consumed by containerd and show up to users of command line tools, like docker/kubectl.

Functions

func Errorf

func Errorf(format string, args ...any) subcommands.ExitStatus

Errorf logs error to containerd log (--log), to stderr, and debug logs. It returns subcommands.ExitFailure for convenience with subcommand.Execute() methods:

return Errorf("Danger! Danger!")

func Fatalf

func Fatalf(format string, args ...any)

Fatalf logs the same way as Errorf() does, plus *exits* the process.

func Infof

func Infof(format string, args ...any)

Infof writes message to log and stdout.

func IsPCIDeviceDirTPU

func IsPCIDeviceDirTPU(sysfsPath string, allowedDeviceIDs map[uint64]struct{}) bool

IsPCIDeviceDirTPU returns if the given PCI device sysfs path is a TPU device with one of the allowed device IDs.

func IsTPUDeviceValid

func IsTPUDeviceValid(path string) (bool, error)

IsTPUDeviceValid returns if the accelerator device is valid.

Types

type InternalCommand

type InternalCommand interface {
	InternalFetchSpec() (string, *specs.Spec, error)
}

InternalCommand is an interface for internal commands.

Internal commands are invoked by runsc itself. All of them use the --debug-log-fd and --log-fd mechanism. They all return "", nil, nil from SubCommand.FetchSpec because they don't need to have the spec as debug log file and log files are already created for them. This avoids having to re-load the Container struct from local filesystem, read all annotations and fix the config via specutils.FixConfig(). They already get the fixed config values as conf.ToFlags() is used to create their flags. They don't operate on a container so don't even take a container ID as an argument. Some of them (like boot and gofer) don't even have access to the host filesystem so they can't really open any host files.

type InternalSubCommand

type InternalSubCommand struct{}

InternalSubCommand is a struct that implements FetchSpec for internal commands. It should be embedded in internal commands.

func (*InternalSubCommand) FetchSpec

FetchSpec implements SubCommand.FetchSpec.

func (*InternalSubCommand) InternalFetchSpec

func (*InternalSubCommand) InternalFetchSpec() (string, *specs.Spec, error)

InternalFetchSpec implements InternalCommand.InternalFetchSpec.

type SubCommand

type SubCommand interface {
	subcommands.Command

	// FetchSpec returns the container ID, OCI spec associated with the command.
	// If the command does not target a container, it should return "", nil, nil.
	FetchSpec(conf *config.Config, f *flag.FlagSet) (string, *specs.Spec, error)
}

SubCommand is an extension of subcommands.Command that allows runsc CLI to fetch the OCI spec for the container that is targeted by the command.

type Writer

type Writer struct{}

Writer writes to log and stdout.

func (*Writer) Write

func (i *Writer) Write(data []byte) (n int, err error)

Write implements io.Writer.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL