Documentation
¶
Index ¶
- Constants
- Variables
- func RegisterFibersServer(s grpc.ServiceRegistrar, srv FibersServer)
- type CapacityGrant
- func (*CapacityGrant) Descriptor() ([]byte, []int)deprecated
- func (x *CapacityGrant) GetAudience() string
- func (x *CapacityGrant) GetDeviceBudget() *DeviceBudget
- func (x *CapacityGrant) GetDiskBudgetBytes() uint64
- func (x *CapacityGrant) GetFibers() *FiberLimits
- func (x *CapacityGrant) GetGrantUid() string
- func (x *CapacityGrant) GetIssuer() string
- func (x *CapacityGrant) GetLeaseExpiry() *timestamppb.Timestamp
- func (x *CapacityGrant) GetMinTier() Tier
- func (x *CapacityGrant) GetPolicy() *Policy
- func (x *CapacityGrant) GetTemplateDigest() string
- func (x *CapacityGrant) GetTenant() string
- func (x *CapacityGrant) GetWBudgetBytes() uint64
- func (*CapacityGrant) ProtoMessage()
- func (x *CapacityGrant) ProtoReflect() protoreflect.Message
- func (x *CapacityGrant) Reset()
- func (x *CapacityGrant) String() string
- type CloneKind
- type CloneRequest
- func (*CloneRequest) Descriptor() ([]byte, []int)deprecated
- func (x *CloneRequest) GetDeadline() *timestamppb.Timestamp
- func (x *CloneRequest) GetGrantJwt() string
- func (x *CloneRequest) GetPayload() []byte
- func (x *CloneRequest) GetSession() string
- func (*CloneRequest) ProtoMessage()
- func (x *CloneRequest) ProtoReflect() protoreflect.Message
- func (x *CloneRequest) Reset()
- func (x *CloneRequest) String() string
- type CloneResponse
- func (*CloneResponse) Descriptor() ([]byte, []int)deprecated
- func (x *CloneResponse) GetEndpoint() string
- func (x *CloneResponse) GetFence() *Fence
- func (x *CloneResponse) GetFiberId() string
- func (x *CloneResponse) GetKind() CloneKind
- func (x *CloneResponse) GetRoutingKey() string
- func (x *CloneResponse) GetServerCert() []byte
- func (x *CloneResponse) GetServerKeySha256() string
- func (*CloneResponse) ProtoMessage()
- func (x *CloneResponse) ProtoReflect() protoreflect.Message
- func (x *CloneResponse) Reset()
- func (x *CloneResponse) String() string
- type DeviceBudget
- func (*DeviceBudget) Descriptor() ([]byte, []int)deprecated
- func (x *DeviceBudget) GetBytes() uint64
- func (x *DeviceBudget) GetClass() string
- func (*DeviceBudget) ProtoMessage()
- func (x *DeviceBudget) ProtoReflect() protoreflect.Message
- func (x *DeviceBudget) Reset()
- func (x *DeviceBudget) String() string
- type DiscardRequest
- func (*DiscardRequest) Descriptor() ([]byte, []int)deprecated
- func (x *DiscardRequest) GetGrantJwt() string
- func (x *DiscardRequest) GetSession() string
- func (*DiscardRequest) ProtoMessage()
- func (x *DiscardRequest) ProtoReflect() protoreflect.Message
- func (x *DiscardRequest) Reset()
- func (x *DiscardRequest) String() string
- type DownloadRequest
- func (*DownloadRequest) Descriptor() ([]byte, []int)deprecated
- func (x *DownloadRequest) GetFiberId() string
- func (x *DownloadRequest) GetOffset() uint64
- func (x *DownloadRequest) GetPath() string
- func (*DownloadRequest) ProtoMessage()
- func (x *DownloadRequest) ProtoReflect() protoreflect.Message
- func (x *DownloadRequest) Reset()
- func (x *DownloadRequest) String() string
- type Durability
- type EndpointMode
- func (EndpointMode) Descriptor() protoreflect.EnumDescriptor
- func (x EndpointMode) Enum() *EndpointMode
- func (EndpointMode) EnumDescriptor() ([]byte, []int)deprecated
- func (x EndpointMode) Number() protoreflect.EnumNumber
- func (x EndpointMode) String() string
- func (EndpointMode) Type() protoreflect.EnumType
- type Fence
- type FiberLimits
- type FibersClient
- type FibersServer
- type Fibers_DownloadClient
- type Fibers_DownloadServer
- type Fibers_UploadClient
- type Fibers_UploadServer
- type Fibers_WatchClient
- type Fibers_WatchServer
- type FileChunk
- type FileInfo
- func (*FileInfo) Descriptor() ([]byte, []int)deprecated
- func (x *FileInfo) GetDirectory() bool
- func (x *FileInfo) GetMode() uint32
- func (x *FileInfo) GetPath() string
- func (x *FileInfo) GetSha256() []byte
- func (x *FileInfo) GetSize() uint64
- func (*FileInfo) ProtoMessage()
- func (x *FileInfo) ProtoReflect() protoreflect.Message
- func (x *FileInfo) Reset()
- func (x *FileInfo) String() string
- type Isolation
- type ListFilesRequest
- func (*ListFilesRequest) Descriptor() ([]byte, []int)deprecated
- func (x *ListFilesRequest) GetDir() string
- func (x *ListFilesRequest) GetFiberId() string
- func (*ListFilesRequest) ProtoMessage()
- func (x *ListFilesRequest) ProtoReflect() protoreflect.Message
- func (x *ListFilesRequest) Reset()
- func (x *ListFilesRequest) String() string
- type ListFilesResponse
- func (*ListFilesResponse) Descriptor() ([]byte, []int)deprecated
- func (x *ListFilesResponse) GetFiles() []*FileInfo
- func (*ListFilesResponse) ProtoMessage()
- func (x *ListFilesResponse) ProtoReflect() protoreflect.Message
- func (x *ListFilesResponse) Reset()
- func (x *ListFilesResponse) String() string
- type Miss
- func (*Miss) Descriptor() ([]byte, []int)deprecated
- func (x *Miss) GetCode() MissCode
- func (x *Miss) GetIssuer() string
- func (x *Miss) GetPreferredHome() string
- func (x *Miss) GetRetryAfterS() uint32
- func (*Miss) ProtoMessage()
- func (x *Miss) ProtoReflect() protoreflect.Message
- func (x *Miss) Reset()
- func (x *Miss) String() string
- type MissCode
- type NoWorkspace
- type ParkRequest
- type Policy
- func (*Policy) Descriptor() ([]byte, []int)deprecated
- func (x *Policy) GetAuditClass() string
- func (x *Policy) GetDurability() Durability
- func (x *Policy) GetEndpointMode() EndpointMode
- func (x *Policy) GetIsolation() Isolation
- func (x *Policy) GetPsiSomeAvg10Park() float32
- func (x *Policy) GetPsiSomeAvg10Shed() float32
- func (x *Policy) GetSessionClass() string
- func (*Policy) ProtoMessage()
- func (x *Policy) ProtoReflect() protoreflect.Message
- func (x *Policy) Reset()
- func (x *Policy) String() string
- type ReleaseRequest
- func (*ReleaseRequest) Descriptor() ([]byte, []int)deprecated
- func (x *ReleaseRequest) GetDiscard() bool
- func (x *ReleaseRequest) GetFiberId() string
- func (*ReleaseRequest) ProtoMessage()
- func (x *ReleaseRequest) ProtoReflect() protoreflect.Message
- func (x *ReleaseRequest) Reset()
- func (x *ReleaseRequest) String() string
- type Status
- func (*Status) Descriptor() ([]byte, []int)deprecated
- func (x *Status) GetGrantUid() string
- func (x *Status) GetLatest() *Fence
- func (x *Status) GetParked() uint32
- func (x *Status) GetPooled() uint32
- func (x *Status) GetRunning() uint32
- func (x *Status) GetWUsedBytes() uint64
- func (*Status) ProtoMessage()
- func (x *Status) ProtoReflect() protoreflect.Message
- func (x *Status) Reset()
- func (x *Status) String() string
- type Tier
- type UnimplementedFibersServer
- func (UnimplementedFibersServer) Clone(context.Context, *CloneRequest) (*CloneResponse, error)
- func (UnimplementedFibersServer) Discard(context.Context, *DiscardRequest) (*emptypb.Empty, error)
- func (UnimplementedFibersServer) Download(*DownloadRequest, grpc.ServerStreamingServer[FileChunk]) error
- func (UnimplementedFibersServer) ListFiles(context.Context, *ListFilesRequest) (*ListFilesResponse, error)
- func (UnimplementedFibersServer) Park(context.Context, *ParkRequest) (*emptypb.Empty, error)
- func (UnimplementedFibersServer) Release(context.Context, *ReleaseRequest) (*emptypb.Empty, error)
- func (UnimplementedFibersServer) Upload(grpc.ClientStreamingServer[UploadRequest, FileInfo]) error
- func (UnimplementedFibersServer) Watch(*emptypb.Empty, grpc.ServerStreamingServer[Status]) error
- type UnsafeFibersServer
- type UploadHeader
- func (*UploadHeader) Descriptor() ([]byte, []int)deprecated
- func (x *UploadHeader) GetFiberId() string
- func (x *UploadHeader) GetMode() uint32
- func (x *UploadHeader) GetPath() string
- func (x *UploadHeader) GetSha256() []byte
- func (x *UploadHeader) GetSize() uint64
- func (*UploadHeader) ProtoMessage()
- func (x *UploadHeader) ProtoReflect() protoreflect.Message
- func (x *UploadHeader) Reset()
- func (x *UploadHeader) String() string
- type UploadRequest
- func (*UploadRequest) Descriptor() ([]byte, []int)deprecated
- func (x *UploadRequest) GetData() []byte
- func (x *UploadRequest) GetHeader() *UploadHeader
- func (x *UploadRequest) GetPart() isUploadRequest_Part
- func (*UploadRequest) ProtoMessage()
- func (x *UploadRequest) ProtoReflect() protoreflect.Message
- func (x *UploadRequest) Reset()
- func (x *UploadRequest) String() string
- type UploadRequest_Data
- type UploadRequest_Header
Constants ¶
const ( Fibers_Clone_FullMethodName = "/fiberd.grant.v1.Fibers/Clone" Fibers_Park_FullMethodName = "/fiberd.grant.v1.Fibers/Park" Fibers_Release_FullMethodName = "/fiberd.grant.v1.Fibers/Release" Fibers_Discard_FullMethodName = "/fiberd.grant.v1.Fibers/Discard" Fibers_Watch_FullMethodName = "/fiberd.grant.v1.Fibers/Watch" Fibers_Upload_FullMethodName = "/fiberd.grant.v1.Fibers/Upload" Fibers_Download_FullMethodName = "/fiberd.grant.v1.Fibers/Download" Fibers_ListFiles_FullMethodName = "/fiberd.grant.v1.Fibers/ListFiles" )
Variables ¶
var ( Tier_name = map[int32]string{ 0: "TIER_UNSPECIFIED", 1: "FIBER_BASIC", 2: "FIBER_WARM", 3: "FIBER_CHECKPOINT", 4: "FIBER_SNAPSHOT", } Tier_value = map[string]int32{ "TIER_UNSPECIFIED": 0, "FIBER_BASIC": 1, "FIBER_WARM": 2, "FIBER_CHECKPOINT": 3, "FIBER_SNAPSHOT": 4, } )
Enum value maps for Tier.
var ( Durability_name = map[int32]string{ 0: "DURABILITY_UNSPECIFIED", 1: "BEST_EFFORT", 2: "SYNC", } Durability_value = map[string]int32{ "DURABILITY_UNSPECIFIED": 0, "BEST_EFFORT": 1, "SYNC": 2, } )
Enum value maps for Durability.
var ( Isolation_name = map[int32]string{ 0: "ISOLATION_UNSPECIFIED", 1: "UNTRUSTED", 2: "TRUSTED", } Isolation_value = map[string]int32{ "ISOLATION_UNSPECIFIED": 0, "UNTRUSTED": 1, "TRUSTED": 2, } )
Enum value maps for Isolation.
var ( EndpointMode_name = map[int32]string{ 0: "DIRECT", 1: "HANDOFF", } EndpointMode_value = map[string]int32{ "DIRECT": 0, "HANDOFF": 1, } )
Enum value maps for EndpointMode.
var ( CloneKind_name = map[int32]string{ 0: "CREATE", 1: "ATTACH", 2: "RESUME", } CloneKind_value = map[string]int32{ "CREATE": 0, "ATTACH": 1, "RESUME": 2, } )
Enum value maps for CloneKind.
var ( MissCode_name = map[int32]string{ 0: "SHED", 1: "DEFERRED_FALLBACK", } MissCode_value = map[string]int32{ "SHED": 0, "DEFERRED_FALLBACK": 1, } )
Enum value maps for MissCode.
var Fibers_ServiceDesc = grpc.ServiceDesc{ ServiceName: "fiberd.grant.v1.Fibers", HandlerType: (*FibersServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "Clone", Handler: _Fibers_Clone_Handler, }, { MethodName: "Park", Handler: _Fibers_Park_Handler, }, { MethodName: "Release", Handler: _Fibers_Release_Handler, }, { MethodName: "Discard", Handler: _Fibers_Discard_Handler, }, { MethodName: "ListFiles", Handler: _Fibers_ListFiles_Handler, }, }, Streams: []grpc.StreamDesc{ { StreamName: "Watch", Handler: _Fibers_Watch_Handler, ServerStreams: true, }, { StreamName: "Upload", Handler: _Fibers_Upload_Handler, ClientStreams: true, }, { StreamName: "Download", Handler: _Fibers_Download_Handler, ServerStreams: true, }, }, Metadata: "grant/v1/grant.proto", }
Fibers_ServiceDesc is the grpc.ServiceDesc for Fibers service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
var File_grant_v1_grant_proto protoreflect.FileDescriptor
Functions ¶
func RegisterFibersServer ¶
func RegisterFibersServer(s grpc.ServiceRegistrar, srv FibersServer)
Types ¶
type CapacityGrant ¶
type CapacityGrant struct {
GrantUid string `protobuf:"bytes,1,opt,name=grant_uid,json=grantUid,proto3" json:"grant_uid,omitempty"`
// OIDC issuer URL of the issuing home. Verifiers discover the JWKS here.
Issuer string `protobuf:"bytes,2,opt,name=issuer,proto3" json:"issuer,omitempty"`
// Target environment id: the home that may exercise this grant.
Audience string `protobuf:"bytes,3,opt,name=audience,proto3" json:"audience,omitempty"`
// OCI digest of the zygote artifact, or of the template image.
TemplateDigest string `protobuf:"bytes,4,opt,name=template_digest,json=templateDigest,proto3" json:"template_digest,omitempty"`
// The issuer's tenant the grant belongs to (a Kubernetes namespace, a
// Slurm account). A named session is filed under its tenant when it is
// parked, so another tenant's grant on the same template never finds
// it. A grant without a tenant runs anonymous fibers only: a named
// Clone or Park under it fails with FailedPrecondition.
Tenant string `protobuf:"bytes,11,opt,name=tenant,proto3" json:"tenant,omitempty"`
Fibers *FiberLimits `protobuf:"bytes,5,opt,name=fibers,proto3" json:"fibers,omitempty"`
// Maximum dirtied working set per fiber, in bytes. Enforced as the
// fiber's cgroup memory.max; also the mobility budget for deltas.
WBudgetBytes uint64 `protobuf:"varint,6,opt,name=w_budget_bytes,json=wBudgetBytes,proto3" json:"w_budget_bytes,omitempty"`
MinTier Tier `protobuf:"varint,7,opt,name=min_tier,json=minTier,proto3,enum=fiberd.grant.v1.Tier" json:"min_tier,omitempty"`
LeaseExpiry *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=lease_expiry,json=leaseExpiry,proto3" json:"lease_expiry,omitempty"`
Policy *Policy `protobuf:"bytes,9,opt,name=policy,proto3" json:"policy,omitempty"`
// Absent or zero bytes: the grant needs no device.
DeviceBudget *DeviceBudget `protobuf:"bytes,10,opt,name=device_budget,json=deviceBudget,proto3" json:"device_budget,omitempty"`
// Per-fiber workspace ceiling in bytes. Each fiber gets a private
// workspace at /workspace that Upload, Download and ListFiles reach.
// Zero means no workspace, and every file call on the grant's fibers
// fails with FailedPrecondition and a NoWorkspace detail. A home whose
// runtime offers no workspace refuses a grant that sets it, with
// FailedPrecondition.
DiskBudgetBytes uint64 `protobuf:"varint,12,opt,name=disk_budget_bytes,json=diskBudgetBytes,proto3" json:"disk_budget_bytes,omitempty"`
// contains filtered or unexported fields
}
CapacityGrant is what the issuer signs. It is carried as the `grant` claim of a JWT whose registered claims mirror issuer, audience, lease_expiry and grant_uid (iss, aud, exp, jti).
func (*CapacityGrant) Descriptor
deprecated
func (*CapacityGrant) Descriptor() ([]byte, []int)
Deprecated: Use CapacityGrant.ProtoReflect.Descriptor instead.
func (*CapacityGrant) GetAudience ¶
func (x *CapacityGrant) GetAudience() string
func (*CapacityGrant) GetDeviceBudget ¶
func (x *CapacityGrant) GetDeviceBudget() *DeviceBudget
func (*CapacityGrant) GetDiskBudgetBytes ¶
func (x *CapacityGrant) GetDiskBudgetBytes() uint64
func (*CapacityGrant) GetFibers ¶
func (x *CapacityGrant) GetFibers() *FiberLimits
func (*CapacityGrant) GetGrantUid ¶
func (x *CapacityGrant) GetGrantUid() string
func (*CapacityGrant) GetIssuer ¶
func (x *CapacityGrant) GetIssuer() string
func (*CapacityGrant) GetLeaseExpiry ¶
func (x *CapacityGrant) GetLeaseExpiry() *timestamppb.Timestamp
func (*CapacityGrant) GetMinTier ¶
func (x *CapacityGrant) GetMinTier() Tier
func (*CapacityGrant) GetPolicy ¶
func (x *CapacityGrant) GetPolicy() *Policy
func (*CapacityGrant) GetTemplateDigest ¶
func (x *CapacityGrant) GetTemplateDigest() string
func (*CapacityGrant) GetTenant ¶
func (x *CapacityGrant) GetTenant() string
func (*CapacityGrant) GetWBudgetBytes ¶
func (x *CapacityGrant) GetWBudgetBytes() uint64
func (*CapacityGrant) ProtoMessage ¶
func (*CapacityGrant) ProtoMessage()
func (*CapacityGrant) ProtoReflect ¶
func (x *CapacityGrant) ProtoReflect() protoreflect.Message
func (*CapacityGrant) Reset ¶
func (x *CapacityGrant) Reset()
func (*CapacityGrant) String ¶
func (x *CapacityGrant) String() string
type CloneKind ¶
type CloneKind int32
func (CloneKind) Descriptor ¶
func (CloneKind) Descriptor() protoreflect.EnumDescriptor
func (CloneKind) EnumDescriptor
deprecated
func (CloneKind) Number ¶
func (x CloneKind) Number() protoreflect.EnumNumber
func (CloneKind) Type ¶
func (CloneKind) Type() protoreflect.EnumType
type CloneRequest ¶
type CloneRequest struct {
GrantJwt string `protobuf:"bytes,1,opt,name=grant_jwt,json=grantJwt,proto3" json:"grant_jwt,omitempty"`
// Optional stable identity. Empty means an anonymous, fungible fiber.
Session string `protobuf:"bytes,2,opt,name=session,proto3" json:"session,omitempty"`
// Hard budget for the runtime work; exceeding it is a miss, not a late fiber.
Deadline *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=deadline,proto3" json:"deadline,omitempty"`
// Opaque, size-capped (4096 bytes), delivered as data, never config.
Payload []byte `protobuf:"bytes,4,opt,name=payload,proto3" json:"payload,omitempty"`
// contains filtered or unexported fields
}
CloneRequest is the entire clone-time surface. Admission completeness is structural: there is no field with which to shape a workload. A request carrying any other field is rejected with InvalidArgument.
func (*CloneRequest) Descriptor
deprecated
func (*CloneRequest) Descriptor() ([]byte, []int)
Deprecated: Use CloneRequest.ProtoReflect.Descriptor instead.
func (*CloneRequest) GetDeadline ¶
func (x *CloneRequest) GetDeadline() *timestamppb.Timestamp
func (*CloneRequest) GetGrantJwt ¶
func (x *CloneRequest) GetGrantJwt() string
func (*CloneRequest) GetPayload ¶
func (x *CloneRequest) GetPayload() []byte
func (*CloneRequest) GetSession ¶
func (x *CloneRequest) GetSession() string
func (*CloneRequest) ProtoMessage ¶
func (*CloneRequest) ProtoMessage()
func (*CloneRequest) ProtoReflect ¶
func (x *CloneRequest) ProtoReflect() protoreflect.Message
func (*CloneRequest) Reset ¶
func (x *CloneRequest) Reset()
func (*CloneRequest) String ¶
func (x *CloneRequest) String() string
type CloneResponse ¶
type CloneResponse struct {
FiberId string `protobuf:"bytes,1,opt,name=fiber_id,json=fiberId,proto3" json:"fiber_id,omitempty"`
Endpoint string `protobuf:"bytes,2,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
Fence *Fence `protobuf:"bytes,3,opt,name=fence,proto3" json:"fence,omitempty"`
Kind CloneKind `protobuf:"varint,4,opt,name=kind,proto3,enum=fiberd.grant.v1.CloneKind" json:"kind,omitempty"`
// Set when the grant's endpoint mode is HANDOFF. The caller opens TLS
// to endpoint with server name "<routing_key>.fiberd", presents the
// grant's client certificate, and accepts only the fiber's own
// certificate. server_cert is that certificate as DER, for a TLS
// library that pins a certificate during the handshake, and
// server_key_sha256 is the hash (SHA-256, base64url) of its
// SubjectPublicKeyInfo, for one that pins a key.
RoutingKey string `protobuf:"bytes,5,opt,name=routing_key,json=routingKey,proto3" json:"routing_key,omitempty"`
ServerKeySha256 string `protobuf:"bytes,6,opt,name=server_key_sha256,json=serverKeySha256,proto3" json:"server_key_sha256,omitempty"`
ServerCert []byte `protobuf:"bytes,7,opt,name=server_cert,json=serverCert,proto3" json:"server_cert,omitempty"`
// contains filtered or unexported fields
}
func (*CloneResponse) Descriptor
deprecated
func (*CloneResponse) Descriptor() ([]byte, []int)
Deprecated: Use CloneResponse.ProtoReflect.Descriptor instead.
func (*CloneResponse) GetEndpoint ¶
func (x *CloneResponse) GetEndpoint() string
func (*CloneResponse) GetFence ¶
func (x *CloneResponse) GetFence() *Fence
func (*CloneResponse) GetFiberId ¶
func (x *CloneResponse) GetFiberId() string
func (*CloneResponse) GetKind ¶
func (x *CloneResponse) GetKind() CloneKind
func (*CloneResponse) GetRoutingKey ¶
func (x *CloneResponse) GetRoutingKey() string
func (*CloneResponse) GetServerCert ¶
func (x *CloneResponse) GetServerCert() []byte
func (*CloneResponse) GetServerKeySha256 ¶
func (x *CloneResponse) GetServerKeySha256() string
func (*CloneResponse) ProtoMessage ¶
func (*CloneResponse) ProtoMessage()
func (*CloneResponse) ProtoReflect ¶
func (x *CloneResponse) ProtoReflect() protoreflect.Message
func (*CloneResponse) Reset ¶
func (x *CloneResponse) Reset()
func (*CloneResponse) String ¶
func (x *CloneResponse) String() string
type DeviceBudget ¶
type DeviceBudget struct {
Bytes uint64 `protobuf:"varint,1,opt,name=bytes,proto3" json:"bytes,omitempty"`
// class names the device the budget is for ("gpu"; "sim" is the
// reference workload's simulated engine). Empty means any.
Class string `protobuf:"bytes,2,opt,name=class,proto3" json:"class,omitempty"`
// contains filtered or unexported fields
}
DeviceBudget is the per-fiber slice of the engine's device state (its KV cache, its VRAM) a fiber may hold: the device-side twin of w_budget_bytes. On the GPU side one engine per grant owns the device and fibers are its clients; the engine reports each fiber's slice and the home enforces this budget on the report, since the kernel has no pressure class for devices. A home whose template offers no device of this class refuses the grant with FailedPrecondition, never a silent CPU-only fiber.
func (*DeviceBudget) Descriptor
deprecated
func (*DeviceBudget) Descriptor() ([]byte, []int)
Deprecated: Use DeviceBudget.ProtoReflect.Descriptor instead.
func (*DeviceBudget) GetBytes ¶
func (x *DeviceBudget) GetBytes() uint64
func (*DeviceBudget) GetClass ¶
func (x *DeviceBudget) GetClass() string
func (*DeviceBudget) ProtoMessage ¶
func (*DeviceBudget) ProtoMessage()
func (*DeviceBudget) ProtoReflect ¶
func (x *DeviceBudget) ProtoReflect() protoreflect.Message
func (*DeviceBudget) Reset ¶
func (x *DeviceBudget) Reset()
func (*DeviceBudget) String ¶
func (x *DeviceBudget) String() string
type DiscardRequest ¶
type DiscardRequest struct {
GrantJwt string `protobuf:"bytes,1,opt,name=grant_jwt,json=grantJwt,proto3" json:"grant_jwt,omitempty"`
Session string `protobuf:"bytes,2,opt,name=session,proto3" json:"session,omitempty"`
// contains filtered or unexported fields
}
DiscardRequest names a parked session to delete. It carries the grant as Clone does, since a parked session has no fiber to name.
func (*DiscardRequest) Descriptor
deprecated
func (*DiscardRequest) Descriptor() ([]byte, []int)
Deprecated: Use DiscardRequest.ProtoReflect.Descriptor instead.
func (*DiscardRequest) GetGrantJwt ¶
func (x *DiscardRequest) GetGrantJwt() string
func (*DiscardRequest) GetSession ¶
func (x *DiscardRequest) GetSession() string
func (*DiscardRequest) ProtoMessage ¶
func (*DiscardRequest) ProtoMessage()
func (*DiscardRequest) ProtoReflect ¶
func (x *DiscardRequest) ProtoReflect() protoreflect.Message
func (*DiscardRequest) Reset ¶
func (x *DiscardRequest) Reset()
func (*DiscardRequest) String ¶
func (x *DiscardRequest) String() string
type DownloadRequest ¶
type DownloadRequest struct {
FiberId string `protobuf:"bytes,1,opt,name=fiber_id,json=fiberId,proto3" json:"fiber_id,omitempty"`
// The file's path, relative to the fiber's /workspace.
Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
// Where to start reading, in bytes.
Offset uint64 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset,omitempty"`
// contains filtered or unexported fields
}
func (*DownloadRequest) Descriptor
deprecated
func (*DownloadRequest) Descriptor() ([]byte, []int)
Deprecated: Use DownloadRequest.ProtoReflect.Descriptor instead.
func (*DownloadRequest) GetFiberId ¶
func (x *DownloadRequest) GetFiberId() string
func (*DownloadRequest) GetOffset ¶
func (x *DownloadRequest) GetOffset() uint64
func (*DownloadRequest) GetPath ¶
func (x *DownloadRequest) GetPath() string
func (*DownloadRequest) ProtoMessage ¶
func (*DownloadRequest) ProtoMessage()
func (*DownloadRequest) ProtoReflect ¶
func (x *DownloadRequest) ProtoReflect() protoreflect.Message
func (*DownloadRequest) Reset ¶
func (x *DownloadRequest) Reset()
func (*DownloadRequest) String ¶
func (x *DownloadRequest) String() string
type Durability ¶
type Durability int32
Durability selects when the audit record for an operation must be durable. It is priced as activation latency.
const ( Durability_DURABILITY_UNSPECIFIED Durability = 0 // Append the record and ack without an fsync. A crash can lose records // the OS has not flushed yet. Durability_BEST_EFFORT Durability = 1 // Ack only once the record is durable on local disk. After a failed // fsync, every SYNC operation fails until fiberd restarts. Durability_SYNC Durability = 2 )
func (Durability) Descriptor ¶
func (Durability) Descriptor() protoreflect.EnumDescriptor
func (Durability) Enum ¶
func (x Durability) Enum() *Durability
func (Durability) EnumDescriptor
deprecated
func (Durability) EnumDescriptor() ([]byte, []int)
Deprecated: Use Durability.Descriptor instead.
func (Durability) Number ¶
func (x Durability) Number() protoreflect.EnumNumber
func (Durability) String ¶
func (x Durability) String() string
func (Durability) Type ¶
func (Durability) Type() protoreflect.EnumType
type EndpointMode ¶
type EndpointMode int32
EndpointMode is how callers reach a grant's fibers. HANDOFF needs a grant bound to a caller's key and a home whose backend can pass connections to fibers (proc, runc). Other homes refuse the grant with FailedPrecondition.
const ( // Each fiber listens on an endpoint of its own. EndpointMode_DIRECT EndpointMode = 0 // The home accepts each TLS connection on one address, routes it by // the TLS server name (CloneResponse.routing_key) and passes the // socket to the fiber, which terminates TLS and accepts only the // client certificate its Clone arrived under. EndpointMode_HANDOFF EndpointMode = 1 )
func (EndpointMode) Descriptor ¶
func (EndpointMode) Descriptor() protoreflect.EnumDescriptor
func (EndpointMode) Enum ¶
func (x EndpointMode) Enum() *EndpointMode
func (EndpointMode) EnumDescriptor
deprecated
func (EndpointMode) EnumDescriptor() ([]byte, []int)
Deprecated: Use EndpointMode.Descriptor instead.
func (EndpointMode) Number ¶
func (x EndpointMode) Number() protoreflect.EnumNumber
func (EndpointMode) String ¶
func (x EndpointMode) String() string
func (EndpointMode) Type ¶
func (EndpointMode) Type() protoreflect.EnumType
type Fence ¶
type Fence struct {
GrantUid string `protobuf:"bytes,1,opt,name=grant_uid,json=grantUid,proto3" json:"grant_uid,omitempty"`
Epoch uint64 `protobuf:"varint,2,opt,name=epoch,proto3" json:"epoch,omitempty"`
Seq uint64 `protobuf:"varint,3,opt,name=seq,proto3" json:"seq,omitempty"`
// contains filtered or unexported fields
}
Fence identifies one run of a fiber: (grant, fiberd epoch, seq). Every credential and claim is scoped to it. An epoch bump on fiberd restart invalidates every prior fence at once.
func (*Fence) Descriptor
deprecated
func (*Fence) GetGrantUid ¶
func (*Fence) ProtoMessage ¶
func (*Fence) ProtoMessage()
func (*Fence) ProtoReflect ¶
func (x *Fence) ProtoReflect() protoreflect.Message
type FiberLimits ¶
type FiberLimits struct {
Max uint32 `protobuf:"varint,1,opt,name=max,proto3" json:"max,omitempty"`
Warm uint32 `protobuf:"varint,2,opt,name=warm,proto3" json:"warm,omitempty"`
// contains filtered or unexported fields
}
FiberLimits is `fibers: {max, warm}`. (Named FiberLimits rather than Fibers because the service below already takes that name.)
func (*FiberLimits) Descriptor
deprecated
func (*FiberLimits) Descriptor() ([]byte, []int)
Deprecated: Use FiberLimits.ProtoReflect.Descriptor instead.
func (*FiberLimits) GetMax ¶
func (x *FiberLimits) GetMax() uint32
func (*FiberLimits) GetWarm ¶
func (x *FiberLimits) GetWarm() uint32
func (*FiberLimits) ProtoMessage ¶
func (*FiberLimits) ProtoMessage()
func (*FiberLimits) ProtoReflect ¶
func (x *FiberLimits) ProtoReflect() protoreflect.Message
func (*FiberLimits) Reset ¶
func (x *FiberLimits) Reset()
func (*FiberLimits) String ¶
func (x *FiberLimits) String() string
type FibersClient ¶
type FibersClient interface {
// Clone resolves a session to attach, resume or create. Every miss
// carries a Miss detail: ResourceExhausted for SHED, Unavailable for
// DEFERRED_FALLBACK. FailedPrecondition when min_tier exceeds the
// home's tier, a parked session needs a tier the home lacks, or an
// untrusted grant reaches a home that does not isolate tenants.
Clone(ctx context.Context, in *CloneRequest, opts ...grpc.CallOption) (*CloneResponse, error)
// Park checkpoints a named session's fiber. A fiber without a session
// is refused with InvalidArgument, since nothing could resume it, so
// release it instead.
Park(ctx context.Context, in *ParkRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
Release(ctx context.Context, in *ReleaseRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
// Discard deletes a parked session's delta by name, here and in the
// delta registry, and the session is forgotten. The next Clone of it
// creates. A running session is refused with InvalidArgument, so
// release its fiber with discard instead. A session neither parked
// here nor in the registry is NotFound.
Discard(ctx context.Context, in *DiscardRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
Watch(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (grpc.ServerStreamingClient[Status], error)
// Upload writes one file into a running fiber's workspace. The first
// message is the header. Each file call is authorized like Park, so
// another caller's fiber answers NotFound.
Upload(ctx context.Context, opts ...grpc.CallOption) (grpc.ClientStreamingClient[UploadRequest, FileInfo], error)
// Download reads one regular file from a running fiber's workspace.
// The first chunk carries its FileInfo.
Download(ctx context.Context, in *DownloadRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[FileChunk], error)
// ListFiles lists one directory of a running fiber's workspace.
ListFiles(ctx context.Context, in *ListFilesRequest, opts ...grpc.CallOption) (*ListFilesResponse, error)
}
FibersClient is the client API for Fibers 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.
func NewFibersClient ¶
func NewFibersClient(cc grpc.ClientConnInterface) FibersClient
type FibersServer ¶
type FibersServer interface {
// Clone resolves a session to attach, resume or create. Every miss
// carries a Miss detail: ResourceExhausted for SHED, Unavailable for
// DEFERRED_FALLBACK. FailedPrecondition when min_tier exceeds the
// home's tier, a parked session needs a tier the home lacks, or an
// untrusted grant reaches a home that does not isolate tenants.
Clone(context.Context, *CloneRequest) (*CloneResponse, error)
// Park checkpoints a named session's fiber. A fiber without a session
// is refused with InvalidArgument, since nothing could resume it, so
// release it instead.
Park(context.Context, *ParkRequest) (*emptypb.Empty, error)
Release(context.Context, *ReleaseRequest) (*emptypb.Empty, error)
// Discard deletes a parked session's delta by name, here and in the
// delta registry, and the session is forgotten. The next Clone of it
// creates. A running session is refused with InvalidArgument, so
// release its fiber with discard instead. A session neither parked
// here nor in the registry is NotFound.
Discard(context.Context, *DiscardRequest) (*emptypb.Empty, error)
Watch(*emptypb.Empty, grpc.ServerStreamingServer[Status]) error
// Upload writes one file into a running fiber's workspace. The first
// message is the header. Each file call is authorized like Park, so
// another caller's fiber answers NotFound.
Upload(grpc.ClientStreamingServer[UploadRequest, FileInfo]) error
// Download reads one regular file from a running fiber's workspace.
// The first chunk carries its FileInfo.
Download(*DownloadRequest, grpc.ServerStreamingServer[FileChunk]) error
// ListFiles lists one directory of a running fiber's workspace.
ListFiles(context.Context, *ListFilesRequest) (*ListFilesResponse, error)
// contains filtered or unexported methods
}
FibersServer is the server API for Fibers service. All implementations must embed UnimplementedFibersServer for forward compatibility.
type Fibers_DownloadClient ¶
type Fibers_DownloadClient = grpc.ServerStreamingClient[FileChunk]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type Fibers_DownloadServer ¶
type Fibers_DownloadServer = grpc.ServerStreamingServer[FileChunk]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type Fibers_UploadClient ¶
type Fibers_UploadClient = grpc.ClientStreamingClient[UploadRequest, FileInfo]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type Fibers_UploadServer ¶
type Fibers_UploadServer = grpc.ClientStreamingServer[UploadRequest, FileInfo]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type Fibers_WatchClient ¶
type Fibers_WatchClient = grpc.ServerStreamingClient[Status]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type Fibers_WatchServer ¶
type Fibers_WatchServer = grpc.ServerStreamingServer[Status]
This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type FileChunk ¶
type FileChunk struct {
Info *FileInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
// contains filtered or unexported fields
}
FileChunk is one message of a Download stream. The first carries info and every chunk carries at most 1 MiB of data.
func (*FileChunk) Descriptor
deprecated
func (*FileChunk) ProtoMessage ¶
func (*FileChunk) ProtoMessage()
func (*FileChunk) ProtoReflect ¶
func (x *FileChunk) ProtoReflect() protoreflect.Message
type FileInfo ¶
type FileInfo struct {
// Relative to the fiber's /workspace.
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
Size uint64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"`
// The permission bits.
Mode uint32 `protobuf:"varint,3,opt,name=mode,proto3" json:"mode,omitempty"`
Directory bool `protobuf:"varint,4,opt,name=directory,proto3" json:"directory,omitempty"`
// SHA-256 of the content. Set in Upload's reply only.
Sha256 []byte `protobuf:"bytes,5,opt,name=sha256,proto3" json:"sha256,omitempty"`
// contains filtered or unexported fields
}
FileInfo describes one entry of a workspace.
func (*FileInfo) Descriptor
deprecated
func (*FileInfo) GetDirectory ¶
func (*FileInfo) ProtoMessage ¶
func (*FileInfo) ProtoMessage()
func (*FileInfo) ProtoReflect ¶
func (x *FileInfo) ProtoReflect() protoreflect.Message
type Isolation ¶
type Isolation int32
Isolation is whether the issuer trusts the grant's code with the host kernel. Unset is UNTRUSTED. Only a home whose backend sandboxes fibers from the host (gVisor, Hyperlight) may serve it. Other homes refuse the grant with FailedPrecondition.
func (Isolation) Descriptor ¶
func (Isolation) Descriptor() protoreflect.EnumDescriptor
func (Isolation) EnumDescriptor
deprecated
func (Isolation) Number ¶
func (x Isolation) Number() protoreflect.EnumNumber
func (Isolation) Type ¶
func (Isolation) Type() protoreflect.EnumType
type ListFilesRequest ¶
type ListFilesRequest struct {
FiberId string `protobuf:"bytes,1,opt,name=fiber_id,json=fiberId,proto3" json:"fiber_id,omitempty"`
// The directory to list, relative to the fiber's /workspace. Empty is
// the workspace itself.
Dir string `protobuf:"bytes,2,opt,name=dir,proto3" json:"dir,omitempty"`
// contains filtered or unexported fields
}
func (*ListFilesRequest) Descriptor
deprecated
func (*ListFilesRequest) Descriptor() ([]byte, []int)
Deprecated: Use ListFilesRequest.ProtoReflect.Descriptor instead.
func (*ListFilesRequest) GetDir ¶
func (x *ListFilesRequest) GetDir() string
func (*ListFilesRequest) GetFiberId ¶
func (x *ListFilesRequest) GetFiberId() string
func (*ListFilesRequest) ProtoMessage ¶
func (*ListFilesRequest) ProtoMessage()
func (*ListFilesRequest) ProtoReflect ¶
func (x *ListFilesRequest) ProtoReflect() protoreflect.Message
func (*ListFilesRequest) Reset ¶
func (x *ListFilesRequest) Reset()
func (*ListFilesRequest) String ¶
func (x *ListFilesRequest) String() string
type ListFilesResponse ¶
type ListFilesResponse struct {
// The directory's entries, not recursive.
Files []*FileInfo `protobuf:"bytes,1,rep,name=files,proto3" json:"files,omitempty"`
// contains filtered or unexported fields
}
func (*ListFilesResponse) Descriptor
deprecated
func (*ListFilesResponse) Descriptor() ([]byte, []int)
Deprecated: Use ListFilesResponse.ProtoReflect.Descriptor instead.
func (*ListFilesResponse) GetFiles ¶
func (x *ListFilesResponse) GetFiles() []*FileInfo
func (*ListFilesResponse) ProtoMessage ¶
func (*ListFilesResponse) ProtoMessage()
func (*ListFilesResponse) ProtoReflect ¶
func (x *ListFilesResponse) ProtoReflect() protoreflect.Message
func (*ListFilesResponse) Reset ¶
func (x *ListFilesResponse) Reset()
func (*ListFilesResponse) String ¶
func (x *ListFilesResponse) String() string
type Miss ¶
type Miss struct {
Code MissCode `protobuf:"varint,1,opt,name=code,proto3,enum=fiberd.grant.v1.MissCode" json:"code,omitempty"`
RetryAfterS uint32 `protobuf:"varint,2,opt,name=retry_after_s,json=retryAfterS,proto3" json:"retry_after_s,omitempty"`
Issuer string `protobuf:"bytes,3,opt,name=issuer,proto3" json:"issuer,omitempty"`
// For DEFERRED_FALLBACK: the home that holds the session's parked
// state, when known.
PreferredHome string `protobuf:"bytes,4,opt,name=preferred_home,json=preferredHome,proto3" json:"preferred_home,omitempty"`
// contains filtered or unexported fields
}
Miss is attached to every miss error as a google.rpc.Status detail.
func (*Miss) Descriptor
deprecated
func (*Miss) GetPreferredHome ¶
func (*Miss) GetRetryAfterS ¶
func (*Miss) ProtoMessage ¶
func (*Miss) ProtoMessage()
func (*Miss) ProtoReflect ¶
func (x *Miss) ProtoReflect() protoreflect.Message
type MissCode ¶
type MissCode int32
MissCode is the one thing a caller needs to decide what to do next.
const ( // The control plane is unreachable or the clone rate limit is exceeded. // Back off for retry_after_s; never queue on a dead control plane. MissCode_SHED MissCode = 0 // Capacity is not on this home and the control plane is healthy. // Fall back to the home's ordinary provisioning path. MissCode_DEFERRED_FALLBACK MissCode = 1 )
func (MissCode) Descriptor ¶
func (MissCode) Descriptor() protoreflect.EnumDescriptor
func (MissCode) EnumDescriptor
deprecated
func (MissCode) Number ¶
func (x MissCode) Number() protoreflect.EnumNumber
func (MissCode) Type ¶
func (MissCode) Type() protoreflect.EnumType
type NoWorkspace ¶
type NoWorkspace struct {
// contains filtered or unexported fields
}
NoWorkspace is attached as a detail to the FailedPrecondition a file call gets when its fiber's grant has no workspace (disk_budget_bytes is zero). It tells that refusal apart from a tier gap.
func (*NoWorkspace) Descriptor
deprecated
func (*NoWorkspace) Descriptor() ([]byte, []int)
Deprecated: Use NoWorkspace.ProtoReflect.Descriptor instead.
func (*NoWorkspace) ProtoMessage ¶
func (*NoWorkspace) ProtoMessage()
func (*NoWorkspace) ProtoReflect ¶
func (x *NoWorkspace) ProtoReflect() protoreflect.Message
func (*NoWorkspace) Reset ¶
func (x *NoWorkspace) Reset()
func (*NoWorkspace) String ¶
func (x *NoWorkspace) String() string
type ParkRequest ¶
type ParkRequest struct {
FiberId string `protobuf:"bytes,1,opt,name=fiber_id,json=fiberId,proto3" json:"fiber_id,omitempty"`
// sync: checkpoint completes before the reply; the fiber keeps running
// until the delta is durable.
Sync bool `protobuf:"varint,2,opt,name=sync,proto3" json:"sync,omitempty"`
// contains filtered or unexported fields
}
func (*ParkRequest) Descriptor
deprecated
func (*ParkRequest) Descriptor() ([]byte, []int)
Deprecated: Use ParkRequest.ProtoReflect.Descriptor instead.
func (*ParkRequest) GetFiberId ¶
func (x *ParkRequest) GetFiberId() string
func (*ParkRequest) GetSync ¶
func (x *ParkRequest) GetSync() bool
func (*ParkRequest) ProtoMessage ¶
func (*ParkRequest) ProtoMessage()
func (*ParkRequest) ProtoReflect ¶
func (x *ParkRequest) ProtoReflect() protoreflect.Message
func (*ParkRequest) Reset ¶
func (x *ParkRequest) Reset()
func (*ParkRequest) String ¶
func (x *ParkRequest) String() string
type Policy ¶
type Policy struct {
Durability Durability `protobuf:"varint,1,opt,name=durability,proto3,enum=fiberd.grant.v1.Durability" json:"durability,omitempty"`
SessionClass string `protobuf:"bytes,2,opt,name=session_class,json=sessionClass,proto3" json:"session_class,omitempty"`
AuditClass string `protobuf:"bytes,3,opt,name=audit_class,json=auditClass,proto3" json:"audit_class,omitempty"`
// PSI memory "some avg10" watermarks on the grant's cgroup, in percent.
// The home sets them below its own eviction threshold so park fires first.
PsiSomeAvg10Shed float32 `protobuf:"fixed32,4,opt,name=psi_some_avg10_shed,json=psiSomeAvg10Shed,proto3" json:"psi_some_avg10_shed,omitempty"`
PsiSomeAvg10Park float32 `protobuf:"fixed32,5,opt,name=psi_some_avg10_park,json=psiSomeAvg10Park,proto3" json:"psi_some_avg10_park,omitempty"`
Isolation Isolation `protobuf:"varint,6,opt,name=isolation,proto3,enum=fiberd.grant.v1.Isolation" json:"isolation,omitempty"`
EndpointMode EndpointMode `` /* 132-byte string literal not displayed */
// contains filtered or unexported fields
}
Policy is the per-grant session, durability, pressure, isolation and endpoint class.
func (*Policy) Descriptor
deprecated
func (*Policy) GetAuditClass ¶
func (*Policy) GetDurability ¶
func (x *Policy) GetDurability() Durability
func (*Policy) GetEndpointMode ¶
func (x *Policy) GetEndpointMode() EndpointMode
func (*Policy) GetIsolation ¶
func (*Policy) GetPsiSomeAvg10Park ¶
func (*Policy) GetPsiSomeAvg10Shed ¶
func (*Policy) GetSessionClass ¶
func (*Policy) ProtoMessage ¶
func (*Policy) ProtoMessage()
func (*Policy) ProtoReflect ¶
func (x *Policy) ProtoReflect() protoreflect.Message
type ReleaseRequest ¶
type ReleaseRequest struct {
FiberId string `protobuf:"bytes,1,opt,name=fiber_id,json=fiberId,proto3" json:"fiber_id,omitempty"`
// discard: also delete any parked delta for the fiber's session.
Discard bool `protobuf:"varint,2,opt,name=discard,proto3" json:"discard,omitempty"`
// contains filtered or unexported fields
}
func (*ReleaseRequest) Descriptor
deprecated
func (*ReleaseRequest) Descriptor() ([]byte, []int)
Deprecated: Use ReleaseRequest.ProtoReflect.Descriptor instead.
func (*ReleaseRequest) GetDiscard ¶
func (x *ReleaseRequest) GetDiscard() bool
func (*ReleaseRequest) GetFiberId ¶
func (x *ReleaseRequest) GetFiberId() string
func (*ReleaseRequest) ProtoMessage ¶
func (*ReleaseRequest) ProtoMessage()
func (*ReleaseRequest) ProtoReflect ¶
func (x *ReleaseRequest) ProtoReflect() protoreflect.Message
func (*ReleaseRequest) Reset ¶
func (x *ReleaseRequest) Reset()
func (*ReleaseRequest) String ¶
func (x *ReleaseRequest) String() string
type Status ¶
type Status struct {
GrantUid string `protobuf:"bytes,1,opt,name=grant_uid,json=grantUid,proto3" json:"grant_uid,omitempty"`
Running uint32 `protobuf:"varint,2,opt,name=running,proto3" json:"running,omitempty"`
Parked uint32 `protobuf:"varint,3,opt,name=parked,proto3" json:"parked,omitempty"`
WUsedBytes uint64 `protobuf:"varint,4,opt,name=w_used_bytes,json=wUsedBytes,proto3" json:"w_used_bytes,omitempty"`
Latest *Fence `protobuf:"bytes,5,opt,name=latest,proto3" json:"latest,omitempty"`
// pooled counts sandboxes restored ahead of a clone. They are inside
// fibers.max and not in running.
Pooled uint32 `protobuf:"varint,6,opt,name=pooled,proto3" json:"pooled,omitempty"`
// contains filtered or unexported fields
}
Status is the batched, per-grant view the home publishes. It is the only thing a control plane ever sees; never individual fibers.
func (*Status) Descriptor
deprecated
func (*Status) GetGrantUid ¶
func (*Status) GetRunning ¶
func (*Status) GetWUsedBytes ¶
func (*Status) ProtoMessage ¶
func (*Status) ProtoMessage()
func (*Status) ProtoReflect ¶
func (x *Status) ProtoReflect() protoreflect.Message
type Tier ¶
type Tier int32
Tier is the runtime capability a home advertises and a grant demands. A grant with min_tier above the home's tier is never satisfied by a lesser mechanism: Clone fails with FailedPrecondition, never a fresh fork.
const ( Tier_TIER_UNSPECIFIED Tier = 0 // Create a worker in an existing warm sandbox. Correct semantics, // pod-class latency. Every runtime qualifies. Tier_FIBER_BASIC Tier = 1 // Zygote fork, copy-on-write. Millisecond activation and density. // Single-tenant per grant by definition. Tier_FIBER_WARM Tier = 2 // Per-fiber delta checkpoint and restore. Park/resume, the session model. Tier_FIBER_CHECKPOINT Tier = 3 // MicroVM or gVisor snapshot-restore per fiber. Multi-tenant per node. Tier_FIBER_SNAPSHOT Tier = 4 )
func (Tier) Descriptor ¶
func (Tier) Descriptor() protoreflect.EnumDescriptor
func (Tier) EnumDescriptor
deprecated
func (Tier) Number ¶
func (x Tier) Number() protoreflect.EnumNumber
func (Tier) Type ¶
func (Tier) Type() protoreflect.EnumType
type UnimplementedFibersServer ¶
type UnimplementedFibersServer struct{}
UnimplementedFibersServer 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 (UnimplementedFibersServer) Clone ¶
func (UnimplementedFibersServer) Clone(context.Context, *CloneRequest) (*CloneResponse, error)
func (UnimplementedFibersServer) Discard ¶
func (UnimplementedFibersServer) Discard(context.Context, *DiscardRequest) (*emptypb.Empty, error)
func (UnimplementedFibersServer) Download ¶
func (UnimplementedFibersServer) Download(*DownloadRequest, grpc.ServerStreamingServer[FileChunk]) error
func (UnimplementedFibersServer) ListFiles ¶
func (UnimplementedFibersServer) ListFiles(context.Context, *ListFilesRequest) (*ListFilesResponse, error)
func (UnimplementedFibersServer) Park ¶
func (UnimplementedFibersServer) Park(context.Context, *ParkRequest) (*emptypb.Empty, error)
func (UnimplementedFibersServer) Release ¶
func (UnimplementedFibersServer) Release(context.Context, *ReleaseRequest) (*emptypb.Empty, error)
func (UnimplementedFibersServer) Upload ¶
func (UnimplementedFibersServer) Upload(grpc.ClientStreamingServer[UploadRequest, FileInfo]) error
func (UnimplementedFibersServer) Watch ¶
func (UnimplementedFibersServer) Watch(*emptypb.Empty, grpc.ServerStreamingServer[Status]) error
type UnsafeFibersServer ¶
type UnsafeFibersServer interface {
// contains filtered or unexported methods
}
UnsafeFibersServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to FibersServer will result in compilation errors.
type UploadHeader ¶
type UploadHeader struct {
FiberId string `protobuf:"bytes,1,opt,name=fiber_id,json=fiberId,proto3" json:"fiber_id,omitempty"`
// The file's path, relative to the fiber's /workspace.
Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
// The file's size in bytes, declared up front so the budget is
// reserved before any byte lands. The data chunks add up to it
// exactly. It must be set, and zero is an empty file.
Size *uint64 `protobuf:"varint,3,opt,name=size,proto3,oneof" json:"size,omitempty"`
// The file's permission bits. Zero means 0644.
Mode uint32 `protobuf:"varint,4,opt,name=mode,proto3" json:"mode,omitempty"`
// Optional SHA-256 of the content, checked before the file appears.
Sha256 []byte `protobuf:"bytes,5,opt,name=sha256,proto3" json:"sha256,omitempty"`
// contains filtered or unexported fields
}
UploadHeader opens an Upload. It is the stream's first message and the only header.
func (*UploadHeader) Descriptor
deprecated
func (*UploadHeader) Descriptor() ([]byte, []int)
Deprecated: Use UploadHeader.ProtoReflect.Descriptor instead.
func (*UploadHeader) GetFiberId ¶
func (x *UploadHeader) GetFiberId() string
func (*UploadHeader) GetMode ¶
func (x *UploadHeader) GetMode() uint32
func (*UploadHeader) GetPath ¶
func (x *UploadHeader) GetPath() string
func (*UploadHeader) GetSha256 ¶
func (x *UploadHeader) GetSha256() []byte
func (*UploadHeader) GetSize ¶
func (x *UploadHeader) GetSize() uint64
func (*UploadHeader) ProtoMessage ¶
func (*UploadHeader) ProtoMessage()
func (*UploadHeader) ProtoReflect ¶
func (x *UploadHeader) ProtoReflect() protoreflect.Message
func (*UploadHeader) Reset ¶
func (x *UploadHeader) Reset()
func (*UploadHeader) String ¶
func (x *UploadHeader) String() string
type UploadRequest ¶
type UploadRequest struct {
// Types that are valid to be assigned to Part:
//
// *UploadRequest_Header
// *UploadRequest_Data
Part isUploadRequest_Part `protobuf_oneof:"part"`
// contains filtered or unexported fields
}
UploadRequest is one message of an Upload stream. The first carries the header and every later one a data chunk of at most 1 MiB.
func (*UploadRequest) Descriptor
deprecated
func (*UploadRequest) Descriptor() ([]byte, []int)
Deprecated: Use UploadRequest.ProtoReflect.Descriptor instead.
func (*UploadRequest) GetData ¶
func (x *UploadRequest) GetData() []byte
func (*UploadRequest) GetHeader ¶
func (x *UploadRequest) GetHeader() *UploadHeader
func (*UploadRequest) GetPart ¶
func (x *UploadRequest) GetPart() isUploadRequest_Part
func (*UploadRequest) ProtoMessage ¶
func (*UploadRequest) ProtoMessage()
func (*UploadRequest) ProtoReflect ¶
func (x *UploadRequest) ProtoReflect() protoreflect.Message
func (*UploadRequest) Reset ¶
func (x *UploadRequest) Reset()
func (*UploadRequest) String ¶
func (x *UploadRequest) String() string
type UploadRequest_Data ¶
type UploadRequest_Data struct {
Data []byte `protobuf:"bytes,2,opt,name=data,proto3,oneof"`
}
type UploadRequest_Header ¶
type UploadRequest_Header struct {
Header *UploadHeader `protobuf:"bytes,1,opt,name=header,proto3,oneof"`
}