Documentation ¶
Index ¶
- Constants
- func GetOrAddNetworkNamespace(id string) *namespace
- func RemoveNetworkNamespace(ctx context.Context, id string) (err error)
- type Container
- func (c *Container) Delete(ctx context.Context) error
- func (c *Container) ExecProcess(ctx context.Context, process *oci.Process, ...) (int, error)
- func (c *Container) GetAllProcessPids(ctx context.Context) ([]int, error)
- func (c *Container) GetProcess(pid uint32) (Process, error)
- func (c *Container) GetStats(ctx context.Context) (*v1.Metrics, error)
- func (c *Container) ID() string
- func (c *Container) InitProcess() Process
- func (c *Container) Kill(ctx context.Context, signal syscall.Signal) error
- func (c *Container) Start(ctx context.Context, conSettings stdio.ConnectionSettings) (int, error)
- func (c *Container) Update(ctx context.Context, resources interface{}) error
- func (c *Container) Wait() prot.NotificationType
- type Host
- func (h *Host) AddContainer(id string, c *Container) error
- func (h *Host) CreateContainer(ctx context.Context, id string, settings *prot.VMHostedContainerSettingsV2) (_ *Container, err error)
- func (h *Host) GetCreatedContainer(id string) (*Container, error)
- func (h *Host) GetExternalProcess(pid int) (Process, error)
- func (h *Host) ModifySettings(ctx context.Context, containerID string, req *guestrequest.ModificationRequest) error
- func (h *Host) RemoveContainer(id string)
- func (h *Host) RunExternalProcess(ctx context.Context, params prot.ProcessParameters, ...) (_ int, err error)
- func (h *Host) SecurityPolicyEnforcer() securitypolicy.SecurityPolicyEnforcer
- func (h *Host) SetSecurityPolicy(base64Policy string) error
- func (h *Host) Shutdown()
- func (h *Host) Transport() transport.Transport
- type Process
Constants ¶
const UVMContainerID = "00000000-0000-0000-0000-000000000000"
UVMContainerID is the ContainerID that will be sent on any prot.MessageBase for V2 where the specific message is targeted at the UVM itself.
Variables ¶
This section is empty.
Functions ¶
func GetOrAddNetworkNamespace ¶ added in v0.10.0
func GetOrAddNetworkNamespace(id string) *namespace
GetOrAddNetworkNamespace returns the namespace found by `id` or creates a new one and assigns `id.
Types ¶
type Container ¶
type Container struct {
// contains filtered or unexported fields
}
func (*Container) ExecProcess ¶
func (*Container) GetAllProcessPids ¶
GetAllProcessPids returns all process pids in the container namespace.
func (*Container) GetProcess ¶
GetProcess returns the Process with the matching 'pid'. If the 'pid' does not exit returns error.
func (*Container) InitProcess ¶ added in v0.10.0
InitProcess returns the container's init process
func (*Container) Wait ¶
func (c *Container) Wait() prot.NotificationType
Wait waits for the container's init process to exit.
type Host ¶
type Host struct {
// contains filtered or unexported fields
}
Host is the structure tracking all UVM host state including all containers and processes.
func (*Host) AddContainer ¶ added in v0.10.0
func (*Host) CreateContainer ¶
func (*Host) GetCreatedContainer ¶ added in v0.10.0
func (*Host) ModifySettings ¶
func (h *Host) ModifySettings(ctx context.Context, containerID string, req *guestrequest.ModificationRequest) error
func (*Host) RemoveContainer ¶
func (*Host) RunExternalProcess ¶
func (h *Host) RunExternalProcess(ctx context.Context, params prot.ProcessParameters, conSettings stdio.ConnectionSettings) (_ int, err error)
RunExternalProcess runs a process in the utility VM.
func (*Host) SecurityPolicyEnforcer ¶ added in v0.10.0
func (h *Host) SecurityPolicyEnforcer() securitypolicy.SecurityPolicyEnforcer
func (*Host) SetSecurityPolicy ¶
SetSecurityPolicy takes a base64 encoded security policy and sets up our internal data structures we use to store said policy. The security policy is transmitted as json in an annotation, so we first have to remove the base64 encoding that allows the JSON based policy to be passed as a string. From there, we decode the JSON and setup our security policy state
type Process ¶
type Process interface { // Kill sends `signal` to the process. // // If the process has already exited returns `gcserr.HrErrNotFound` by contract. Kill(ctx context.Context, signal syscall.Signal) error // Pid returns the process id of the process. Pid() int // ResizeConsole resizes the tty to `height`x`width` for the process. ResizeConsole(ctx context.Context, height, width uint16) error // Wait returns a channel that can be used to wait for the process to exit // and gather the exit code. The second channel must be signaled from the // caller when the caller has completed its use of this call to Wait. Wait() (<-chan int, chan<- bool) }