Versions in this module Expand all Collapse all v0 v0.15.3 Mar 6, 2020 Changes in this version type NetworkInterface + Name string v0.15.2 Dec 19, 2019 Changes in this version + const AddVsocksHandlerName + const AttachDrivesHandlerName + const BootstrapLoggingHandlerName + const CreateBootSourceHandlerName + const CreateLogFilesHandlerName + const CreateMachineHandlerName + const CreateNetworkInterfacesHandlerName + const LinkFilesToRootFSHandlerName + const SetMetadataHandlerName + const StartVMMHandlerName + const ValidateCfgHandlerName + const ValidateJailerCfgHandlerName + const Version + var AddVsocksHandler = Handler + var AttachDrivesHandler = Handler + var BootstrapLoggingHandler = Handler + var ConfigValidationHandler = Handler + var CreateBootSourceHandler = Handler + var CreateLogFilesHandler = Handler + var CreateMachineHandler = Handler + var CreateNetworkInterfacesHandler = Handler + var ErrAlreadyStarted = errors.New("firecracker: machine already started") + var ErrRequiredHandlerMissing = fmt.Errorf("required handler is missing from FcInit's list") + var JailerConfigValidationHandler = Handler + var StartVMMHandler = Handler + func Bool(b bool) *bool + func BoolValue(b *bool) bool + func Int(v int) *int + func Int64(v int64) *int64 + func Int64Value(v *int64) int64 + func IntValue(v *int) int + func NewRateLimiter(bandwidth, ops models.TokenBucket, opts ...RateLimiterOpt) *models.RateLimiter + func NewUnixSocketTransport(socketPath string, logger *logrus.Entry, debug bool) runtime.ClientTransport + func String(str string) *string + func StringValue(str *string) string + type Client struct + func NewClient(socketPath string, logger *logrus.Entry, debug bool, opts ...ClientOpt) *Client + func (f *Client) CreateSyncAction(ctx context.Context, info *models.InstanceActionInfo, ...) (*ops.CreateSyncActionNoContent, error) + func (f *Client) GetInstanceDescription(opts ...DescribeInstanceOpt) (*ops.DescribeInstanceOK, error) + func (f *Client) GetMachineConfiguration(opts ...GetMachineConfigurationOpt) (*ops.GetMachineConfigurationOK, error) + func (f *Client) PatchGuestDriveByID(ctx context.Context, driveID, pathOnHost string, ...) (*ops.PatchGuestDriveByIDNoContent, error) + func (f *Client) PatchGuestNetworkInterfaceByID(ctx context.Context, ifaceID string, ifaceCfg *models.PartialNetworkInterface, ...) (*ops.PatchGuestNetworkInterfaceByIDNoContent, error) + func (f *Client) PutGuestBootSource(ctx context.Context, source *models.BootSource, opts ...PutGuestBootSourceOpt) (*ops.PutGuestBootSourceNoContent, error) + func (f *Client) PutGuestDriveByID(ctx context.Context, driveID string, drive *models.Drive, ...) (*ops.PutGuestDriveByIDNoContent, error) + func (f *Client) PutGuestNetworkInterfaceByID(ctx context.Context, ifaceID string, ifaceCfg *models.NetworkInterface, ...) (*ops.PutGuestNetworkInterfaceByIDNoContent, error) + func (f *Client) PutGuestVsockByID(ctx context.Context, vsockID string, vsock *models.Vsock, ...) (*ops.PutGuestVsockByIDCreated, *ops.PutGuestVsockByIDNoContent, error) + func (f *Client) PutLogger(ctx context.Context, logger *models.Logger, opts ...PutLoggerOpt) (*ops.PutLoggerNoContent, error) + func (f *Client) PutMachineConfiguration(ctx context.Context, cfg *models.MachineConfiguration, ...) (*ops.PutMachineConfigurationNoContent, error) + func (f *Client) PutMmds(ctx context.Context, metadata interface{}, opts ...PutMmdsOpt) (*ops.PutMmdsNoContent, error) + type ClientOpt func(*Client) + func WithOpsClient(opsClient ops.ClientIface) ClientOpt + type Config struct + Debug bool + DisableValidation bool + Drives []models.Drive + EnableJailer bool + FifoLogWriter io.Writer + JailerCfg JailerConfig + KernelArgs string + KernelImagePath string + LogFifo string + LogLevel string + MachineCfg models.MachineConfiguration + MetricsFifo string + NetworkInterfaces []NetworkInterface + SocketPath string + VsockDevices []VsockDevice + func (cfg *Config) Validate() error + type CreateSyncActionOpt func(*ops.CreateSyncActionParams) + type DescribeInstanceOpt func(*ops.DescribeInstanceParams) + type DriveOpt func(*models.Drive) + type DrivesBuilder struct + func NewDrivesBuilder(rootDrivePath string) DrivesBuilder + func (b DrivesBuilder) AddDrive(path string, readOnly bool, opts ...DriveOpt) DrivesBuilder + func (b DrivesBuilder) Build() []models.Drive + func (b DrivesBuilder) WithRootDrive(rootDrivePath string, opts ...DriveOpt) DrivesBuilder + type GetMachineConfigurationOpt func(*ops.GetMachineConfigurationParams) + type Handler struct + Fn func(context.Context, *Machine) error + Name string + func LinkFilesHandler(rootfs, kernelImageFileName string) Handler + func NewSetMetadataHandler(metadata interface{}) Handler + type HandlerList struct + func (l HandlerList) Append(handlers ...Handler) HandlerList + func (l HandlerList) AppendAfter(name string, handler Handler) HandlerList + func (l HandlerList) Clear() HandlerList + func (l HandlerList) Has(name string) bool + func (l HandlerList) Len() int + func (l HandlerList) Remove(name string) HandlerList + func (l HandlerList) Run(ctx context.Context, m *Machine) error + func (l HandlerList) Swap(handler Handler) HandlerList + func (l HandlerList) Swappend(handler Handler) HandlerList + type Handlers struct + FcInit HandlerList + Validation HandlerList + func (h Handlers) Run(ctx context.Context, m *Machine) error + type HandlersAdapter interface + AdaptHandlers func(*Handlers) error + type JailerCommandBuilder struct + func NewJailerCommandBuilder() JailerCommandBuilder + func (b JailerCommandBuilder) Args() []string + func (b JailerCommandBuilder) Bin() string + func (b JailerCommandBuilder) Build(ctx context.Context) *exec.Cmd + func (b JailerCommandBuilder) Stderr() io.Writer + func (b JailerCommandBuilder) Stdin() io.Reader + func (b JailerCommandBuilder) Stdout() io.Writer + func (b JailerCommandBuilder) WithBin(bin string) JailerCommandBuilder + func (b JailerCommandBuilder) WithChrootBaseDir(path string) JailerCommandBuilder + func (b JailerCommandBuilder) WithDaemonize(daemonize bool) JailerCommandBuilder + func (b JailerCommandBuilder) WithExecFile(path string) JailerCommandBuilder + func (b JailerCommandBuilder) WithGID(gid int) JailerCommandBuilder + func (b JailerCommandBuilder) WithID(id string) JailerCommandBuilder + func (b JailerCommandBuilder) WithNetNS(path string) JailerCommandBuilder + func (b JailerCommandBuilder) WithNumaNode(node int) JailerCommandBuilder + func (b JailerCommandBuilder) WithSeccompLevel(level SeccompLevelValue) JailerCommandBuilder + func (b JailerCommandBuilder) WithStderr(stderr io.Writer) JailerCommandBuilder + func (b JailerCommandBuilder) WithStdin(stdin io.Reader) JailerCommandBuilder + func (b JailerCommandBuilder) WithStdout(stdout io.Writer) JailerCommandBuilder + func (b JailerCommandBuilder) WithUID(uid int) JailerCommandBuilder + type JailerConfig struct + ChrootBaseDir string + ChrootStrategy HandlersAdapter + Daemonize bool + ExecFile string + GID *int + ID string + JailerBinary string + NetNS string + NumaNode *int + SeccompLevel SeccompLevelValue + Stderr io.Writer + Stdin io.Reader + Stdout io.Writer + UID *int + type Machine struct + Handlers Handlers + func NewMachine(ctx context.Context, cfg Config, opts ...Opt) (*Machine, error) + func (m *Machine) LogFile() string + func (m *Machine) LogLevel() string + func (m *Machine) Logger() *log.Entry + func (m *Machine) PID() (int, error) + func (m *Machine) SetMetadata(ctx context.Context, metadata interface{}) error + func (m *Machine) Shutdown(ctx context.Context) error + func (m *Machine) Start(ctx context.Context) error + func (m *Machine) Stop(ctx context.Context) error + func (m *Machine) StopVMM() error + func (m *Machine) UpdateGuestDrive(ctx context.Context, driveID, pathOnHost string, ...) error + func (m *Machine) UpdateGuestNetworkInterfaceRateLimit(ctx context.Context, ifaceID string, rateLimiters RateLimiterSet, ...) error + func (m *Machine) Wait(ctx context.Context) error + type MachineIface interface + SetMetadata func(context.Context, interface{}) error + Shutdown func(context.Context) error + Start func(context.Context) error + StopVMM func() error + UpdateGuestDrive func(context.Context, string, string, ...PatchGuestDriveByIDOpt) error + UpdateGuestNetworkInterfaceRateLimit func(context.Context, string, RateLimiterSet, ...PatchGuestNetworkInterfaceByIDOpt) error + Wait func(context.Context) error + type NaiveChrootStrategy struct + KernelImagePath string + Rootfs string + func NewNaiveChrootStrategy(rootfs, kernelImagePath string) NaiveChrootStrategy + func (s NaiveChrootStrategy) AdaptHandlers(handlers *Handlers) error + type NetworkInterface struct + AllowMMDS bool + HostDevName string + InRateLimiter *models.RateLimiter + MacAddress string + OutRateLimiter *models.RateLimiter + type Opt func(*Machine) + func WithClient(client *Client) Opt + func WithLogger(logger *logrus.Entry) Opt + func WithProcessRunner(cmd *exec.Cmd) Opt + type PatchGuestDriveByIDOpt func(*ops.PatchGuestDriveByIDParams) + type PatchGuestNetworkInterfaceByIDOpt func(*ops.PatchGuestNetworkInterfaceByIDParams) + type PutGuestBootSourceOpt func(*ops.PutGuestBootSourceParams) + type PutGuestDriveByIDOpt func(*ops.PutGuestDriveByIDParams) + type PutGuestNetworkInterfaceByIDOpt func(*ops.PutGuestNetworkInterfaceByIDParams) + type PutGuestVsockByIDOpt func(*ops.PutGuestVsockByIDParams) + type PutLoggerOpt func(*ops.PutLoggerParams) + type PutMachineConfigurationOpt func(*ops.PutMachineConfigurationParams) + type PutMmdsOpt func(*ops.PutMmdsParams) + type RateLimiterOpt func(*models.RateLimiter) + type RateLimiterSet struct + InRateLimiter *models.RateLimiter + OutRateLimiter *models.RateLimiter + type SeccompLevelValue int + const SeccompLevelAdvanced + const SeccompLevelBasic + const SeccompLevelDisable + type TokenBucketBuilder struct + func (b TokenBucketBuilder) Build() models.TokenBucket + func (b TokenBucketBuilder) WithBucketSize(size int64) TokenBucketBuilder + func (b TokenBucketBuilder) WithInitialSize(size int64) TokenBucketBuilder + func (b TokenBucketBuilder) WithRefillDuration(dur time.Duration) TokenBucketBuilder + type VMCommandBuilder struct + func (b VMCommandBuilder) AddArgs(args ...string) VMCommandBuilder + func (b VMCommandBuilder) Args() []string + func (b VMCommandBuilder) Bin() string + func (b VMCommandBuilder) Build(ctx context.Context) *exec.Cmd + func (b VMCommandBuilder) SocketPath() []string + func (b VMCommandBuilder) Stderr() io.Writer + func (b VMCommandBuilder) Stdin() io.Reader + func (b VMCommandBuilder) Stdout() io.Writer + func (b VMCommandBuilder) WithArgs(args []string) VMCommandBuilder + func (b VMCommandBuilder) WithBin(bin string) VMCommandBuilder + func (b VMCommandBuilder) WithSocketPath(path string) VMCommandBuilder + func (b VMCommandBuilder) WithStderr(stderr io.Writer) VMCommandBuilder + func (b VMCommandBuilder) WithStdin(stdin io.Reader) VMCommandBuilder + func (b VMCommandBuilder) WithStdout(stdout io.Writer) VMCommandBuilder + type VsockDevice struct + CID uint32 + Path string