Documentation
¶
Index ¶
- Constants
- Variables
- func RegisterAteomServer(s grpc.ServiceRegistrar, srv AteomServer)
- type ActorDirs
- func (*ActorDirs) Descriptor() ([]byte, []int)deprecated
- func (x *ActorDirs) GetCheckpointDir() string
- func (x *ActorDirs) GetDurableDirVolumeMountsDir() string
- func (x *ActorDirs) GetOciBundleDir() string
- func (x *ActorDirs) GetRestoreDir() string
- func (x *ActorDirs) GetRootDir() string
- func (x *ActorDirs) GetSystemInfoVolumeRootsDir() string
- func (x *ActorDirs) GetVolumesDir() string
- func (*ActorDirs) ProtoMessage()
- func (x *ActorDirs) ProtoReflect() protoreflect.Message
- func (x *ActorDirs) Reset()
- func (x *ActorDirs) String() string
- type AteomClient
- type AteomServer
- type CheckpointWorkloadRequest
- func (*CheckpointWorkloadRequest) Descriptor() ([]byte, []int)deprecated
- func (x *CheckpointWorkloadRequest) GetActorDirs() *ActorDirs
- func (x *CheckpointWorkloadRequest) GetActorName() string
- func (x *CheckpointWorkloadRequest) GetActorTemplateAtespace() string
- func (x *CheckpointWorkloadRequest) GetActorTemplateName() string
- func (x *CheckpointWorkloadRequest) GetActorUid() string
- func (x *CheckpointWorkloadRequest) GetAtespace() string
- func (x *CheckpointWorkloadRequest) GetFidelity() SnapshotFidelity
- func (x *CheckpointWorkloadRequest) GetRunscPath() string
- func (x *CheckpointWorkloadRequest) GetRuntimeAssetPaths() map[string]string
- func (x *CheckpointWorkloadRequest) GetSnapshotUri() string
- func (x *CheckpointWorkloadRequest) GetSpec() *WorkloadSpec
- func (*CheckpointWorkloadRequest) ProtoMessage()
- func (x *CheckpointWorkloadRequest) ProtoReflect() protoreflect.Message
- func (x *CheckpointWorkloadRequest) Reset()
- func (x *CheckpointWorkloadRequest) String() string
- type CheckpointWorkloadResponse
- func (*CheckpointWorkloadResponse) Descriptor() ([]byte, []int)deprecated
- func (x *CheckpointWorkloadResponse) GetDataSnapshotFiles() []string
- func (x *CheckpointWorkloadResponse) GetSnapshotFiles() []string
- func (*CheckpointWorkloadResponse) ProtoMessage()
- func (x *CheckpointWorkloadResponse) ProtoReflect() protoreflect.Message
- func (x *CheckpointWorkloadResponse) Reset()
- func (x *CheckpointWorkloadResponse) String() string
- type Container
- func (*Container) Descriptor() ([]byte, []int)deprecated
- func (x *Container) GetContainerSpec() *ContainerSpec
- func (x *Container) GetCsiVolumeMounts() []*VolumeMount
- func (x *Container) GetDurableDirVolumeMounts() []*DurableDirVolumeMount
- func (x *Container) GetImageVolumeMounts() []*ImageVolumeMount
- func (x *Container) GetName() string
- func (x *Container) GetSystemInfoVolumeMounts() []*SystemInfoVolumeMount
- func (x *Container) GetWakeupProbe() *WakeupProbe
- func (*Container) ProtoMessage()
- func (x *Container) ProtoReflect() protoreflect.Message
- func (x *Container) Reset()
- func (x *Container) String() string
- type ContainerSpec
- func (*ContainerSpec) Descriptor() ([]byte, []int)deprecated
- func (x *ContainerSpec) GetArgs() []string
- func (x *ContainerSpec) GetCapabilities() []string
- func (x *ContainerSpec) GetEnv() []string
- func (x *ContainerSpec) GetResources() *ResourceLimits
- func (*ContainerSpec) ProtoMessage()
- func (x *ContainerSpec) ProtoReflect() protoreflect.Message
- func (x *ContainerSpec) Reset()
- func (x *ContainerSpec) String() string
- type DurableDirVolumeMount
- func (*DurableDirVolumeMount) Descriptor() ([]byte, []int)deprecated
- func (x *DurableDirVolumeMount) GetMountPath() string
- func (x *DurableDirVolumeMount) GetVolumeName() string
- func (*DurableDirVolumeMount) ProtoMessage()
- func (x *DurableDirVolumeMount) ProtoReflect() protoreflect.Message
- func (x *DurableDirVolumeMount) Reset()
- func (x *DurableDirVolumeMount) String() string
- type EgressGateway
- type GetActiveWorkloadStatsRequest
- func (*GetActiveWorkloadStatsRequest) Descriptor() ([]byte, []int)deprecated
- func (*GetActiveWorkloadStatsRequest) ProtoMessage()
- func (x *GetActiveWorkloadStatsRequest) ProtoReflect() protoreflect.Message
- func (x *GetActiveWorkloadStatsRequest) Reset()
- func (x *GetActiveWorkloadStatsRequest) String() string
- type GetActiveWorkloadStatsResponse
- func (*GetActiveWorkloadStatsResponse) Descriptor() ([]byte, []int)deprecated
- func (x *GetActiveWorkloadStatsResponse) GetSamples() []*WorkloadStatsSample
- func (*GetActiveWorkloadStatsResponse) ProtoMessage()
- func (x *GetActiveWorkloadStatsResponse) ProtoReflect() protoreflect.Message
- func (x *GetActiveWorkloadStatsResponse) Reset()
- func (x *GetActiveWorkloadStatsResponse) String() string
- type GetWorkloadStatsRequest
- func (*GetWorkloadStatsRequest) Descriptor() ([]byte, []int)deprecated
- func (x *GetWorkloadStatsRequest) GetActorUid() string
- func (*GetWorkloadStatsRequest) ProtoMessage()
- func (x *GetWorkloadStatsRequest) ProtoReflect() protoreflect.Message
- func (x *GetWorkloadStatsRequest) Reset()
- func (x *GetWorkloadStatsRequest) String() string
- type GetWorkloadStatsResponse
- func (*GetWorkloadStatsResponse) Descriptor() ([]byte, []int)deprecated
- func (x *GetWorkloadStatsResponse) GetSample() *WorkloadStatsSample
- func (*GetWorkloadStatsResponse) ProtoMessage()
- func (x *GetWorkloadStatsResponse) ProtoReflect() protoreflect.Message
- func (x *GetWorkloadStatsResponse) Reset()
- func (x *GetWorkloadStatsResponse) String() string
- type HttpGetAction
- func (*HttpGetAction) Descriptor() ([]byte, []int)deprecated
- func (x *HttpGetAction) GetPath() string
- func (x *HttpGetAction) GetPort() int32
- func (*HttpGetAction) ProtoMessage()
- func (x *HttpGetAction) ProtoReflect() protoreflect.Message
- func (x *HttpGetAction) Reset()
- func (x *HttpGetAction) String() string
- type ImageVolumeMount
- func (*ImageVolumeMount) Descriptor() ([]byte, []int)deprecated
- func (x *ImageVolumeMount) GetMountPath() string
- func (x *ImageVolumeMount) GetVolumeName() string
- func (*ImageVolumeMount) ProtoMessage()
- func (x *ImageVolumeMount) ProtoReflect() protoreflect.Message
- func (x *ImageVolumeMount) Reset()
- func (x *ImageVolumeMount) String() string
- type ResourceLimits
- func (*ResourceLimits) Descriptor() ([]byte, []int)deprecated
- func (x *ResourceLimits) GetCpuMillis() int64
- func (x *ResourceLimits) GetMemoryBytes() int64
- func (*ResourceLimits) ProtoMessage()
- func (x *ResourceLimits) ProtoReflect() protoreflect.Message
- func (x *ResourceLimits) Reset()
- func (x *ResourceLimits) String() string
- type RestoreWorkloadRequest
- func (*RestoreWorkloadRequest) Descriptor() ([]byte, []int)deprecated
- func (x *RestoreWorkloadRequest) GetActorDirs() *ActorDirs
- func (x *RestoreWorkloadRequest) GetActorName() string
- func (x *RestoreWorkloadRequest) GetActorTemplateAtespace() string
- func (x *RestoreWorkloadRequest) GetActorTemplateName() string
- func (x *RestoreWorkloadRequest) GetActorUid() string
- func (x *RestoreWorkloadRequest) GetAtespace() string
- func (x *RestoreWorkloadRequest) GetCpuMilli() int64
- func (x *RestoreWorkloadRequest) GetEgressGateway() *EgressGateway
- func (x *RestoreWorkloadRequest) GetFidelity() SnapshotFidelity
- func (x *RestoreWorkloadRequest) GetMemoryBytes() int64
- func (x *RestoreWorkloadRequest) GetPreserveRestoreDir() bool
- func (x *RestoreWorkloadRequest) GetRunscPath() string
- func (x *RestoreWorkloadRequest) GetRuntimeAssetPaths() map[string]string
- func (x *RestoreWorkloadRequest) GetSnapshotUri() string
- func (x *RestoreWorkloadRequest) GetSpec() *WorkloadSpec
- func (*RestoreWorkloadRequest) ProtoMessage()
- func (x *RestoreWorkloadRequest) ProtoReflect() protoreflect.Message
- func (x *RestoreWorkloadRequest) Reset()
- func (x *RestoreWorkloadRequest) String() string
- type RestoreWorkloadResponse
- type RunWorkloadRequest
- func (*RunWorkloadRequest) Descriptor() ([]byte, []int)deprecated
- func (x *RunWorkloadRequest) GetActorDirs() *ActorDirs
- func (x *RunWorkloadRequest) GetActorName() string
- func (x *RunWorkloadRequest) GetActorTemplateAtespace() string
- func (x *RunWorkloadRequest) GetActorTemplateName() string
- func (x *RunWorkloadRequest) GetActorUid() string
- func (x *RunWorkloadRequest) GetAtespace() string
- func (x *RunWorkloadRequest) GetCpuMilli() int64
- func (x *RunWorkloadRequest) GetEgressGateway() *EgressGateway
- func (x *RunWorkloadRequest) GetMemoryBytes() int64
- func (x *RunWorkloadRequest) GetRunscPath() string
- func (x *RunWorkloadRequest) GetRuntimeAssetPaths() map[string]string
- func (x *RunWorkloadRequest) GetSpec() *WorkloadSpec
- func (*RunWorkloadRequest) ProtoMessage()
- func (x *RunWorkloadRequest) ProtoReflect() protoreflect.Message
- func (x *RunWorkloadRequest) Reset()
- func (x *RunWorkloadRequest) String() string
- type RunWorkloadResponse
- type SnapshotFidelity
- func (SnapshotFidelity) Descriptor() protoreflect.EnumDescriptor
- func (x SnapshotFidelity) Enum() *SnapshotFidelity
- func (SnapshotFidelity) EnumDescriptor() ([]byte, []int)deprecated
- func (x SnapshotFidelity) Number() protoreflect.EnumNumber
- func (x SnapshotFidelity) String() string
- func (SnapshotFidelity) Type() protoreflect.EnumType
- type StatsSource
- func (StatsSource) Descriptor() protoreflect.EnumDescriptor
- func (x StatsSource) Enum() *StatsSource
- func (StatsSource) EnumDescriptor() ([]byte, []int)deprecated
- func (x StatsSource) Number() protoreflect.EnumNumber
- func (x StatsSource) String() string
- func (StatsSource) Type() protoreflect.EnumType
- type SystemInfoVolumeMount
- func (*SystemInfoVolumeMount) Descriptor() ([]byte, []int)deprecated
- func (x *SystemInfoVolumeMount) GetMountPath() string
- func (x *SystemInfoVolumeMount) GetVolumeName() string
- func (*SystemInfoVolumeMount) ProtoMessage()
- func (x *SystemInfoVolumeMount) ProtoReflect() protoreflect.Message
- func (x *SystemInfoVolumeMount) Reset()
- func (x *SystemInfoVolumeMount) String() string
- type TerminateWorkloadRequest
- func (*TerminateWorkloadRequest) Descriptor() ([]byte, []int)deprecated
- func (x *TerminateWorkloadRequest) GetActorDirs() *ActorDirs
- func (x *TerminateWorkloadRequest) GetActorName() string
- func (x *TerminateWorkloadRequest) GetActorTemplateAtespace() string
- func (x *TerminateWorkloadRequest) GetActorTemplateName() string
- func (x *TerminateWorkloadRequest) GetActorUid() string
- func (x *TerminateWorkloadRequest) GetAtespace() string
- func (x *TerminateWorkloadRequest) GetRunscPath() string
- func (x *TerminateWorkloadRequest) GetSpec() *WorkloadSpec
- func (*TerminateWorkloadRequest) ProtoMessage()
- func (x *TerminateWorkloadRequest) ProtoReflect() protoreflect.Message
- func (x *TerminateWorkloadRequest) Reset()
- func (x *TerminateWorkloadRequest) String() string
- type TerminateWorkloadResponse
- type UnimplementedAteomServer
- func (UnimplementedAteomServer) CheckpointWorkload(context.Context, *CheckpointWorkloadRequest) (*CheckpointWorkloadResponse, error)
- func (UnimplementedAteomServer) GetActiveWorkloadStats(context.Context, *GetActiveWorkloadStatsRequest) (*GetActiveWorkloadStatsResponse, error)
- func (UnimplementedAteomServer) GetWorkloadStats(context.Context, *GetWorkloadStatsRequest) (*GetWorkloadStatsResponse, error)
- func (UnimplementedAteomServer) RestoreWorkload(context.Context, *RestoreWorkloadRequest) (*RestoreWorkloadResponse, error)
- func (UnimplementedAteomServer) RunWorkload(context.Context, *RunWorkloadRequest) (*RunWorkloadResponse, error)
- func (UnimplementedAteomServer) TerminateWorkload(context.Context, *TerminateWorkloadRequest) (*TerminateWorkloadResponse, error)
- type UnsafeAteomServer
- type VolumeMount
- func (*VolumeMount) Descriptor() ([]byte, []int)deprecated
- func (x *VolumeMount) GetMountPath() string
- func (x *VolumeMount) GetVolumeName() string
- func (*VolumeMount) ProtoMessage()
- func (x *VolumeMount) ProtoReflect() protoreflect.Message
- func (x *VolumeMount) Reset()
- func (x *VolumeMount) String() string
- type WakeupProbe
- func (*WakeupProbe) Descriptor() ([]byte, []int)deprecated
- func (x *WakeupProbe) GetHttpGet() *HttpGetAction
- func (x *WakeupProbe) GetTimeoutSeconds() int32
- func (*WakeupProbe) ProtoMessage()
- func (x *WakeupProbe) ProtoReflect() protoreflect.Message
- func (x *WakeupProbe) Reset()
- func (x *WakeupProbe) String() string
- type WorkloadSpec
- type WorkloadStatsSample
- func (*WorkloadStatsSample) Descriptor() ([]byte, []int)deprecated
- func (x *WorkloadStatsSample) GetActorName() string
- func (x *WorkloadStatsSample) GetActorTemplateAtespace() string
- func (x *WorkloadStatsSample) GetActorTemplateName() string
- func (x *WorkloadStatsSample) GetActorUid() string
- func (x *WorkloadStatsSample) GetAtespace() string
- func (x *WorkloadStatsSample) GetCpuUsageUsec() uint64
- func (x *WorkloadStatsSample) GetEpochUnixNano() int64
- func (x *WorkloadStatsSample) GetMemoryCurrentBytes() uint64
- func (x *WorkloadStatsSample) GetMemoryPeakBytes() uint64
- func (x *WorkloadStatsSample) GetMemoryWorkingSetBytes() uint64
- func (x *WorkloadStatsSample) GetObservedAtUnixNano() int64
- func (x *WorkloadStatsSample) GetSandboxClass() string
- func (x *WorkloadStatsSample) GetSource() StatsSource
- func (*WorkloadStatsSample) ProtoMessage()
- func (x *WorkloadStatsSample) ProtoReflect() protoreflect.Message
- func (x *WorkloadStatsSample) Reset()
- func (x *WorkloadStatsSample) String() string
Constants ¶
const ( Ateom_RunWorkload_FullMethodName = "/ateom.Ateom/RunWorkload" Ateom_CheckpointWorkload_FullMethodName = "/ateom.Ateom/CheckpointWorkload" Ateom_RestoreWorkload_FullMethodName = "/ateom.Ateom/RestoreWorkload" Ateom_GetWorkloadStats_FullMethodName = "/ateom.Ateom/GetWorkloadStats" Ateom_GetActiveWorkloadStats_FullMethodName = "/ateom.Ateom/GetActiveWorkloadStats" Ateom_TerminateWorkload_FullMethodName = "/ateom.Ateom/TerminateWorkload" )
Variables ¶
var ( SnapshotFidelity_name = map[int32]string{ 0: "SNAPSHOT_FIDELITY_UNSPECIFIED", 1: "SNAPSHOT_FIDELITY_VOLUMES", 2: "SNAPSHOT_FIDELITY_ROOTFS", 3: "SNAPSHOT_FIDELITY_MEMORY", } SnapshotFidelity_value = map[string]int32{ "SNAPSHOT_FIDELITY_UNSPECIFIED": 0, "SNAPSHOT_FIDELITY_VOLUMES": 1, "SNAPSHOT_FIDELITY_ROOTFS": 2, "SNAPSHOT_FIDELITY_MEMORY": 3, } )
Enum value maps for SnapshotFidelity.
var ( StatsSource_name = map[int32]string{ 0: "STATS_SOURCE_UNSPECIFIED", 1: "STATS_SOURCE_CGROUP", 2: "STATS_SOURCE_GUEST_AGENT", } StatsSource_value = map[string]int32{ "STATS_SOURCE_UNSPECIFIED": 0, "STATS_SOURCE_CGROUP": 1, "STATS_SOURCE_GUEST_AGENT": 2, } )
Enum value maps for StatsSource.
var Ateom_ServiceDesc = grpc.ServiceDesc{ ServiceName: "ateom.Ateom", HandlerType: (*AteomServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "RunWorkload", Handler: _Ateom_RunWorkload_Handler, }, { MethodName: "CheckpointWorkload", Handler: _Ateom_CheckpointWorkload_Handler, }, { MethodName: "RestoreWorkload", Handler: _Ateom_RestoreWorkload_Handler, }, { MethodName: "GetWorkloadStats", Handler: _Ateom_GetWorkloadStats_Handler, }, { MethodName: "GetActiveWorkloadStats", Handler: _Ateom_GetActiveWorkloadStats_Handler, }, { MethodName: "TerminateWorkload", Handler: _Ateom_TerminateWorkload_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "ateom.proto", }
Ateom_ServiceDesc is the grpc.ServiceDesc for Ateom service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
var File_ateom_proto protoreflect.FileDescriptor
Functions ¶
func RegisterAteomServer ¶
func RegisterAteomServer(s grpc.ServiceRegistrar, srv AteomServer)
Types ¶
type ActorDirs ¶ added in v0.3.0
type ActorDirs struct {
// The actor's own directory.
RootDir string `protobuf:"bytes,1,opt,name=root_dir,json=rootDir,proto3" json:"root_dir,omitempty"`
// Holds one OCI bundle per container, named after the container.
OciBundleDir string `protobuf:"bytes,2,opt,name=oci_bundle_dir,json=ociBundleDir,proto3" json:"oci_bundle_dir,omitempty"`
// Where CheckpointWorkload writes the snapshot files.
CheckpointDir string `protobuf:"bytes,3,opt,name=checkpoint_dir,json=checkpointDir,proto3" json:"checkpoint_dir,omitempty"`
// Where the snapshot files RestoreWorkload reads have been downloaded to.
RestoreDir string `protobuf:"bytes,4,opt,name=restore_dir,json=restoreDir,proto3" json:"restore_dir,omitempty"`
// Holds one subdirectory per durable-dir volume.
DurableDirVolumeMountsDir string `` /* 142-byte string literal not displayed */
// Holds one subdirectory per system-info volume.
SystemInfoVolumeRootsDir string `` /* 139-byte string literal not displayed */
// Holds one mount point per CSI volume.
VolumesDir string `protobuf:"bytes,7,opt,name=volumes_dir,json=volumesDir,proto3" json:"volumes_dir,omitempty"`
// contains filtered or unexported fields
}
ActorDirs is the set of per-actor directories atelet prepares on the volume it shares with ateom. ateom takes them from the RPC instead of deriving them from the actor UID. Every directory is under root_dir.
func (*ActorDirs) Descriptor
deprecated
added in
v0.3.0
func (*ActorDirs) GetCheckpointDir ¶ added in v0.3.0
func (*ActorDirs) GetDurableDirVolumeMountsDir ¶ added in v0.3.0
func (*ActorDirs) GetOciBundleDir ¶ added in v0.3.0
func (*ActorDirs) GetRestoreDir ¶ added in v0.3.0
func (*ActorDirs) GetRootDir ¶ added in v0.3.0
func (*ActorDirs) GetSystemInfoVolumeRootsDir ¶ added in v0.3.0
func (*ActorDirs) GetVolumesDir ¶ added in v0.3.0
func (*ActorDirs) ProtoMessage ¶ added in v0.3.0
func (*ActorDirs) ProtoMessage()
func (*ActorDirs) ProtoReflect ¶ added in v0.3.0
func (x *ActorDirs) ProtoReflect() protoreflect.Message
type AteomClient ¶
type AteomClient interface {
// RunWorkload tells ateom to begin running a new workload (one or more
// containers, potentially with shared filesystems).
RunWorkload(ctx context.Context, in *RunWorkloadRequest, opts ...grpc.CallOption) (*RunWorkloadResponse, error)
// CheckpointWorkload tells ateom to save the current state of the running
// workload to object storage, and then completely reset itself to a blank
// state (back to "available" state.)
CheckpointWorkload(ctx context.Context, in *CheckpointWorkloadRequest, opts ...grpc.CallOption) (*CheckpointWorkloadResponse, error)
// RestoreWorkload restores a workload from checkpoint that was previously
// written by CheckpointWorkload. Ateom will handle downloading the correct
// gVisor / runsc version to match the checkpoint.
RestoreWorkload(ctx context.Context, in *RestoreWorkloadRequest, opts ...grpc.CallOption) (*RestoreWorkloadResponse, error)
// GetWorkloadStats returns a point-in-time resource-usage sample for the
// workload this ateom is currently executing.
//
// It is a pure read: unlike the three calls above it does not move the ateom
// between "available" and "executing", so it is safe to call on a timer for
// the whole lifetime of a workload. It also does not wait on them. Those
// three serialize on a mutex an ateom holds for a whole boot, restore, or
// checkpoint; this call reads its state from outside that mutex, so a poll
// landing in the middle of one answers immediately instead of going quiet for
// the duration -- which would silence the poller during exactly the phases
// whose usage is most interesting.
//
// Two ways it declines to give a sample, and they ask different things of the
// caller:
//
// * NOT_FOUND -- this ateom is not executing the actor in the request. It
// may be "available", or a recycled worker may have moved on to a
// different actor. Retrying on the same timer will not change the answer:
// the caller's worker-to-actor mapping is stale and wants re-resolving.
//
// * FAILED_PRECONDITION -- this ateom is executing the requested actor but
// has no sample to give yet. It accepts an actor before the sandbox it
// will measure exists, so a poll landing in the boot lands here. Read it
// as "no numbers right now", not as "the actor is gone": it is transient,
// and the caller should skip this sample and take the next one.
//
// The split is worth the two codes because the identity is retained from the
// moment the ateom accepts the actor, on both runtimes. That is what makes
// "booting" distinguishable from "not here" at all, and it means a workload
// that dies during boot is attributable rather than anonymous.
GetWorkloadStats(ctx context.Context, in *GetWorkloadStatsRequest, opts ...grpc.CallOption) (*GetWorkloadStatsResponse, error)
// GetActiveWorkloadStats reports every actor this ateom hosts, without
// asserting an identity. It is the discovery read for a
// scraper that enumerates ateoms and holds no worker-to-actor mapping;
// GetWorkloadStats above is the verified read for a caller that must be
// answered about a specific actor.
//
// It serves each actor's latest sample from the ateom's own sampling timer,
// so a poll reads no sandbox and has no error path: an "available" ateom
// answers an empty samples list, and a workload with nothing measured yet
// (a boot, a restore, or a guest the last sweep did not reach) appears as a
// sample carrying its attribution with source = STATS_SOURCE_UNSPECIFIED --
// "not measured", per the sample's own contract -- so even a workload that
// dies during boot is attributable, not anonymous. A sample is up to one
// sampling interval old. This is deliberately unlike GetWorkloadStats, whose
// caller asserts knowledge the codes then answer.
//
// Consumers MUST attribute each sample solely from the identity echoed
// inside it, never from a mapping they hold: without an asserted uid, the
// response is the only statement of who was measured. Like GetWorkloadStats
// it is safe on a timer and does not touch the lifecycle mutex.
GetActiveWorkloadStats(ctx context.Context, in *GetActiveWorkloadStatsRequest, opts ...grpc.CallOption) (*GetActiveWorkloadStatsResponse, error)
// TerminateWorkload stops and deletes container workloads and cleans up
// network and bundle overlays on ateom.
TerminateWorkload(ctx context.Context, in *TerminateWorkloadRequest, opts ...grpc.CallOption) (*TerminateWorkloadResponse, error)
}
AteomClient is the client API for Ateom service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
Ateom is the interface to control a single gVisor (or, in the future microVM) guest inside a worker pod.
Each ateom server has two main states, "available" and "executing".
When the ateom is "available", the substrate control plane is free to either boot a new workload (using RunWorkload), or restore an existing workload from a checkpoint (using RestoreWorkload). These calls move the ateom into "executing" state.
When the ateom is "executing", the substrate control plane can checkpoint the running workload (with CheckpointWorkload). This moves the ateom back to "free" state.
func NewAteomClient ¶
func NewAteomClient(cc grpc.ClientConnInterface) AteomClient
type AteomServer ¶
type AteomServer interface {
// RunWorkload tells ateom to begin running a new workload (one or more
// containers, potentially with shared filesystems).
RunWorkload(context.Context, *RunWorkloadRequest) (*RunWorkloadResponse, error)
// CheckpointWorkload tells ateom to save the current state of the running
// workload to object storage, and then completely reset itself to a blank
// state (back to "available" state.)
CheckpointWorkload(context.Context, *CheckpointWorkloadRequest) (*CheckpointWorkloadResponse, error)
// RestoreWorkload restores a workload from checkpoint that was previously
// written by CheckpointWorkload. Ateom will handle downloading the correct
// gVisor / runsc version to match the checkpoint.
RestoreWorkload(context.Context, *RestoreWorkloadRequest) (*RestoreWorkloadResponse, error)
// GetWorkloadStats returns a point-in-time resource-usage sample for the
// workload this ateom is currently executing.
//
// It is a pure read: unlike the three calls above it does not move the ateom
// between "available" and "executing", so it is safe to call on a timer for
// the whole lifetime of a workload. It also does not wait on them. Those
// three serialize on a mutex an ateom holds for a whole boot, restore, or
// checkpoint; this call reads its state from outside that mutex, so a poll
// landing in the middle of one answers immediately instead of going quiet for
// the duration -- which would silence the poller during exactly the phases
// whose usage is most interesting.
//
// Two ways it declines to give a sample, and they ask different things of the
// caller:
//
// * NOT_FOUND -- this ateom is not executing the actor in the request. It
// may be "available", or a recycled worker may have moved on to a
// different actor. Retrying on the same timer will not change the answer:
// the caller's worker-to-actor mapping is stale and wants re-resolving.
//
// * FAILED_PRECONDITION -- this ateom is executing the requested actor but
// has no sample to give yet. It accepts an actor before the sandbox it
// will measure exists, so a poll landing in the boot lands here. Read it
// as "no numbers right now", not as "the actor is gone": it is transient,
// and the caller should skip this sample and take the next one.
//
// The split is worth the two codes because the identity is retained from the
// moment the ateom accepts the actor, on both runtimes. That is what makes
// "booting" distinguishable from "not here" at all, and it means a workload
// that dies during boot is attributable rather than anonymous.
GetWorkloadStats(context.Context, *GetWorkloadStatsRequest) (*GetWorkloadStatsResponse, error)
// GetActiveWorkloadStats reports every actor this ateom hosts, without
// asserting an identity. It is the discovery read for a
// scraper that enumerates ateoms and holds no worker-to-actor mapping;
// GetWorkloadStats above is the verified read for a caller that must be
// answered about a specific actor.
//
// It serves each actor's latest sample from the ateom's own sampling timer,
// so a poll reads no sandbox and has no error path: an "available" ateom
// answers an empty samples list, and a workload with nothing measured yet
// (a boot, a restore, or a guest the last sweep did not reach) appears as a
// sample carrying its attribution with source = STATS_SOURCE_UNSPECIFIED --
// "not measured", per the sample's own contract -- so even a workload that
// dies during boot is attributable, not anonymous. A sample is up to one
// sampling interval old. This is deliberately unlike GetWorkloadStats, whose
// caller asserts knowledge the codes then answer.
//
// Consumers MUST attribute each sample solely from the identity echoed
// inside it, never from a mapping they hold: without an asserted uid, the
// response is the only statement of who was measured. Like GetWorkloadStats
// it is safe on a timer and does not touch the lifecycle mutex.
GetActiveWorkloadStats(context.Context, *GetActiveWorkloadStatsRequest) (*GetActiveWorkloadStatsResponse, error)
// TerminateWorkload stops and deletes container workloads and cleans up
// network and bundle overlays on ateom.
TerminateWorkload(context.Context, *TerminateWorkloadRequest) (*TerminateWorkloadResponse, error)
// contains filtered or unexported methods
}
AteomServer is the server API for Ateom service. All implementations must embed UnimplementedAteomServer for forward compatibility.
Ateom is the interface to control a single gVisor (or, in the future microVM) guest inside a worker pod.
Each ateom server has two main states, "available" and "executing".
When the ateom is "available", the substrate control plane is free to either boot a new workload (using RunWorkload), or restore an existing workload from a checkpoint (using RestoreWorkload). These calls move the ateom into "executing" state.
When the ateom is "executing", the substrate control plane can checkpoint the running workload (with CheckpointWorkload). This moves the ateom back to "free" state.
type CheckpointWorkloadRequest ¶
type CheckpointWorkloadRequest struct {
Atespace string `protobuf:"bytes,1,opt,name=atespace,proto3" json:"atespace,omitempty"`
ActorName string `protobuf:"bytes,2,opt,name=actor_name,json=actorName,proto3" json:"actor_name,omitempty"`
ActorUid string `protobuf:"bytes,3,opt,name=actor_uid,json=actorUid,proto3" json:"actor_uid,omitempty"`
ActorTemplateAtespace string `` /* 126-byte string literal not displayed */
ActorTemplateName string `protobuf:"bytes,5,opt,name=actor_template_name,json=actorTemplateName,proto3" json:"actor_template_name,omitempty"`
RunscPath string `protobuf:"bytes,6,opt,name=runsc_path,json=runscPath,proto3" json:"runsc_path,omitempty"`
Spec *WorkloadSpec `protobuf:"bytes,7,opt,name=spec,proto3" json:"spec,omitempty"`
// The object storage URI of the snapshot to write. Object names are appended
// to it, so it addresses the snapshot as a whole rather than any one object.
//
// The structure of the checkpoint should generally be treated as opaque. For
// gVisor, the checkpoint consists of a checkpoint.img file that contains the
// memory, sentry state, and filesystem deltas.
//
// The control plane sends an ActorSnapshot's snapshot_uri, which sits under
// the prefix of the resource that owns the snapshot. For example:
// "gs://bucket/root/atespaces/team-a/actors/<actor uid>/snapshots/5678".
SnapshotUri string `protobuf:"bytes,8,opt,name=snapshot_uri,json=snapshotUri,proto3" json:"snapshot_uri,omitempty"`
// runtime_asset_paths maps a runtime asset name to the local on-disk path
// atelet fetched it to (see RunWorkloadRequest). Empty for gVisor.
RuntimeAssetPaths map[string]string `` /* 188-byte string literal not displayed */
// Fidelity the checkpoint captures.
Fidelity SnapshotFidelity `protobuf:"varint,10,opt,name=fidelity,proto3,enum=ateom.SnapshotFidelity" json:"fidelity,omitempty"`
ActorDirs *ActorDirs `protobuf:"bytes,11,opt,name=actor_dirs,json=actorDirs,proto3" json:"actor_dirs,omitempty"`
// contains filtered or unexported fields
}
func (*CheckpointWorkloadRequest) Descriptor
deprecated
func (*CheckpointWorkloadRequest) Descriptor() ([]byte, []int)
Deprecated: Use CheckpointWorkloadRequest.ProtoReflect.Descriptor instead.
func (*CheckpointWorkloadRequest) GetActorDirs ¶ added in v0.3.0
func (x *CheckpointWorkloadRequest) GetActorDirs() *ActorDirs
func (*CheckpointWorkloadRequest) GetActorName ¶
func (x *CheckpointWorkloadRequest) GetActorName() string
func (*CheckpointWorkloadRequest) GetActorTemplateAtespace ¶
func (x *CheckpointWorkloadRequest) GetActorTemplateAtespace() string
func (*CheckpointWorkloadRequest) GetActorTemplateName ¶
func (x *CheckpointWorkloadRequest) GetActorTemplateName() string
func (*CheckpointWorkloadRequest) GetActorUid ¶
func (x *CheckpointWorkloadRequest) GetActorUid() string
func (*CheckpointWorkloadRequest) GetAtespace ¶
func (x *CheckpointWorkloadRequest) GetAtespace() string
func (*CheckpointWorkloadRequest) GetFidelity ¶ added in v0.5.0
func (x *CheckpointWorkloadRequest) GetFidelity() SnapshotFidelity
func (*CheckpointWorkloadRequest) GetRunscPath ¶
func (x *CheckpointWorkloadRequest) GetRunscPath() string
func (*CheckpointWorkloadRequest) GetRuntimeAssetPaths ¶
func (x *CheckpointWorkloadRequest) GetRuntimeAssetPaths() map[string]string
func (*CheckpointWorkloadRequest) GetSnapshotUri ¶
func (x *CheckpointWorkloadRequest) GetSnapshotUri() string
func (*CheckpointWorkloadRequest) GetSpec ¶
func (x *CheckpointWorkloadRequest) GetSpec() *WorkloadSpec
func (*CheckpointWorkloadRequest) ProtoMessage ¶
func (*CheckpointWorkloadRequest) ProtoMessage()
func (*CheckpointWorkloadRequest) ProtoReflect ¶
func (x *CheckpointWorkloadRequest) ProtoReflect() protoreflect.Message
func (*CheckpointWorkloadRequest) Reset ¶
func (x *CheckpointWorkloadRequest) Reset()
func (*CheckpointWorkloadRequest) String ¶
func (x *CheckpointWorkloadRequest) String() string
type CheckpointWorkloadResponse ¶
type CheckpointWorkloadResponse struct {
// snapshot_files lists the files ateom wrote into the checkpoint directory
// (relative names) for atelet to ship to object storage. Each runtime reports
// its own set (gVisor's image files, cloud-hypervisor's snapshot set, ...).
SnapshotFiles []string `protobuf:"bytes,1,rep,name=snapshot_files,json=snapshotFiles,proto3" json:"snapshot_files,omitempty"`
// data_snapshot_files is the subset of snapshot_files that restores the
// actor at VOLUMES fidelity on its own. Empty when the capture holds no durable data.
DataSnapshotFiles []string `protobuf:"bytes,2,rep,name=data_snapshot_files,json=dataSnapshotFiles,proto3" json:"data_snapshot_files,omitempty"`
// contains filtered or unexported fields
}
func (*CheckpointWorkloadResponse) Descriptor
deprecated
func (*CheckpointWorkloadResponse) Descriptor() ([]byte, []int)
Deprecated: Use CheckpointWorkloadResponse.ProtoReflect.Descriptor instead.
func (*CheckpointWorkloadResponse) GetDataSnapshotFiles ¶ added in v0.4.0
func (x *CheckpointWorkloadResponse) GetDataSnapshotFiles() []string
func (*CheckpointWorkloadResponse) GetSnapshotFiles ¶
func (x *CheckpointWorkloadResponse) GetSnapshotFiles() []string
func (*CheckpointWorkloadResponse) ProtoMessage ¶
func (*CheckpointWorkloadResponse) ProtoMessage()
func (*CheckpointWorkloadResponse) ProtoReflect ¶
func (x *CheckpointWorkloadResponse) ProtoReflect() protoreflect.Message
func (*CheckpointWorkloadResponse) Reset ¶
func (x *CheckpointWorkloadResponse) Reset()
func (*CheckpointWorkloadResponse) String ¶
func (x *CheckpointWorkloadResponse) String() string
type Container ¶
type Container struct {
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
WakeupProbe *WakeupProbe `protobuf:"bytes,2,opt,name=wakeup_probe,json=wakeupProbe,proto3" json:"wakeup_probe,omitempty"`
// durable_dir_volume_mounts are the durable-dir volumes this container
// mounts, if any.
DurableDirVolumeMounts []*DurableDirVolumeMount `` /* 131-byte string literal not displayed */
// csi_volume_mounts are the CSI volumes this container mounts, if any.
CsiVolumeMounts []*VolumeMount `protobuf:"bytes,4,rep,name=csi_volume_mounts,json=csiVolumeMounts,proto3" json:"csi_volume_mounts,omitempty"`
// system_info_volume_mounts are the system-info volumes this container
// mounts, if any. Contents are generated by atelet on the host; the
// container sees them read-only.
SystemInfoVolumeMounts []*SystemInfoVolumeMount `` /* 131-byte string literal not displayed */
// image_volume_mounts are the image volumes this container mounts, if any.
ImageVolumeMounts []*ImageVolumeMount `protobuf:"bytes,6,rep,name=image_volume_mounts,json=imageVolumeMounts,proto3" json:"image_volume_mounts,omitempty"`
// container_spec is what ateom builds the container's OCI spec from,
// besides its volume mounts. Unset on RPCs that start no process.
ContainerSpec *ContainerSpec `protobuf:"bytes,7,opt,name=container_spec,json=containerSpec,proto3" json:"container_spec,omitempty"`
// contains filtered or unexported fields
}
func (*Container) Descriptor
deprecated
func (*Container) GetContainerSpec ¶ added in v0.5.0
func (x *Container) GetContainerSpec() *ContainerSpec
func (*Container) GetCsiVolumeMounts ¶
func (x *Container) GetCsiVolumeMounts() []*VolumeMount
func (*Container) GetDurableDirVolumeMounts ¶
func (x *Container) GetDurableDirVolumeMounts() []*DurableDirVolumeMount
func (*Container) GetImageVolumeMounts ¶
func (x *Container) GetImageVolumeMounts() []*ImageVolumeMount
func (*Container) GetSystemInfoVolumeMounts ¶
func (x *Container) GetSystemInfoVolumeMounts() []*SystemInfoVolumeMount
func (*Container) GetWakeupProbe ¶ added in v0.2.0
func (x *Container) GetWakeupProbe() *WakeupProbe
func (*Container) ProtoMessage ¶
func (*Container) ProtoMessage()
func (*Container) ProtoReflect ¶
func (x *Container) ProtoReflect() protoreflect.Message
type ContainerSpec ¶ added in v0.5.0
type ContainerSpec struct {
// args is the process argv, already resolved against the image's
// ENTRYPOINT and CMD.
Args []string `protobuf:"bytes,1,rep,name=args,proto3" json:"args,omitempty"`
// env is the process environment as KEY=VALUE, already merged with the
// image's ENV.
Env []string `protobuf:"bytes,2,rep,name=env,proto3" json:"env,omitempty"`
// capabilities is the container's capability set, CAP_-prefixed.
Capabilities []string `protobuf:"bytes,3,rep,name=capabilities,proto3" json:"capabilities,omitempty"`
// resources are the container's own declared limits, if any.
Resources *ResourceLimits `protobuf:"bytes,4,opt,name=resources,proto3" json:"resources,omitempty"`
// contains filtered or unexported fields
}
ContainerSpec is a container's process and limits, resolved by atelet.
func (*ContainerSpec) Descriptor
deprecated
added in
v0.5.0
func (*ContainerSpec) Descriptor() ([]byte, []int)
Deprecated: Use ContainerSpec.ProtoReflect.Descriptor instead.
func (*ContainerSpec) GetArgs ¶ added in v0.5.0
func (x *ContainerSpec) GetArgs() []string
func (*ContainerSpec) GetCapabilities ¶ added in v0.5.0
func (x *ContainerSpec) GetCapabilities() []string
func (*ContainerSpec) GetEnv ¶ added in v0.5.0
func (x *ContainerSpec) GetEnv() []string
func (*ContainerSpec) GetResources ¶ added in v0.5.0
func (x *ContainerSpec) GetResources() *ResourceLimits
func (*ContainerSpec) ProtoMessage ¶ added in v0.5.0
func (*ContainerSpec) ProtoMessage()
func (*ContainerSpec) ProtoReflect ¶ added in v0.5.0
func (x *ContainerSpec) ProtoReflect() protoreflect.Message
func (*ContainerSpec) Reset ¶ added in v0.5.0
func (x *ContainerSpec) Reset()
func (*ContainerSpec) String ¶ added in v0.5.0
func (x *ContainerSpec) String() string
type DurableDirVolumeMount ¶
type DurableDirVolumeMount struct {
// volume_name is the name the ActorTemplate gave the volume. It selects the
// per-volume directory atelet prepared for the actor on the host.
VolumeName string `protobuf:"bytes,1,opt,name=volume_name,json=volumeName,proto3" json:"volume_name,omitempty"`
// mount_path is where the container sees the volume.
MountPath string `protobuf:"bytes,2,opt,name=mount_path,json=mountPath,proto3" json:"mount_path,omitempty"`
// contains filtered or unexported fields
}
DurableDirVolumeMount is one durable-dir volume mounted into a container.
func (*DurableDirVolumeMount) Descriptor
deprecated
func (*DurableDirVolumeMount) Descriptor() ([]byte, []int)
Deprecated: Use DurableDirVolumeMount.ProtoReflect.Descriptor instead.
func (*DurableDirVolumeMount) GetMountPath ¶
func (x *DurableDirVolumeMount) GetMountPath() string
func (*DurableDirVolumeMount) GetVolumeName ¶
func (x *DurableDirVolumeMount) GetVolumeName() string
func (*DurableDirVolumeMount) ProtoMessage ¶
func (*DurableDirVolumeMount) ProtoMessage()
func (*DurableDirVolumeMount) ProtoReflect ¶
func (x *DurableDirVolumeMount) ProtoReflect() protoreflect.Message
func (*DurableDirVolumeMount) Reset ¶
func (x *DurableDirVolumeMount) Reset()
func (*DurableDirVolumeMount) String ¶
func (x *DurableDirVolumeMount) String() string
type EgressGateway ¶
type EgressGateway struct {
// address is required and identifies the remote gateway as an IP address or
// DNS name followed by its port.
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
// contains filtered or unexported fields
}
EgressGateway configures tunneled egress for one actor activation.
func (*EgressGateway) Descriptor
deprecated
func (*EgressGateway) Descriptor() ([]byte, []int)
Deprecated: Use EgressGateway.ProtoReflect.Descriptor instead.
func (*EgressGateway) GetAddress ¶
func (x *EgressGateway) GetAddress() string
func (*EgressGateway) ProtoMessage ¶
func (*EgressGateway) ProtoMessage()
func (*EgressGateway) ProtoReflect ¶
func (x *EgressGateway) ProtoReflect() protoreflect.Message
func (*EgressGateway) Reset ¶
func (x *EgressGateway) Reset()
func (*EgressGateway) String ¶
func (x *EgressGateway) String() string
type GetActiveWorkloadStatsRequest ¶
type GetActiveWorkloadStatsRequest struct {
// contains filtered or unexported fields
}
func (*GetActiveWorkloadStatsRequest) Descriptor
deprecated
func (*GetActiveWorkloadStatsRequest) Descriptor() ([]byte, []int)
Deprecated: Use GetActiveWorkloadStatsRequest.ProtoReflect.Descriptor instead.
func (*GetActiveWorkloadStatsRequest) ProtoMessage ¶
func (*GetActiveWorkloadStatsRequest) ProtoMessage()
func (*GetActiveWorkloadStatsRequest) ProtoReflect ¶
func (x *GetActiveWorkloadStatsRequest) ProtoReflect() protoreflect.Message
func (*GetActiveWorkloadStatsRequest) Reset ¶
func (x *GetActiveWorkloadStatsRequest) Reset()
func (*GetActiveWorkloadStatsRequest) String ¶
func (x *GetActiveWorkloadStatsRequest) String() string
type GetActiveWorkloadStatsResponse ¶
type GetActiveWorkloadStatsResponse struct {
// One entry per workload this ateom is executing; empty when it is
// "available". Each sample is self-describing (see the attribution rule on
// the rpc); an entry with source = STATS_SOURCE_UNSPECIFIED is a workload
// with no numbers to give yet (boot, restore, teardown, or a lifecycle
// transition underneath the read) -- skip its measurements and take the
// next sample. An ateom serves one actor at a time today, so the list holds
// at most one entry until multi-actor workers land; consumers must not
// assume that.
Samples []*WorkloadStatsSample `protobuf:"bytes,1,rep,name=samples,proto3" json:"samples,omitempty"`
// contains filtered or unexported fields
}
func (*GetActiveWorkloadStatsResponse) Descriptor
deprecated
func (*GetActiveWorkloadStatsResponse) Descriptor() ([]byte, []int)
Deprecated: Use GetActiveWorkloadStatsResponse.ProtoReflect.Descriptor instead.
func (*GetActiveWorkloadStatsResponse) GetSamples ¶ added in v0.2.0
func (x *GetActiveWorkloadStatsResponse) GetSamples() []*WorkloadStatsSample
func (*GetActiveWorkloadStatsResponse) ProtoMessage ¶
func (*GetActiveWorkloadStatsResponse) ProtoMessage()
func (*GetActiveWorkloadStatsResponse) ProtoReflect ¶
func (x *GetActiveWorkloadStatsResponse) ProtoReflect() protoreflect.Message
func (*GetActiveWorkloadStatsResponse) Reset ¶
func (x *GetActiveWorkloadStatsResponse) Reset()
func (*GetActiveWorkloadStatsResponse) String ¶
func (x *GetActiveWorkloadStatsResponse) String() string
type GetWorkloadStatsRequest ¶
type GetWorkloadStatsRequest struct {
// The actor the caller believes is executing here. A worker can be recycled
// between the caller's view of the world and this call, so ateom answers
// NOT_FOUND on a mismatch rather than reporting a different actor's numbers
// under the requested actor's identity.
ActorUid string `protobuf:"bytes,1,opt,name=actor_uid,json=actorUid,proto3" json:"actor_uid,omitempty"`
// contains filtered or unexported fields
}
func (*GetWorkloadStatsRequest) Descriptor
deprecated
func (*GetWorkloadStatsRequest) Descriptor() ([]byte, []int)
Deprecated: Use GetWorkloadStatsRequest.ProtoReflect.Descriptor instead.
func (*GetWorkloadStatsRequest) GetActorUid ¶
func (x *GetWorkloadStatsRequest) GetActorUid() string
func (*GetWorkloadStatsRequest) ProtoMessage ¶
func (*GetWorkloadStatsRequest) ProtoMessage()
func (*GetWorkloadStatsRequest) ProtoReflect ¶
func (x *GetWorkloadStatsRequest) ProtoReflect() protoreflect.Message
func (*GetWorkloadStatsRequest) Reset ¶
func (x *GetWorkloadStatsRequest) Reset()
func (*GetWorkloadStatsRequest) String ¶
func (x *GetWorkloadStatsRequest) String() string
type GetWorkloadStatsResponse ¶
type GetWorkloadStatsResponse struct {
Sample *WorkloadStatsSample `protobuf:"bytes,1,opt,name=sample,proto3" json:"sample,omitempty"`
// contains filtered or unexported fields
}
func (*GetWorkloadStatsResponse) Descriptor
deprecated
func (*GetWorkloadStatsResponse) Descriptor() ([]byte, []int)
Deprecated: Use GetWorkloadStatsResponse.ProtoReflect.Descriptor instead.
func (*GetWorkloadStatsResponse) GetSample ¶
func (x *GetWorkloadStatsResponse) GetSample() *WorkloadStatsSample
func (*GetWorkloadStatsResponse) ProtoMessage ¶
func (*GetWorkloadStatsResponse) ProtoMessage()
func (*GetWorkloadStatsResponse) ProtoReflect ¶
func (x *GetWorkloadStatsResponse) ProtoReflect() protoreflect.Message
func (*GetWorkloadStatsResponse) Reset ¶
func (x *GetWorkloadStatsResponse) Reset()
func (*GetWorkloadStatsResponse) String ¶
func (x *GetWorkloadStatsResponse) String() string
type HttpGetAction ¶ added in v0.5.0
type HttpGetAction struct {
// Path to access on the HTTP server.
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
// TCP port to connect to (1..65535).
Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
// contains filtered or unexported fields
}
HttpGetAction performs an HTTP GET against the container.
func (*HttpGetAction) Descriptor
deprecated
added in
v0.5.0
func (*HttpGetAction) Descriptor() ([]byte, []int)
Deprecated: Use HttpGetAction.ProtoReflect.Descriptor instead.
func (*HttpGetAction) GetPath ¶ added in v0.5.0
func (x *HttpGetAction) GetPath() string
func (*HttpGetAction) GetPort ¶ added in v0.5.0
func (x *HttpGetAction) GetPort() int32
func (*HttpGetAction) ProtoMessage ¶ added in v0.5.0
func (*HttpGetAction) ProtoMessage()
func (*HttpGetAction) ProtoReflect ¶ added in v0.5.0
func (x *HttpGetAction) ProtoReflect() protoreflect.Message
func (*HttpGetAction) Reset ¶ added in v0.5.0
func (x *HttpGetAction) Reset()
func (*HttpGetAction) String ¶ added in v0.5.0
func (x *HttpGetAction) String() string
type ImageVolumeMount ¶
type ImageVolumeMount struct {
// volume_name is the name the ActorTemplate gave the volume.
VolumeName string `protobuf:"bytes,1,opt,name=volume_name,json=volumeName,proto3" json:"volume_name,omitempty"`
// mount_path is where the container sees the volume.
MountPath string `protobuf:"bytes,2,opt,name=mount_path,json=mountPath,proto3" json:"mount_path,omitempty"`
// contains filtered or unexported fields
}
ImageVolumeMount is one image volume mounted into a container. ateom uses these to construct the container's volume mounts — each names the volume and its destination path.
func (*ImageVolumeMount) Descriptor
deprecated
func (*ImageVolumeMount) Descriptor() ([]byte, []int)
Deprecated: Use ImageVolumeMount.ProtoReflect.Descriptor instead.
func (*ImageVolumeMount) GetMountPath ¶
func (x *ImageVolumeMount) GetMountPath() string
func (*ImageVolumeMount) GetVolumeName ¶
func (x *ImageVolumeMount) GetVolumeName() string
func (*ImageVolumeMount) ProtoMessage ¶
func (*ImageVolumeMount) ProtoMessage()
func (*ImageVolumeMount) ProtoReflect ¶
func (x *ImageVolumeMount) ProtoReflect() protoreflect.Message
func (*ImageVolumeMount) Reset ¶
func (x *ImageVolumeMount) Reset()
func (*ImageVolumeMount) String ¶
func (x *ImageVolumeMount) String() string
type ResourceLimits ¶ added in v0.5.0
type ResourceLimits struct {
// memory_bytes is the memory limit in bytes. 0 means unset.
MemoryBytes int64 `protobuf:"varint,1,opt,name=memory_bytes,json=memoryBytes,proto3" json:"memory_bytes,omitempty"`
// cpu_millis is the CPU limit in milli-cores (1000 = one core). 0 means unset.
CpuMillis int64 `protobuf:"varint,2,opt,name=cpu_millis,json=cpuMillis,proto3" json:"cpu_millis,omitempty"`
// contains filtered or unexported fields
}
ResourceLimits are a container's declared limits.
func (*ResourceLimits) Descriptor
deprecated
added in
v0.5.0
func (*ResourceLimits) Descriptor() ([]byte, []int)
Deprecated: Use ResourceLimits.ProtoReflect.Descriptor instead.
func (*ResourceLimits) GetCpuMillis ¶ added in v0.5.0
func (x *ResourceLimits) GetCpuMillis() int64
func (*ResourceLimits) GetMemoryBytes ¶ added in v0.5.0
func (x *ResourceLimits) GetMemoryBytes() int64
func (*ResourceLimits) ProtoMessage ¶ added in v0.5.0
func (*ResourceLimits) ProtoMessage()
func (*ResourceLimits) ProtoReflect ¶ added in v0.5.0
func (x *ResourceLimits) ProtoReflect() protoreflect.Message
func (*ResourceLimits) Reset ¶ added in v0.5.0
func (x *ResourceLimits) Reset()
func (*ResourceLimits) String ¶ added in v0.5.0
func (x *ResourceLimits) String() string
type RestoreWorkloadRequest ¶
type RestoreWorkloadRequest struct {
Atespace string `protobuf:"bytes,1,opt,name=atespace,proto3" json:"atespace,omitempty"`
ActorName string `protobuf:"bytes,2,opt,name=actor_name,json=actorName,proto3" json:"actor_name,omitempty"`
ActorUid string `protobuf:"bytes,3,opt,name=actor_uid,json=actorUid,proto3" json:"actor_uid,omitempty"`
ActorTemplateAtespace string `` /* 126-byte string literal not displayed */
ActorTemplateName string `protobuf:"bytes,5,opt,name=actor_template_name,json=actorTemplateName,proto3" json:"actor_template_name,omitempty"`
RunscPath string `protobuf:"bytes,6,opt,name=runsc_path,json=runscPath,proto3" json:"runsc_path,omitempty"`
Spec *WorkloadSpec `protobuf:"bytes,7,opt,name=spec,proto3" json:"spec,omitempty"`
// The object storage URI of the snapshot to restore. Object names are
// appended to it; it addresses the snapshot, not any one object.
SnapshotUri string `protobuf:"bytes,8,opt,name=snapshot_uri,json=snapshotUri,proto3" json:"snapshot_uri,omitempty"`
// runtime_asset_paths maps a runtime asset name to the local on-disk path
// atelet fetched it to (see RunWorkloadRequest). Empty for gVisor.
RuntimeAssetPaths map[string]string `` /* 188-byte string literal not displayed */
// Fidelity to restore from the snapshot.
Fidelity SnapshotFidelity `protobuf:"varint,10,opt,name=fidelity,proto3,enum=ateom.SnapshotFidelity" json:"fidelity,omitempty"`
// When absent the actor has no egress: its TCP is captured and refused.
EgressGateway *EgressGateway `protobuf:"bytes,12,opt,name=egress_gateway,json=egressGateway,proto3,oneof" json:"egress_gateway,omitempty"`
// The actor's declared size, from the ActorTemplate's resource limits. Used to
// (re)size the sandbox on a VOLUMES restore (fresh guest container). On a
// MEMORY micro-VM restore the size baked into the snapshot is authoritative and
// these are ignored. Zero means "unset": keep the runtime default.
CpuMilli int64 `protobuf:"varint,14,opt,name=cpu_milli,json=cpuMilli,proto3" json:"cpu_milli,omitempty"` // CPU limit in millicores (1000 = one core).
MemoryBytes int64 `protobuf:"varint,15,opt,name=memory_bytes,json=memoryBytes,proto3" json:"memory_bytes,omitempty"` // Memory limit in bytes.
ActorDirs *ActorDirs `protobuf:"bytes,16,opt,name=actor_dirs,json=actorDirs,proto3" json:"actor_dirs,omitempty"`
// actor_dirs.restore_dir is a preserved local snapshot, not a scratch copy:
// ateom must not delete or modify files in it.
PreserveRestoreDir bool `protobuf:"varint,17,opt,name=preserve_restore_dir,json=preserveRestoreDir,proto3" json:"preserve_restore_dir,omitempty"`
// contains filtered or unexported fields
}
func (*RestoreWorkloadRequest) Descriptor
deprecated
func (*RestoreWorkloadRequest) Descriptor() ([]byte, []int)
Deprecated: Use RestoreWorkloadRequest.ProtoReflect.Descriptor instead.
func (*RestoreWorkloadRequest) GetActorDirs ¶ added in v0.3.0
func (x *RestoreWorkloadRequest) GetActorDirs() *ActorDirs
func (*RestoreWorkloadRequest) GetActorName ¶
func (x *RestoreWorkloadRequest) GetActorName() string
func (*RestoreWorkloadRequest) GetActorTemplateAtespace ¶
func (x *RestoreWorkloadRequest) GetActorTemplateAtespace() string
func (*RestoreWorkloadRequest) GetActorTemplateName ¶
func (x *RestoreWorkloadRequest) GetActorTemplateName() string
func (*RestoreWorkloadRequest) GetActorUid ¶
func (x *RestoreWorkloadRequest) GetActorUid() string
func (*RestoreWorkloadRequest) GetAtespace ¶
func (x *RestoreWorkloadRequest) GetAtespace() string
func (*RestoreWorkloadRequest) GetCpuMilli ¶
func (x *RestoreWorkloadRequest) GetCpuMilli() int64
func (*RestoreWorkloadRequest) GetEgressGateway ¶
func (x *RestoreWorkloadRequest) GetEgressGateway() *EgressGateway
func (*RestoreWorkloadRequest) GetFidelity ¶ added in v0.5.0
func (x *RestoreWorkloadRequest) GetFidelity() SnapshotFidelity
func (*RestoreWorkloadRequest) GetMemoryBytes ¶
func (x *RestoreWorkloadRequest) GetMemoryBytes() int64
func (*RestoreWorkloadRequest) GetPreserveRestoreDir ¶ added in v0.4.0
func (x *RestoreWorkloadRequest) GetPreserveRestoreDir() bool
func (*RestoreWorkloadRequest) GetRunscPath ¶
func (x *RestoreWorkloadRequest) GetRunscPath() string
func (*RestoreWorkloadRequest) GetRuntimeAssetPaths ¶
func (x *RestoreWorkloadRequest) GetRuntimeAssetPaths() map[string]string
func (*RestoreWorkloadRequest) GetSnapshotUri ¶
func (x *RestoreWorkloadRequest) GetSnapshotUri() string
func (*RestoreWorkloadRequest) GetSpec ¶
func (x *RestoreWorkloadRequest) GetSpec() *WorkloadSpec
func (*RestoreWorkloadRequest) ProtoMessage ¶
func (*RestoreWorkloadRequest) ProtoMessage()
func (*RestoreWorkloadRequest) ProtoReflect ¶
func (x *RestoreWorkloadRequest) ProtoReflect() protoreflect.Message
func (*RestoreWorkloadRequest) Reset ¶
func (x *RestoreWorkloadRequest) Reset()
func (*RestoreWorkloadRequest) String ¶
func (x *RestoreWorkloadRequest) String() string
type RestoreWorkloadResponse ¶
type RestoreWorkloadResponse struct {
// contains filtered or unexported fields
}
func (*RestoreWorkloadResponse) Descriptor
deprecated
func (*RestoreWorkloadResponse) Descriptor() ([]byte, []int)
Deprecated: Use RestoreWorkloadResponse.ProtoReflect.Descriptor instead.
func (*RestoreWorkloadResponse) ProtoMessage ¶
func (*RestoreWorkloadResponse) ProtoMessage()
func (*RestoreWorkloadResponse) ProtoReflect ¶
func (x *RestoreWorkloadResponse) ProtoReflect() protoreflect.Message
func (*RestoreWorkloadResponse) Reset ¶
func (x *RestoreWorkloadResponse) Reset()
func (*RestoreWorkloadResponse) String ¶
func (x *RestoreWorkloadResponse) String() string
type RunWorkloadRequest ¶
type RunWorkloadRequest struct {
Atespace string `protobuf:"bytes,1,opt,name=atespace,proto3" json:"atespace,omitempty"`
ActorName string `protobuf:"bytes,2,opt,name=actor_name,json=actorName,proto3" json:"actor_name,omitempty"`
ActorUid string `protobuf:"bytes,3,opt,name=actor_uid,json=actorUid,proto3" json:"actor_uid,omitempty"`
ActorTemplateAtespace string `` /* 126-byte string literal not displayed */
ActorTemplateName string `protobuf:"bytes,5,opt,name=actor_template_name,json=actorTemplateName,proto3" json:"actor_template_name,omitempty"`
RunscPath string `protobuf:"bytes,6,opt,name=runsc_path,json=runscPath,proto3" json:"runsc_path,omitempty"`
Spec *WorkloadSpec `protobuf:"bytes,7,opt,name=spec,proto3" json:"spec,omitempty"`
// runtime_asset_paths maps a runtime asset name (e.g. "cloud-hypervisor",
// "virtiofsd", "kata-kernel", "kata-image")
// to the local on-disk path atelet fetched it to (content-addressed, like
// runsc_path). Empty for the gVisor runtime, which uses runsc_path.
RuntimeAssetPaths map[string]string `` /* 188-byte string literal not displayed */
// When absent the actor has no egress: its TCP is captured and refused.
EgressGateway *EgressGateway `protobuf:"bytes,10,opt,name=egress_gateway,json=egressGateway,proto3,oneof" json:"egress_gateway,omitempty"`
// The actor's declared size, from the ActorTemplate's resource limits. ateom
// sizes the sandbox to these (cgroup caps via the OCI spec, and for the
// micro-VM the VM's vCPU count and memory). Zero means "unset": keep the
// runtime default (unlimited for gVisor, ateom's own default for the micro-VM).
CpuMilli int64 `protobuf:"varint,11,opt,name=cpu_milli,json=cpuMilli,proto3" json:"cpu_milli,omitempty"` // CPU limit in millicores (1000 = one core).
MemoryBytes int64 `protobuf:"varint,12,opt,name=memory_bytes,json=memoryBytes,proto3" json:"memory_bytes,omitempty"` // Memory limit in bytes.
ActorDirs *ActorDirs `protobuf:"bytes,13,opt,name=actor_dirs,json=actorDirs,proto3" json:"actor_dirs,omitempty"`
// contains filtered or unexported fields
}
func (*RunWorkloadRequest) Descriptor
deprecated
func (*RunWorkloadRequest) Descriptor() ([]byte, []int)
Deprecated: Use RunWorkloadRequest.ProtoReflect.Descriptor instead.
func (*RunWorkloadRequest) GetActorDirs ¶ added in v0.3.0
func (x *RunWorkloadRequest) GetActorDirs() *ActorDirs
func (*RunWorkloadRequest) GetActorName ¶
func (x *RunWorkloadRequest) GetActorName() string
func (*RunWorkloadRequest) GetActorTemplateAtespace ¶
func (x *RunWorkloadRequest) GetActorTemplateAtespace() string
func (*RunWorkloadRequest) GetActorTemplateName ¶
func (x *RunWorkloadRequest) GetActorTemplateName() string
func (*RunWorkloadRequest) GetActorUid ¶
func (x *RunWorkloadRequest) GetActorUid() string
func (*RunWorkloadRequest) GetAtespace ¶
func (x *RunWorkloadRequest) GetAtespace() string
func (*RunWorkloadRequest) GetCpuMilli ¶
func (x *RunWorkloadRequest) GetCpuMilli() int64
func (*RunWorkloadRequest) GetEgressGateway ¶
func (x *RunWorkloadRequest) GetEgressGateway() *EgressGateway
func (*RunWorkloadRequest) GetMemoryBytes ¶
func (x *RunWorkloadRequest) GetMemoryBytes() int64
func (*RunWorkloadRequest) GetRunscPath ¶
func (x *RunWorkloadRequest) GetRunscPath() string
func (*RunWorkloadRequest) GetRuntimeAssetPaths ¶
func (x *RunWorkloadRequest) GetRuntimeAssetPaths() map[string]string
func (*RunWorkloadRequest) GetSpec ¶
func (x *RunWorkloadRequest) GetSpec() *WorkloadSpec
func (*RunWorkloadRequest) ProtoMessage ¶
func (*RunWorkloadRequest) ProtoMessage()
func (*RunWorkloadRequest) ProtoReflect ¶
func (x *RunWorkloadRequest) ProtoReflect() protoreflect.Message
func (*RunWorkloadRequest) Reset ¶
func (x *RunWorkloadRequest) Reset()
func (*RunWorkloadRequest) String ¶
func (x *RunWorkloadRequest) String() string
type RunWorkloadResponse ¶
type RunWorkloadResponse struct {
// contains filtered or unexported fields
}
func (*RunWorkloadResponse) Descriptor
deprecated
func (*RunWorkloadResponse) Descriptor() ([]byte, []int)
Deprecated: Use RunWorkloadResponse.ProtoReflect.Descriptor instead.
func (*RunWorkloadResponse) ProtoMessage ¶
func (*RunWorkloadResponse) ProtoMessage()
func (*RunWorkloadResponse) ProtoReflect ¶
func (x *RunWorkloadResponse) ProtoReflect() protoreflect.Message
func (*RunWorkloadResponse) Reset ¶
func (x *RunWorkloadResponse) Reset()
func (*RunWorkloadResponse) String ¶
func (x *RunWorkloadResponse) String() string
type SnapshotFidelity ¶ added in v0.5.0
type SnapshotFidelity int32
SnapshotFidelity mirrors the public ateapi enum: the state layers a snapshot holds, lowest to highest, each including the ones below it.
const ( // Not valid option; should never happen. SnapshotFidelity_SNAPSHOT_FIDELITY_UNSPECIFIED SnapshotFidelity = 0 // Capture only the contents of attached volumes that support snapshots // (currently DurableDir-typed volumes). Memory and the rest of rootfs are // excluded. SnapshotFidelity_SNAPSHOT_FIDELITY_VOLUMES SnapshotFidelity = 1 // Volumes plus the root filesystem changes made since boot. Served by the // micro-VM runtime only; other runtimes reject requests carrying it. SnapshotFidelity_SNAPSHOT_FIDELITY_ROOTFS SnapshotFidelity = 2 // Capture process memory plus the full filesystem delta on top of the OCI // image (including any attached DurableDir volumes). SnapshotFidelity_SNAPSHOT_FIDELITY_MEMORY SnapshotFidelity = 3 )
func (SnapshotFidelity) Descriptor ¶ added in v0.5.0
func (SnapshotFidelity) Descriptor() protoreflect.EnumDescriptor
func (SnapshotFidelity) Enum ¶ added in v0.5.0
func (x SnapshotFidelity) Enum() *SnapshotFidelity
func (SnapshotFidelity) EnumDescriptor
deprecated
added in
v0.5.0
func (SnapshotFidelity) EnumDescriptor() ([]byte, []int)
Deprecated: Use SnapshotFidelity.Descriptor instead.
func (SnapshotFidelity) Number ¶ added in v0.5.0
func (x SnapshotFidelity) Number() protoreflect.EnumNumber
func (SnapshotFidelity) String ¶ added in v0.5.0
func (x SnapshotFidelity) String() string
func (SnapshotFidelity) Type ¶ added in v0.5.0
func (SnapshotFidelity) Type() protoreflect.EnumType
type StatsSource ¶
type StatsSource int32
StatsSource is how a sample's measurements were obtained. The two are not measured the same way and should not be compared against each other as though they were.
const ( // No measurement was taken. StatsSource_STATS_SOURCE_UNSPECIFIED StatsSource = 0 // Read from the sandbox's cgroup on the host. StatsSource_STATS_SOURCE_CGROUP StatsSource = 1 // Read from inside the guest, over the guest agent's vsock connection. What // it counts is the workload's own containers, as the guest kernel accounts // for them: the guest kernel itself, the agent, and the VMM process on the // host are overhead this source cannot see. The cgroup source above is the // other way round -- the sandbox's host process is one process, so its // runtime's overhead is charged along with the workload's. StatsSource_STATS_SOURCE_GUEST_AGENT StatsSource = 2 )
func (StatsSource) Descriptor ¶
func (StatsSource) Descriptor() protoreflect.EnumDescriptor
func (StatsSource) Enum ¶
func (x StatsSource) Enum() *StatsSource
func (StatsSource) EnumDescriptor
deprecated
func (StatsSource) EnumDescriptor() ([]byte, []int)
Deprecated: Use StatsSource.Descriptor instead.
func (StatsSource) Number ¶
func (x StatsSource) Number() protoreflect.EnumNumber
func (StatsSource) String ¶
func (x StatsSource) String() string
func (StatsSource) Type ¶
func (StatsSource) Type() protoreflect.EnumType
type SystemInfoVolumeMount ¶
type SystemInfoVolumeMount struct {
// volume_name is the name the ActorTemplate gave the volume. It selects the
// per-volume directory atelet prepared for the actor on the host.
VolumeName string `protobuf:"bytes,1,opt,name=volume_name,json=volumeName,proto3" json:"volume_name,omitempty"`
// mount_path is where the container sees the volume.
MountPath string `protobuf:"bytes,2,opt,name=mount_path,json=mountPath,proto3" json:"mount_path,omitempty"`
// contains filtered or unexported fields
}
SystemInfoVolumeMount is one system-info volume mounted (read-only) into a container. Unlike durable-dir volumes, system-info contents are generated by atelet on every Run/Restore and are never captured into snapshots.
func (*SystemInfoVolumeMount) Descriptor
deprecated
func (*SystemInfoVolumeMount) Descriptor() ([]byte, []int)
Deprecated: Use SystemInfoVolumeMount.ProtoReflect.Descriptor instead.
func (*SystemInfoVolumeMount) GetMountPath ¶
func (x *SystemInfoVolumeMount) GetMountPath() string
func (*SystemInfoVolumeMount) GetVolumeName ¶
func (x *SystemInfoVolumeMount) GetVolumeName() string
func (*SystemInfoVolumeMount) ProtoMessage ¶
func (*SystemInfoVolumeMount) ProtoMessage()
func (*SystemInfoVolumeMount) ProtoReflect ¶
func (x *SystemInfoVolumeMount) ProtoReflect() protoreflect.Message
func (*SystemInfoVolumeMount) Reset ¶
func (x *SystemInfoVolumeMount) Reset()
func (*SystemInfoVolumeMount) String ¶
func (x *SystemInfoVolumeMount) String() string
type TerminateWorkloadRequest ¶
type TerminateWorkloadRequest struct {
Atespace string `protobuf:"bytes,1,opt,name=atespace,proto3" json:"atespace,omitempty"`
ActorName string `protobuf:"bytes,2,opt,name=actor_name,json=actorName,proto3" json:"actor_name,omitempty"`
ActorUid string `protobuf:"bytes,3,opt,name=actor_uid,json=actorUid,proto3" json:"actor_uid,omitempty"`
ActorTemplateAtespace string `` /* 126-byte string literal not displayed */
ActorTemplateName string `protobuf:"bytes,5,opt,name=actor_template_name,json=actorTemplateName,proto3" json:"actor_template_name,omitempty"`
RunscPath string `protobuf:"bytes,6,opt,name=runsc_path,json=runscPath,proto3" json:"runsc_path,omitempty"`
Spec *WorkloadSpec `protobuf:"bytes,7,opt,name=spec,proto3" json:"spec,omitempty"`
ActorDirs *ActorDirs `protobuf:"bytes,8,opt,name=actor_dirs,json=actorDirs,proto3" json:"actor_dirs,omitempty"`
// contains filtered or unexported fields
}
func (*TerminateWorkloadRequest) Descriptor
deprecated
func (*TerminateWorkloadRequest) Descriptor() ([]byte, []int)
Deprecated: Use TerminateWorkloadRequest.ProtoReflect.Descriptor instead.
func (*TerminateWorkloadRequest) GetActorDirs ¶ added in v0.3.0
func (x *TerminateWorkloadRequest) GetActorDirs() *ActorDirs
func (*TerminateWorkloadRequest) GetActorName ¶
func (x *TerminateWorkloadRequest) GetActorName() string
func (*TerminateWorkloadRequest) GetActorTemplateAtespace ¶
func (x *TerminateWorkloadRequest) GetActorTemplateAtespace() string
func (*TerminateWorkloadRequest) GetActorTemplateName ¶
func (x *TerminateWorkloadRequest) GetActorTemplateName() string
func (*TerminateWorkloadRequest) GetActorUid ¶
func (x *TerminateWorkloadRequest) GetActorUid() string
func (*TerminateWorkloadRequest) GetAtespace ¶
func (x *TerminateWorkloadRequest) GetAtespace() string
func (*TerminateWorkloadRequest) GetRunscPath ¶
func (x *TerminateWorkloadRequest) GetRunscPath() string
func (*TerminateWorkloadRequest) GetSpec ¶
func (x *TerminateWorkloadRequest) GetSpec() *WorkloadSpec
func (*TerminateWorkloadRequest) ProtoMessage ¶
func (*TerminateWorkloadRequest) ProtoMessage()
func (*TerminateWorkloadRequest) ProtoReflect ¶
func (x *TerminateWorkloadRequest) ProtoReflect() protoreflect.Message
func (*TerminateWorkloadRequest) Reset ¶
func (x *TerminateWorkloadRequest) Reset()
func (*TerminateWorkloadRequest) String ¶
func (x *TerminateWorkloadRequest) String() string
type TerminateWorkloadResponse ¶
type TerminateWorkloadResponse struct {
// contains filtered or unexported fields
}
func (*TerminateWorkloadResponse) Descriptor
deprecated
func (*TerminateWorkloadResponse) Descriptor() ([]byte, []int)
Deprecated: Use TerminateWorkloadResponse.ProtoReflect.Descriptor instead.
func (*TerminateWorkloadResponse) ProtoMessage ¶
func (*TerminateWorkloadResponse) ProtoMessage()
func (*TerminateWorkloadResponse) ProtoReflect ¶
func (x *TerminateWorkloadResponse) ProtoReflect() protoreflect.Message
func (*TerminateWorkloadResponse) Reset ¶
func (x *TerminateWorkloadResponse) Reset()
func (*TerminateWorkloadResponse) String ¶
func (x *TerminateWorkloadResponse) String() string
type UnimplementedAteomServer ¶
type UnimplementedAteomServer struct{}
UnimplementedAteomServer must be embedded to have forward compatible implementations.
NOTE: this should be embedded by value instead of pointer to avoid a nil pointer dereference when methods are called.
func (UnimplementedAteomServer) CheckpointWorkload ¶
func (UnimplementedAteomServer) CheckpointWorkload(context.Context, *CheckpointWorkloadRequest) (*CheckpointWorkloadResponse, error)
func (UnimplementedAteomServer) GetActiveWorkloadStats ¶
func (UnimplementedAteomServer) GetActiveWorkloadStats(context.Context, *GetActiveWorkloadStatsRequest) (*GetActiveWorkloadStatsResponse, error)
func (UnimplementedAteomServer) GetWorkloadStats ¶
func (UnimplementedAteomServer) GetWorkloadStats(context.Context, *GetWorkloadStatsRequest) (*GetWorkloadStatsResponse, error)
func (UnimplementedAteomServer) RestoreWorkload ¶
func (UnimplementedAteomServer) RestoreWorkload(context.Context, *RestoreWorkloadRequest) (*RestoreWorkloadResponse, error)
func (UnimplementedAteomServer) RunWorkload ¶
func (UnimplementedAteomServer) RunWorkload(context.Context, *RunWorkloadRequest) (*RunWorkloadResponse, error)
func (UnimplementedAteomServer) TerminateWorkload ¶
func (UnimplementedAteomServer) TerminateWorkload(context.Context, *TerminateWorkloadRequest) (*TerminateWorkloadResponse, error)
type UnsafeAteomServer ¶
type UnsafeAteomServer interface {
// contains filtered or unexported methods
}
UnsafeAteomServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to AteomServer will result in compilation errors.
type VolumeMount ¶
type VolumeMount struct {
VolumeName string `protobuf:"bytes,1,opt,name=volume_name,json=volumeName,proto3" json:"volume_name,omitempty"`
MountPath string `protobuf:"bytes,2,opt,name=mount_path,json=mountPath,proto3" json:"mount_path,omitempty"`
// contains filtered or unexported fields
}
VolumeMount is one volume mounted into a container.
func (*VolumeMount) Descriptor
deprecated
func (*VolumeMount) Descriptor() ([]byte, []int)
Deprecated: Use VolumeMount.ProtoReflect.Descriptor instead.
func (*VolumeMount) GetMountPath ¶
func (x *VolumeMount) GetMountPath() string
func (*VolumeMount) GetVolumeName ¶
func (x *VolumeMount) GetVolumeName() string
func (*VolumeMount) ProtoMessage ¶
func (*VolumeMount) ProtoMessage()
func (*VolumeMount) ProtoReflect ¶
func (x *VolumeMount) ProtoReflect() protoreflect.Message
func (*VolumeMount) Reset ¶
func (x *VolumeMount) Reset()
func (*VolumeMount) String ¶
func (x *VolumeMount) String() string
type WakeupProbe ¶ added in v0.2.0
type WakeupProbe struct {
HttpGet *HttpGetAction `protobuf:"bytes,1,opt,name=http_get,json=httpGet,proto3" json:"http_get,omitempty"`
// How long to keep polling before giving up and failing the actor start.
TimeoutSeconds int32 `protobuf:"varint,2,opt,name=timeout_seconds,json=timeoutSeconds,proto3" json:"timeout_seconds,omitempty"`
// contains filtered or unexported fields
}
WakeupProbe describes how to check that a container is ready to serve. Only HTTP is supported today.
func (*WakeupProbe) Descriptor
deprecated
added in
v0.2.0
func (*WakeupProbe) Descriptor() ([]byte, []int)
Deprecated: Use WakeupProbe.ProtoReflect.Descriptor instead.
func (*WakeupProbe) GetHttpGet ¶ added in v0.2.0
func (x *WakeupProbe) GetHttpGet() *HttpGetAction
func (*WakeupProbe) GetTimeoutSeconds ¶ added in v0.2.0
func (x *WakeupProbe) GetTimeoutSeconds() int32
func (*WakeupProbe) ProtoMessage ¶ added in v0.2.0
func (*WakeupProbe) ProtoMessage()
func (*WakeupProbe) ProtoReflect ¶ added in v0.2.0
func (x *WakeupProbe) ProtoReflect() protoreflect.Message
func (*WakeupProbe) Reset ¶ added in v0.2.0
func (x *WakeupProbe) Reset()
func (*WakeupProbe) String ¶ added in v0.2.0
func (x *WakeupProbe) String() string
type WorkloadSpec ¶
type WorkloadSpec struct {
Containers []*Container `protobuf:"bytes,1,rep,name=containers,proto3" json:"containers,omitempty"`
// contains filtered or unexported fields
}
WorkloadSpec parallels Pod, but with far fewer configurable fields.
func (*WorkloadSpec) Descriptor
deprecated
func (*WorkloadSpec) Descriptor() ([]byte, []int)
Deprecated: Use WorkloadSpec.ProtoReflect.Descriptor instead.
func (*WorkloadSpec) GetContainers ¶
func (x *WorkloadSpec) GetContainers() []*Container
func (*WorkloadSpec) ProtoMessage ¶
func (*WorkloadSpec) ProtoMessage()
func (*WorkloadSpec) ProtoReflect ¶
func (x *WorkloadSpec) ProtoReflect() protoreflect.Message
func (*WorkloadSpec) Reset ¶
func (x *WorkloadSpec) Reset()
func (*WorkloadSpec) String ¶
func (x *WorkloadSpec) String() string
type WorkloadStatsSample ¶
type WorkloadStatsSample struct {
// Identity of the measured actor, retained by ateom from the
// RunWorkloadRequest / RestoreWorkloadRequest that started it. Echoed back so
// the caller can attribute the sample without holding its own mapping from
// worker to actor.
Atespace string `protobuf:"bytes,1,opt,name=atespace,proto3" json:"atespace,omitempty"`
ActorName string `protobuf:"bytes,2,opt,name=actor_name,json=actorName,proto3" json:"actor_name,omitempty"`
ActorUid string `protobuf:"bytes,3,opt,name=actor_uid,json=actorUid,proto3" json:"actor_uid,omitempty"`
ActorTemplateAtespace string `` /* 126-byte string literal not displayed */
ActorTemplateName string `protobuf:"bytes,5,opt,name=actor_template_name,json=actorTemplateName,proto3" json:"actor_template_name,omitempty"`
// The sandbox runtime family that produced this sample, in the
// ate.dev/v1alpha1 SandboxClass form: "gvisor" (cmd/ateom-gvisor) or
// "microvm" (cmd/ateom-microvm). An ateom binary only ever reports its own.
SandboxClass string `protobuf:"bytes,6,opt,name=sandbox_class,json=sandboxClass,proto3" json:"sandbox_class,omitempty"`
// How the measurements below were obtained.
Source StatsSource `protobuf:"varint,7,opt,name=source,proto3,enum=ateom.StatsSource" json:"source,omitempty"`
// Measurements. All four are zero when source is STATS_SOURCE_UNSPECIFIED,
// which means "not measured" rather than "measured as zero".
//
// memory_current_bytes and memory_working_set_bytes are absolute.
MemoryCurrentBytes uint64 `protobuf:"varint,8,opt,name=memory_current_bytes,json=memoryCurrentBytes,proto3" json:"memory_current_bytes,omitempty"`
// High-water mark of memory_current_bytes, as the source reports it: the
// cgroup source restarts it on a restore, the guest-agent source brings the
// guest's own back with it. Also zero when the runtime cannot report a peak:
// the cgroup source reads memory.peak, which only exists on Linux 5.19 and
// later.
MemoryPeakBytes uint64 `protobuf:"varint,9,opt,name=memory_peak_bytes,json=memoryPeakBytes,proto3" json:"memory_peak_bytes,omitempty"`
// memory_current_bytes less the reclaimable page cache, floored at zero. This
// is the figure to compare against a memory limit; memory_current_bytes
// drifts upward with cache the kernel would drop for free under pressure.
MemoryWorkingSetBytes uint64 `` /* 130-byte string literal not displayed */
// Cumulative CPU time since the activation began (epoch_unix_nano), for
// every source, and never decreasing within it. The cgroup source restarts on
// its own; the guest-agent source counts from its first read after a restore
// that resumes the guest, since the guest's counters survive in guest RAM. A
// lifetime figure is the sum over epochs of each epoch's highest value.
CpuUsageUsec uint64 `protobuf:"varint,11,opt,name=cpu_usage_usec,json=cpuUsageUsec,proto3" json:"cpu_usage_usec,omitempty"`
ObservedAtUnixNano int64 `protobuf:"varint,12,opt,name=observed_at_unix_nano,json=observedAtUnixNano,proto3" json:"observed_at_unix_nano,omitempty"`
// The activation this sample belongs to, as the unix-nano time it began. A
// Run or Restore starts one.
EpochUnixNano int64 `protobuf:"varint,13,opt,name=epoch_unix_nano,json=epochUnixNano,proto3" json:"epoch_unix_nano,omitempty"`
// contains filtered or unexported fields
}
WorkloadStatsSample is one resource-usage sample for an executing workload, shared by both stats reads. The unit of measurement is the SANDBOX, which today equals the actor. Per-container attribution is not reported: the micro-VM source could give it, since the guest keeps a cgroup per container and ateom sums them, but the gVisor source cannot split one at all without the sentry's own accounting, and a field only one runtime could ever fill would be worse than none.
func (*WorkloadStatsSample) Descriptor
deprecated
func (*WorkloadStatsSample) Descriptor() ([]byte, []int)
Deprecated: Use WorkloadStatsSample.ProtoReflect.Descriptor instead.
func (*WorkloadStatsSample) GetActorName ¶
func (x *WorkloadStatsSample) GetActorName() string
func (*WorkloadStatsSample) GetActorTemplateAtespace ¶
func (x *WorkloadStatsSample) GetActorTemplateAtespace() string
func (*WorkloadStatsSample) GetActorTemplateName ¶
func (x *WorkloadStatsSample) GetActorTemplateName() string
func (*WorkloadStatsSample) GetActorUid ¶
func (x *WorkloadStatsSample) GetActorUid() string
func (*WorkloadStatsSample) GetAtespace ¶
func (x *WorkloadStatsSample) GetAtespace() string
func (*WorkloadStatsSample) GetCpuUsageUsec ¶
func (x *WorkloadStatsSample) GetCpuUsageUsec() uint64
func (*WorkloadStatsSample) GetEpochUnixNano ¶ added in v0.3.0
func (x *WorkloadStatsSample) GetEpochUnixNano() int64
func (*WorkloadStatsSample) GetMemoryCurrentBytes ¶
func (x *WorkloadStatsSample) GetMemoryCurrentBytes() uint64
func (*WorkloadStatsSample) GetMemoryPeakBytes ¶
func (x *WorkloadStatsSample) GetMemoryPeakBytes() uint64
func (*WorkloadStatsSample) GetMemoryWorkingSetBytes ¶
func (x *WorkloadStatsSample) GetMemoryWorkingSetBytes() uint64
func (*WorkloadStatsSample) GetObservedAtUnixNano ¶
func (x *WorkloadStatsSample) GetObservedAtUnixNano() int64
func (*WorkloadStatsSample) GetSandboxClass ¶
func (x *WorkloadStatsSample) GetSandboxClass() string
func (*WorkloadStatsSample) GetSource ¶
func (x *WorkloadStatsSample) GetSource() StatsSource
func (*WorkloadStatsSample) ProtoMessage ¶
func (*WorkloadStatsSample) ProtoMessage()
func (*WorkloadStatsSample) ProtoReflect ¶
func (x *WorkloadStatsSample) ProtoReflect() protoreflect.Message
func (*WorkloadStatsSample) Reset ¶
func (x *WorkloadStatsSample) Reset()
func (*WorkloadStatsSample) String ¶
func (x *WorkloadStatsSample) String() string