Documentation
¶
Index ¶
- Constants
- Variables
- func RegisterAteomServer(s grpc.ServiceRegistrar, srv AteomServer)
- type AteomClient
- type AteomServer
- type CheckpointWorkloadRequest
- func (*CheckpointWorkloadRequest) Descriptor() ([]byte, []int)deprecated
- func (x *CheckpointWorkloadRequest) GetActorId() string
- func (x *CheckpointWorkloadRequest) GetActorTemplateName() string
- func (x *CheckpointWorkloadRequest) GetActorTemplateNamespace() string
- func (x *CheckpointWorkloadRequest) GetRunscPath() string
- func (x *CheckpointWorkloadRequest) GetSnapshotUriPrefix() 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
- type Container
- type RestoreWorkloadRequest
- func (*RestoreWorkloadRequest) Descriptor() ([]byte, []int)deprecated
- func (x *RestoreWorkloadRequest) GetActorId() string
- func (x *RestoreWorkloadRequest) GetActorTemplateName() string
- func (x *RestoreWorkloadRequest) GetActorTemplateNamespace() string
- func (x *RestoreWorkloadRequest) GetRunscPath() string
- func (x *RestoreWorkloadRequest) GetSnapshotUriPrefix() 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) GetActorId() string
- func (x *RunWorkloadRequest) GetActorTemplateName() string
- func (x *RunWorkloadRequest) GetActorTemplateNamespace() string
- func (x *RunWorkloadRequest) GetRunscPath() 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 UnimplementedAteomServer
- func (UnimplementedAteomServer) CheckpointWorkload(context.Context, *CheckpointWorkloadRequest) (*CheckpointWorkloadResponse, error)
- func (UnimplementedAteomServer) RestoreWorkload(context.Context, *RestoreWorkloadRequest) (*RestoreWorkloadResponse, error)
- func (UnimplementedAteomServer) RunWorkload(context.Context, *RunWorkloadRequest) (*RunWorkloadResponse, error)
- type UnsafeAteomServer
- type WorkloadSpec
Constants ¶
const ( Ateom_RunWorkload_FullMethodName = "/ateom.Ateom/RunWorkload" Ateom_CheckpointWorkload_FullMethodName = "/ateom.Ateom/CheckpointWorkload" Ateom_RestoreWorkload_FullMethodName = "/ateom.Ateom/RestoreWorkload" )
Variables ¶
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, }, }, 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 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)
}
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)
// 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 {
ActorTemplateNamespace string `` /* 129-byte string literal not displayed */
ActorTemplateName string `protobuf:"bytes,2,opt,name=actor_template_name,json=actorTemplateName,proto3" json:"actor_template_name,omitempty"`
ActorId string `protobuf:"bytes,3,opt,name=actor_id,json=actorId,proto3" json:"actor_id,omitempty"`
RunscPath string `protobuf:"bytes,4,opt,name=runsc_path,json=runscPath,proto3" json:"runsc_path,omitempty"`
Spec *WorkloadSpec `protobuf:"bytes,5,opt,name=spec,proto3" json:"spec,omitempty"`
// An object storage URI prefix below which the checkpoint data will be
// stored.
//
// 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.
//
// For example: "gs://bucket/actors/1234/snapshots/5678/"
SnapshotUriPrefix string `protobuf:"bytes,6,opt,name=snapshot_uri_prefix,json=snapshotUriPrefix,proto3" json:"snapshot_uri_prefix,omitempty"`
// contains filtered or unexported fields
}
func (*CheckpointWorkloadRequest) Descriptor
deprecated
func (*CheckpointWorkloadRequest) Descriptor() ([]byte, []int)
Deprecated: Use CheckpointWorkloadRequest.ProtoReflect.Descriptor instead.
func (*CheckpointWorkloadRequest) GetActorId ¶
func (x *CheckpointWorkloadRequest) GetActorId() string
func (*CheckpointWorkloadRequest) GetActorTemplateName ¶
func (x *CheckpointWorkloadRequest) GetActorTemplateName() string
func (*CheckpointWorkloadRequest) GetActorTemplateNamespace ¶
func (x *CheckpointWorkloadRequest) GetActorTemplateNamespace() string
func (*CheckpointWorkloadRequest) GetRunscPath ¶
func (x *CheckpointWorkloadRequest) GetRunscPath() string
func (*CheckpointWorkloadRequest) GetSnapshotUriPrefix ¶
func (x *CheckpointWorkloadRequest) GetSnapshotUriPrefix() 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 {
// contains filtered or unexported fields
}
func (*CheckpointWorkloadResponse) Descriptor
deprecated
func (*CheckpointWorkloadResponse) Descriptor() ([]byte, []int)
Deprecated: Use CheckpointWorkloadResponse.ProtoReflect.Descriptor instead.
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"`
// contains filtered or unexported fields
}
func (*Container) Descriptor
deprecated
func (*Container) ProtoMessage ¶
func (*Container) ProtoMessage()
func (*Container) ProtoReflect ¶
func (x *Container) ProtoReflect() protoreflect.Message
type RestoreWorkloadRequest ¶
type RestoreWorkloadRequest struct {
ActorTemplateNamespace string `` /* 129-byte string literal not displayed */
ActorTemplateName string `protobuf:"bytes,2,opt,name=actor_template_name,json=actorTemplateName,proto3" json:"actor_template_name,omitempty"`
ActorId string `protobuf:"bytes,3,opt,name=actor_id,json=actorId,proto3" json:"actor_id,omitempty"`
RunscPath string `protobuf:"bytes,4,opt,name=runsc_path,json=runscPath,proto3" json:"runsc_path,omitempty"`
Spec *WorkloadSpec `protobuf:"bytes,5,opt,name=spec,proto3" json:"spec,omitempty"`
// The object storage URI prefix of the snapshot to restore.
SnapshotUriPrefix string `protobuf:"bytes,6,opt,name=snapshot_uri_prefix,json=snapshotUriPrefix,proto3" json:"snapshot_uri_prefix,omitempty"`
// contains filtered or unexported fields
}
func (*RestoreWorkloadRequest) Descriptor
deprecated
func (*RestoreWorkloadRequest) Descriptor() ([]byte, []int)
Deprecated: Use RestoreWorkloadRequest.ProtoReflect.Descriptor instead.
func (*RestoreWorkloadRequest) GetActorId ¶
func (x *RestoreWorkloadRequest) GetActorId() string
func (*RestoreWorkloadRequest) GetActorTemplateName ¶
func (x *RestoreWorkloadRequest) GetActorTemplateName() string
func (*RestoreWorkloadRequest) GetActorTemplateNamespace ¶
func (x *RestoreWorkloadRequest) GetActorTemplateNamespace() string
func (*RestoreWorkloadRequest) GetRunscPath ¶
func (x *RestoreWorkloadRequest) GetRunscPath() string
func (*RestoreWorkloadRequest) GetSnapshotUriPrefix ¶
func (x *RestoreWorkloadRequest) GetSnapshotUriPrefix() 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 {
ActorTemplateNamespace string `` /* 129-byte string literal not displayed */
ActorTemplateName string `protobuf:"bytes,2,opt,name=actor_template_name,json=actorTemplateName,proto3" json:"actor_template_name,omitempty"`
ActorId string `protobuf:"bytes,3,opt,name=actor_id,json=actorId,proto3" json:"actor_id,omitempty"`
RunscPath string `protobuf:"bytes,4,opt,name=runsc_path,json=runscPath,proto3" json:"runsc_path,omitempty"`
Spec *WorkloadSpec `protobuf:"bytes,5,opt,name=spec,proto3" json:"spec,omitempty"`
// contains filtered or unexported fields
}
func (*RunWorkloadRequest) Descriptor
deprecated
func (*RunWorkloadRequest) Descriptor() ([]byte, []int)
Deprecated: Use RunWorkloadRequest.ProtoReflect.Descriptor instead.
func (*RunWorkloadRequest) GetActorId ¶
func (x *RunWorkloadRequest) GetActorId() string
func (*RunWorkloadRequest) GetActorTemplateName ¶
func (x *RunWorkloadRequest) GetActorTemplateName() string
func (*RunWorkloadRequest) GetActorTemplateNamespace ¶
func (x *RunWorkloadRequest) GetActorTemplateNamespace() string
func (*RunWorkloadRequest) GetRunscPath ¶
func (x *RunWorkloadRequest) GetRunscPath() 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 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) RestoreWorkload ¶
func (UnimplementedAteomServer) RestoreWorkload(context.Context, *RestoreWorkloadRequest) (*RestoreWorkloadResponse, error)
func (UnimplementedAteomServer) RunWorkload ¶
func (UnimplementedAteomServer) RunWorkload(context.Context, *RunWorkloadRequest) (*RunWorkloadResponse, 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 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