Kibotos
API 参考kibotos.ctrl.v1

kibotos.ctrl.v1 类型

本页列出 kibotos.ctrl.v1 中不专属于某个服务的消息与枚举,由 ctrl.proto 及其注释生成,注释保持英文。只有一个服务用到的消息与枚举在那个服务的页面上。

WorkspaceStop

WorkspaceStop is the stop that took the Workspace to STOPPING or STOPPED.

CommandMetadata

CommandMetadata makes every lifecycle mutation idempotent. Reusing a command_id with different input is a conflict.

TemplateRef

TemplateSelector

TemplateSelector is creation intent. An empty revision selects the current default; persisted and returned Workspace state always uses TemplateRef.

TemplateDeliveryObservation

ResourceRequest

  • cpu_millisuint32= 1
  • memory_bytesuint64= 2

    Guest RAM. It must be a whole number of MiB and at least 128 MiB, so the requested value is exactly what the execution receives. The upper bound is available capacity and is judged when an execution is placed.

  • Capacity of the Workspace's writable filesystem layer, which is also the disk capacity a placement reserves for it. There is one number, not a separate scheduling declaration: what is reserved is what the layer gets. In a creation request, zero delegates the choice to the storage profile of whatever runs the Workspace. A non-zero request must be a whole number of MiB. A returned Workspace reports the capacity it asked for; the capacity its layer actually has is the BEST_EFFORT retention tier's capacity_bytes, which is absent until the layer exists. ResizeWorkspaceWritableLayer is the only way this value changes after creation, and it only moves upward.

CapabilityRequirements

WorkspaceVolumeBinding

WorkspaceVolumeBinding is the Workspace's side of its Volume relationship. A Workspace that holds no execution can replace it through UpdateWorkspaceVolumeBinding; a Volume is never bound by more than one undeleted Workspace at a time.

  • volume_idstring= 1

    Required for BOUND and must be empty for NEW and NONE requests. Stored bindings carry the exact Volume ID for BOUND.

  • mount_pathstring= 3

    Absolute guest path the Volume is mounted at. Empty selects the default /data; it must be empty for NONE. Stored bindings always carry the exact path.

  • delete_with_workspaceoptionalbool= 4

    delete_with_workspace is a property of the binding, not of the Volume: DeleteWorkspace physically deletes the Volume when it is on and only releases the binding when it is off. A NEW request defaults it on, a BOUND request defaults it off, and NONE must leave it unset. Releasing the binding through UpdateWorkspaceVolumeBinding always keeps the Volume, whatever this says. A Volume a NEW request asked for that no launch has finished creating holds nothing to keep: DeleteWorkspace deletes it whatever this says. DeleteWorkspace touches only a Volume still bound to the Workspace it deletes. A failed RestoreWorkspace that holds no execution releases the imported Volume whatever this says. Stored bindings always carry an explicit value.

NetworkPolicy

NetworkPolicy is the expected egress policy of a Workspace. On input mode, allow, deny, egresses and resolvers are read; an unspecified mode selects DENY_ALL.

  • revisionuint64= 2

    revision is assigned by the server: it starts at 1 when the Workspace is created and increases by one each time the content changes. It is independent of Workspace.generation. The server ignores the value in a request, and two requests that differ only here are the same command.

  • allowrepeatedstring= 3

    allow and deny narrow PUBLIC_INTERNET by destination address. Each entry is one address or one CIDR in canonical text: no host bits set in a CIDR, no leading zeros, IPv6 in compressed lowercase form, no zone. An entry acts only on its own address family, so 0.0.0.0/0 leaves IPv6 open. A destination in allow is admitted even when deny also covers it; a destination only in deny is refused, whether it would leave directly or through an Egress; anything else follows the mode. For traffic that leaves directly the hard deny of private, local and platform ranges always wins, so entries in those ranges are valid and act only on traffic forwarded through an Egress. DNS queries to the link DNS address are never narrowed. DENY_ALL accepts no entries. The server keeps both lists in the order given, and a change to either one is a content change.

  • denyrepeatedstring= 4
  • egresses send part of PUBLIC_INTERNET through caller-owned Egresses. A new TCP connection the deny list does not refuse and whose destination an entry's destinations cover leaves through that entry's Egress, without the hard deny check; an ICMP echo request to such a destination is refused at once with administratively prohibited; everything else leaves directly. DNS queries to the link DNS address are not forwarded by destination; only resolvers sends them through an Egress. When forwarding fails the guest connection is reset and never falls back to leaving directly. At most one entry is accepted, and DENY_ALL accepts none. Adding, removing or replacing an entry, or changing its destinations, is a content change. A connection whose path the change moves keeps its old path for the drain_seconds of that UpdateWorkspaceNetworkPolicy call.

  • resolvers lists the upstreams the link DNS address forwards the guest's queries to, in place of the deployment resolvers. At most one entry is accepted, and DENY_ALL accepts none. When an upstream is unavailable the query is answered with SERVFAIL and never falls back to the deployment resolvers. Adding, removing or replacing an entry, or changing its path, is a content change.

NetworkPolicyResolver

NetworkPolicyResolver names one Resolver and the path its queries take.

  • resolver_idstring= 1

    resolver_id must name a Resolver that exists; a missing or deleted one is not_found.

  • path is required.

ResolverPath

ResolverPath is how the connections or datagrams to an upstream leave. Exactly one branch is selected; none is invalid_argument.

  • kind 中的一个
    • direct sends them from the host's own uplink address. The upstream address is checked against the fixed special-purpose ranges when the policy is set, and against the hard deny set on every dial.

    • egress_idstring= 2

      egress_id sends them through this Egress, which must be listed in the same policy's egresses, whether or not that entry's destinations cover the upstream; the upstream address is not checked and may be in the caller's private network. A udp Resolver requires the Egress to have udp_enabled.

ResolverDirectPath

ResolverDirectPath selects the direct path. It has no content.

此消息没有字段。

NetworkPolicyEgress

NetworkPolicyEgress names one Egress and the destinations that leave through it.

  • egress_idstring= 1

    egress_id must name an Egress that exists; a missing or deleted one is not_found.

  • destinationsrepeatedstring= 2

    destinations has 1 to 256 entries, each in the text of allow and deny and acting only on its own address family. Entries may name private and hard deny ranges. They are matched as a set, so order and duplicates do not change which connections are forwarded; the server keeps them in the order given, and reordering them is a content change but moves no connection.

NetworkPolicyStatus

NetworkPolicyStatus is the policy confirmed as applied for the current execution. It is absent until the first confirmation and after a failed application, so callers judge enforcement by applied_revision, never by an RPC having returned success.

  • egresses has one entry for each Egress the applied policy references, and is empty when it references none.

  • draining_revision is the earliest policy revision whose connections are still open on a path a later revision moved them off; they close when the drain_seconds of that change runs out. Zero when none are left.

  • resolvers has one entry for each entry of the applied policy's resolvers, identified by resolver_id and path, and is empty when it references none.

NetworkPolicyEgressStatus

NetworkPolicyEgressStatus is how one referenced Egress is in force.

  • egress_idstring= 1
  • applied_revision is the Egress revision new connections use. A value below Egress.revision means the update has not taken effect here yet; until it does, new connections keep using applied_revision.

  • draining_revision is the earliest earlier revision of this Egress that still carries open connections; they close when the drain_seconds of the update that replaced it runs out. Zero when none are left.

NetworkPolicyResolverStatus

NetworkPolicyResolverStatus is how one entry of the policy's resolvers is in force.

WorkspaceSpec

  • At most one Volume. The binding is set at creation and can be replaced through UpdateWorkspaceVolumeBinding while the Workspace holds no execution.

  • launch_refstring= 5

    launch_ref is the opaque identity of one exact launch: a Launch revision is immutable, but which one this Workspace is bound to can advance. An explicit StartWorkspace rebinds it to the current Platform default of the PlatformKey it is already on; every other path into a running state keeps the stored value. Its representation and backing artifact locations remain private.

  • network_policy always carries mode and revision. It is the expectation; Workspace.network_policy_status is the observation.

  • resources_revision starts at one and increases every time the stored resources change. It is the CAS token UpdateWorkspaceMemory expects.

  • launch_binding_version starts at one and advances only when an explicit start rebinds launch_ref. Comparing it across a stop/start says whether this Workspace changed Platform, without resolving launch_ref.

  • binding_revision starts at one and increases every time the stored Volume binding changes. It is the CAS token UpdateWorkspaceVolumeBinding expects and moves independently of resources_revision.

WorkspaceCreateSpec

WorkspaceCreateSpec separates unresolved creation intent from the exact TemplateRef stored in WorkspaceSpec.

WorkspaceFailure

RetentionTier

RetentionTier is a provider-neutral projection. Overlapping paths use the longest matching prefix; provider-private refs and layer identities are omitted.

Workspace

  • workspace_idstring= 1
  • created_atgoogle.protobuf.Timestamp= 5
  • updated_atgoogle.protobuf.Timestamp= 6
  • persistent_pathsrepeatedstring= 7

    Empty means the Workspace has no promised persistent path (NONE). A bound Volume yields exactly one value: its mount_path.

  • generationuint64= 8

    The number of times this Workspace has run. It starts at one when the first execution is available and increases after each successful start. It never exposes an implementation-private resource identity.

  • Exactly one PROMISED, BEST_EFFORT, and NONE entry is returned. The path shape is [mount_path] (empty and NOT_DECLARED without a Volume), /, and [/tmp, /run], respectively.

  • delivery is present while a Workspace waits for its Template artifacts to become locally usable. That wait is a transfer whose duration is proportional to artifact bytes, so "still arriving" must be distinguishable from "stuck" and from "failed". It is absent once the Workspace is available, and it carries no placement or infrastructure identity.

  • network_policy_status is present only while a verified policy is in force for the current execution. applied_revision below spec.network_policy.revision means a change was issued and not confirmed.

  • annotationsmap<string, string>= 13

    labels and annotations are caller-owned key-value data. ctrl never interprets either: it does not schedule, authorize, or bill on them. Both are visible to every caller that can read the resource, so neither may carry bearer credentials, keys, or values derived from them. Keys follow the Kubernetes qualified-name rules for both; label values follow the Kubernetes label-value rules, annotation values are any UTF-8 string without U+0000. Only labels can be selected on (label_selector); annotations are stored and returned verbatim and never indexed.

  • labelsmap<string, string>= 14
  • labels_revisionuint64= 15

    labels_revision starts at one and increases every time the stored labels change. It is the CAS token UpdateWorkspaceLabels expects and moves independently of every other revision.

  • annotations_revision is the same for annotations and UpdateWorkspaceAnnotations.

  • guest_observation is what the host running the current execution last reported about its guest. It is absent when there is no current execution or the host has not reported one yet. It is an observation, not a state: an UNRESPONSIVE guest leaves state, admission and expiration unchanged, and the guest may recover. Force stop recovers a guest that does not.

  • last_stop is present while the Workspace is STOPPING or STOPPED and names the stop that took it there. Start and delete clear it. A Workspace stopped by a release that did not record it has none.

  • egress_observations reports faults of the Egresses themselves, one entry for each Egress the current execution forwards through that is failing. It is empty when none is. It is an observation, not a state: it never changes state, and reading it never asks the host. A destination the Egress reports unreachable or refused is the result of one connection and is not an Egress fault.

  • resolver_observations reports faults of the upstream leg of the policy's resolvers, one entry for each failing entry, identified by resolver_id and path. It is empty when none is. A fault of the Egress a query goes through is reported in egress_observations, not here. It is an observation, not a state: it never changes state, and reading it never asks the host. An NXDOMAIN or SERVFAIL the upstream answers is a DNS result and not an upstream fault.

EgressObservation

EgressObservation is the current run of failures of one Egress. It stays the same while the failures continue and is cleared by the next connection that succeeds through the Egress.

  • egress_idstring= 1
  • failing_sincegoogle.protobuf.Timestamp= 3

    failing_since is when this run of consecutive failures began, on the clock of the host that observed it.

  • observed_atgoogle.protobuf.Timestamp= 4

    observed_at is when ctrl recorded this report, on ctrl's own clock.

ResolverObservation

ResolverObservation is the current run of failures of one entry of the policy's resolvers. It stays the same while the failures continue and is cleared by the next query that succeeds.

GuestObservation

  • observed_atgoogle.protobuf.Timestamp= 1

    observed_at is when ctrl recorded this report, on ctrl's own clock.

  • unresponsive_sincegoogle.protobuf.Timestamp= 3

    unresponsive_since is present only for UNRESPONSIVE: the first of the failed probes, on the clock of the host that probed.

  • errorstring= 4

    error is the latest probe failure; empty for RESPONDING.

  • rebootedbool= 5

    rebooted means the guest answered with a boot other than the one that started this execution.

  • memory_condition is the guest's latest judgment of its processes' memory. It is UNSPECIFIED, meaning unknown, whenever condition is not RESPONDING.

  • memory_saturated_sincegoogle.protobuf.Timestamp= 7

    memory_saturated_since is present only for SATURATED: when it began, on the clock of the host that probed.

  • memory_kill_count is how many of the processes the guest killed since it booted because they stayed saturated. It is zero for a guest that predates this report, which never kills. Unlike memory_condition it stands while the guest does not respond.

  • latest_memory_kill describes the latest of those kills; absent while memory_kill_count is zero.

  • restart_countuint32= 10

    restart_count is how many times this execution's guest reset itself and came back within the same execution. A later execution starts from zero. While the guest is coming back there is no observation at all, so it reads again once the guest answers.

  • last_reset_atgoogle.protobuf.Timestamp= 11

    last_reset_at is present only when restart_count is not zero: when the guest last reset its machine, on the clock of the host that saw it.

GuestMemoryKill

GuestMemoryKill is one process the guest killed with SIGKILL because the processes stayed saturated at their memory limit: the one with the largest resident set among them.

  • killed_atgoogle.protobuf.Timestamp= 1

    killed_at is on the clock of the host that probed the guest.

  • pidint32= 2
  • commandstring= 3

    command is the process's name as the guest kernel keeps it, without its arguments, and is at most a few dozen bytes.

  • rss_bytesuint64= 4
  • full_stall_permille is the share of the window, in thousandths, during which every process was stalled waiting for memory, when the guest decided.

  • windowgoogle.protobuf.Duration= 6

    window is the span full_stall_permille covers.

  • saturated_forgoogle.protobuf.Duration= 7

    saturated_for is how long saturation had lasted when the guest decided.

VolumeSpec

  • storage_poolstring= 4

    storage_pool names the storage this Volume lives in. Where a Volume lives decides where the Workspace bound to it can run, so a deployment that splits its storage exposes that choice here. An empty value in a creation request selects the deployment's default pool; a returned spec always names the resolved pool. It changes only when the deployment's operator moves the Volume to another pool, so a caller reads it from the Volume instead of keeping its own copy. Requires the volume.storage_pool capability.

  • In a creation request, zero delegates capacity selection to the configured storage profile. In a returned Volume it is never zero: it is the capacity the Volume actually has. ResizeVolume is the only way it changes, and it only ever grows. The historical result of the original CreateVolume keeps the value that creation returned.

VolumeFailure

Volume

  • volume_idstring= 1
  • created_atgoogle.protobuf.Timestamp= 5
  • updated_atgoogle.protobuf.Timestamp= 6
  • bound_workspace_id names the non-deleted Workspace whose spec binds this Volume. Empty when the Volume is free. Whether that Workspace deletes the Volume with itself is a property of its binding, not of the Volume.

  • annotationsmap<string, string>= 9

    labels and annotations have the same meaning, rules, and limits as on Workspace. Both remain readable after the Volume is deleted.

  • labelsmap<string, string>= 10
  • labels_revisionuint64= 11

    labels_revision is the CAS token UpdateVolumeLabels expects.

  • annotations_revision is the CAS token UpdateVolumeAnnotations expects.

  • observation is what the current holder of this Volume last reported about it. It is diagnostic: state is changed only by commands, and no admission reads the observation. It is kept as it was while nothing holds the Volume, so observed_at says how current it is. GetVolume and ListVolumes return it; command responses do not. Absent until a holder first reports.

VolumeObservation

TransferFailure

TransferManifest

TransferManifest is a provider-neutral summary. The internal artifact manifest may contain implementation-private data that is never projected.

Transfer

ErrorDetail

ErrorDetail is attached to a canonical Connect error. observed_workspace reports durable state after a mutation or a failed expiration precondition.

WorkspaceExpirationPolicy

WorkspaceExpiration

WorkspaceExpirationChange

WorkspaceExpirationChange is the one shape every entry point that can replace an already existing policy accepts. Creating entry points take a bare WorkspaceExpirationPolicy instead: they have nothing to clear.

WorkspaceState

  • WORKSPACE_STATE_UNSPECIFIED= 0
  • WORKSPACE_STATE_CREATING= 1
  • WORKSPACE_STATE_AVAILABLE= 2
  • WORKSPACE_STATE_STOPPING= 3
  • WORKSPACE_STATE_STOPPED= 4
  • WORKSPACE_STATE_STARTING= 5
  • WORKSPACE_STATE_DELETING= 6
  • WORKSPACE_STATE_DELETED= 7
  • WORKSPACE_STATE_FAILED= 8
  • WORKSPACE_STATE_UNKNOWN= 9

    UNKNOWN is an observed state. UNSPECIFIED means a field was not supplied.

GuestCondition

GuestCondition says whether the guest of the current execution still answers the periodic probe of the host that runs it.

  • GUEST_CONDITION_UNSPECIFIED= 0
  • GUEST_CONDITION_RESPONDING= 1
  • GUEST_CONDITION_UNRESPONSIVE= 2

GuestMemoryCondition

GuestMemoryCondition says whether the processes running in the guest of the current execution are held at their memory limit. The guest has no swap: at the limit the kernel keeps reclaiming the processes' own file pages, which they read straight back, so nothing is killed and the guest still answers while the processes make almost no progress.

  • GUEST_MEMORY_CONDITION_UNSPECIFIED= 0

    UNSPECIFIED means unknown, never normal: the guest's Platform or the host predates the report, the guest kernel does not account memory pressure, or the guest is unresponsive.

  • GUEST_MEMORY_CONDITION_NORMAL= 1

    NORMAL means the guest measures memory pressure and the processes are not held at their limit.

  • GUEST_MEMORY_CONDITION_SATURATED= 2

    SATURATED means that for a sustained window the processes spent most of the time with every one of them stalled waiting for memory. It clears on its own once demand falls. A guest that can kills the largest process when it lasts, and GuestObservation.memory_kill_count and latest_memory_kill report that; stopping and starting the Workspace recovers one that stays saturated regardless.

VolumeCondition

VolumeCondition is the holder's verdict on a Volume's data. DAMAGED means the holder could not open it as the Volume that was created.

  • VOLUME_CONDITION_UNSPECIFIED= 0
  • VOLUME_CONDITION_HEALTHY= 1
  • VOLUME_CONDITION_DAMAGED= 2

VolumeState

  • VOLUME_STATE_UNSPECIFIED= 0
  • VOLUME_STATE_CREATING= 1
  • VOLUME_STATE_AVAILABLE= 2
  • VOLUME_STATE_ATTACHED= 3
  • VOLUME_STATE_DELETING= 4
  • VOLUME_STATE_DELETED= 5
  • VOLUME_STATE_FAILED= 6
  • VOLUME_STATE_UNKNOWN= 7
  • VOLUME_STATE_RESIZING= 8

    RESIZING is held for the duration of a capacity change. It is not AVAILABLE: no attachment and no new binding is admitted until the change commits, and a query during it is not a plain success.

  • VOLUME_STATE_LOST= 9

    LOST means an operator declared the Volume's storage pool lost. Its data is gone and never replaced with an empty Volume: the Volume can be read and deleted, and every other operation fails as failed_precondition. A Workspace bound to it fails to start with FAILURE_REASON_VOLUME_LOST until it is bound to another Volume or deleted.

Completeness

  • COMPLETENESS_UNSPECIFIED= 0
  • COMPLETENESS_COMPLETE= 1
  • COMPLETENESS_PARTIAL= 2
  • COMPLETENESS_UNKNOWN= 3

TemplateDeliveryState

  • TEMPLATE_DELIVERY_STATE_UNSPECIFIED= 0
  • TEMPLATE_DELIVERY_STATE_READY= 1
  • TEMPLATE_DELIVERY_STATE_NOT_READY= 2
  • TEMPLATE_DELIVERY_STATE_UNKNOWN= 3

TemplateDeliveryReason

  • TEMPLATE_DELIVERY_REASON_UNSPECIFIED= 0
  • TEMPLATE_DELIVERY_REASON_DISTRIBUTING= 1
  • TEMPLATE_DELIVERY_REASON_CAPABILITY_MISMATCH= 2
  • TEMPLATE_DELIVERY_REASON_NO_SUPPORTED_PATH= 3
  • TEMPLATE_DELIVERY_REASON_OBSERVATION_STALE= 4
  • TEMPLATE_DELIVERY_REASON_PREPARATION_FAILED= 5

TransferState

  • TRANSFER_STATE_UNSPECIFIED= 0
  • TRANSFER_STATE_EXPORTING= 1
  • TRANSFER_STATE_COMPLETE= 2
  • TRANSFER_STATE_IMPORTING= 3
  • TRANSFER_STATE_IMPORTED= 4
  • TRANSFER_STATE_RESTORING= 5
  • TRANSFER_STATE_RESTORED= 6
  • TRANSFER_STATE_DELETING= 7
  • TRANSFER_STATE_DELETED= 8
  • TRANSFER_STATE_FAILED= 9
  • TRANSFER_STATE_UNKNOWN= 10
  • TRANSFER_STATE_EXPIRED= 11

StopDurability

StopDurability reports whether a completed stop confirmed writeback. It is a fact about that stop command only; it does not change retention tiers. The zero value means the stop has not completed yet, or that it completed on a release earlier than v0.1.0, where every stop was a normal stop.

  • STOP_DURABILITY_UNSPECIFIED= 0
  • STOP_DURABILITY_CONFIRMED= 1
  • STOP_DURABILITY_UNCONFIRMED= 2

StopCause

StopCause is who or what stopped a Workspace.

  • STOP_CAUSE_UNSPECIFIED= 0

    Stops completed by a release that did not record a cause.

  • STOP_CAUSE_REQUESTED= 1

    A caller's StopWorkspace, in either mode.

  • STOP_CAUSE_EXPIRED= 2

    The Workspace's expiration policy.

  • STOP_CAUSE_HOST_MEMORY_EXHAUSTED= 3

    The host ran out of memory and its OOM killer ended the execution. ctrl released it as a forced stop, so a caller can start the Workspace again.

  • STOP_CAUSE_GUEST_SHUTDOWN= 4

    The guest shut its machine down. ctrl released the execution as a forced stop, so a caller can start the Workspace again.

RetentionTierKind

  • RETENTION_TIER_KIND_UNSPECIFIED= 0
  • RETENTION_TIER_KIND_PROMISED= 1
  • RETENTION_TIER_KIND_BEST_EFFORT= 2
  • RETENTION_TIER_KIND_NONE= 3

RetentionAvailability

  • RETENTION_AVAILABILITY_UNSPECIFIED= 0
  • RETENTION_AVAILABILITY_AVAILABLE= 1
  • RETENTION_AVAILABILITY_UNAVAILABLE= 2
  • RETENTION_AVAILABILITY_NOT_DECLARED= 3

    NOT_DECLARED is returned for the PROMISED tier of a Workspace created without a Volume: the caller declared no promised persistent path.

RetentionContinuity

  • RETENTION_CONTINUITY_UNSPECIFIED= 0
  • RETENTION_CONTINUITY_CONTINUED= 1
  • RETENTION_CONTINUITY_RESET= 2
  • RETENTION_CONTINUITY_UNKNOWN= 3

RetentionResetReason

  • RETENTION_RESET_REASON_UNSPECIFIED= 0
  • RETENTION_RESET_REASON_FIRST_START= 1
  • RETENTION_RESET_REASON_LAYER_UNAVAILABLE= 2
  • RETENTION_RESET_REASON_TEMPLATE_CHANGED= 3

ReestablishRequirement

  • REESTABLISH_REQUIREMENT_UNSPECIFIED= 0
  • REESTABLISH_REQUIREMENT_DATA_PLANE_SESSION= 1
  • REESTABLISH_REQUIREMENT_CREDENTIAL= 2
  • REESTABLISH_REQUIREMENT_PROCESS= 3
  • REESTABLISH_REQUIREMENT_LOGIN_STATE= 5

FailureReason

  • FAILURE_REASON_UNSPECIFIED= 0
  • FAILURE_REASON_INVALID_REQUEST= 1
  • FAILURE_REASON_NOT_FOUND= 2
  • FAILURE_REASON_CONFLICT= 3
  • FAILURE_REASON_RESOURCE_EXHAUSTED= 4
  • FAILURE_REASON_CAPABILITY_UNAVAILABLE= 5
  • FAILURE_REASON_UNAUTHENTICATED= 6
  • FAILURE_REASON_PERMISSION_DENIED= 7
  • FAILURE_REASON_UNAVAILABLE= 8
  • FAILURE_REASON_TIMED_OUT= 9
  • FAILURE_REASON_PROTOCOL_INCOMPATIBLE= 10
  • FAILURE_REASON_SESSION_EXPIRED= 11
  • FAILURE_REASON_SESSION_REVOKED= 12
  • FAILURE_REASON_UNSUPPORTED= 13
  • FAILURE_REASON_CANCELLED= 14
  • FAILURE_REASON_INTERNAL= 15
  • FAILURE_REASON_VOLUME_LOST= 16

    VOLUME_LOST is not retryable: the Volume a Workspace is bound to is VOLUME_STATE_LOST. Bind another Volume or delete the Workspace.

FailureStage

  • FAILURE_STAGE_UNSPECIFIED= 0
  • FAILURE_STAGE_VALIDATING= 1
  • FAILURE_STAGE_PLACING= 2
  • FAILURE_STAGE_CREATING= 3
  • FAILURE_STAGE_WAITING_FOR_READINESS= 4
  • FAILURE_STAGE_STOPPING= 5
  • FAILURE_STAGE_STARTING= 6
  • FAILURE_STAGE_DELETING= 7
  • FAILURE_STAGE_ISSUING_SESSION= 8
  • FAILURE_STAGE_AUTHORIZING_DATA_PLANE= 9
  • FAILURE_STAGE_READING_FILE= 10
  • FAILURE_STAGE_WRITING_FILE= 11
  • FAILURE_STAGE_DELETING_FILE= 12
  • FAILURE_STAGE_STARTING_PROCESS= 13
  • FAILURE_STAGE_STREAMING_PROCESS= 14
  • FAILURE_STAGE_CREATING_VOLUME= 17
  • FAILURE_STAGE_DELETING_VOLUME= 18
  • FAILURE_STAGE_EXPORTING_WORKSPACE= 19
  • FAILURE_STAGE_IMPORTING_TRANSFER= 20
  • FAILURE_STAGE_RESTORING_WORKSPACE= 21
  • FAILURE_STAGE_DELETING_TRANSFER= 22
  • FAILURE_STAGE_OBSERVING_CLEANUP= 23
  • FAILURE_STAGE_USING_PROCESS= 29
  • FAILURE_STAGE_ROTATING_DATA_PLANE= 30
  • FAILURE_STAGE_INSPECTING_FILE= 31
  • FAILURE_STAGE_MOVING_FILE= 32
  • FAILURE_STAGE_CREATING_DIRECTORY= 33
  • FAILURE_STAGE_APPLYING_NETWORK= 34
  • FAILURE_STAGE_CONNECTING_SERVICE= 35
  • FAILURE_STAGE_USING_SERVICE= 36
  • FAILURE_STAGE_RESIZING_VOLUME= 37
  • FAILURE_STAGE_RESIZING_WRITABLE_LAYER= 38
  • FAILURE_STAGE_CAPTURING_SCREEN= 39
  • FAILURE_STAGE_DELIVERING_INPUT= 40
  • FAILURE_STAGE_CREATING_EXPOSURE= 41
  • FAILURE_STAGE_REVOKING_EXPOSURE= 42
  • FAILURE_STAGE_WATCHING_DIRECTORY= 43
  • FAILURE_STAGE_READING_METRICS= 44

WorkspaceVolumeMode

WorkspaceVolumeMode names where a Workspace's promised persistent Volume comes from. NEW is a request-only source: a stored binding is BOUND or NONE.

  • WORKSPACE_VOLUME_MODE_UNSPECIFIED= 0

    In a creation request UNSPECIFIED means NEW. Stored specs always carry an exact mode.

  • WORKSPACE_VOLUME_MODE_NEW= 1

    NEW: ctrl creates a Volume and binds it, with delete_with_workspace on unless the request says otherwise. Only CreateWorkspace accepts it.

  • WORKSPACE_VOLUME_MODE_BOUND= 2

    BOUND: the Workspace is bound to an existing Volume named by volume_id.

  • WORKSPACE_VOLUME_MODE_NONE= 3

    NONE: the Workspace has no Volume and no promised persistent path.

NetworkPolicyMode

NetworkPolicyMode is the Workspace's egress posture. DENY_ALL is the default and is not changed by deployment configuration. PUBLIC_INTERNET allows guest-initiated TCP and ICMP echo requests to public destinations over IPv4 and IPv6, and the replies to them; the hard deny of private, local, and platform address ranges applies under both to traffic that leaves directly. Connections forwarded through an Egress leave from the caller's network and are not subject to it.

A guest sends DNS only to the link DNS address, the only nameserver of a newly started guest: the gateway address of its network slot in the family of the first deployment resolver (fe80::1 for IPv6). Under DENY_ALL a query to it fails at once and no packet leaves the slot. Under PUBLIC_INTERNET it goes to the first deployment resolver of the same family, or to the Resolver the policy references. allow, deny and egresses never act on these queries, and changing the policy never rewrites the guest's nameserver.

  • NETWORK_POLICY_MODE_UNSPECIFIED= 0
  • NETWORK_POLICY_MODE_DENY_ALL= 1
  • NETWORK_POLICY_MODE_PUBLIC_INTERNET= 2

EgressObservationKind

EgressObservationKind is why connections through an Egress fail before they reach a destination. Values will be added: a caller treats a value it does not know as a fault of the Egress, never as no fault.

  • EGRESS_OBSERVATION_KIND_UNSPECIFIED= 0
  • EGRESS_OBSERVATION_KIND_ENDPOINT_UNREACHABLE= 1

    ENDPOINT_UNREACHABLE: the endpoint could not be connected to, or every address its hostname resolved to was removed by the dial check.

  • EGRESS_OBSERVATION_KIND_TLS_VERIFICATION_FAILED= 2

    TLS_VERIFICATION_FAILED: the endpoint certificate is not trusted or does not match server_name.

  • EGRESS_OBSERVATION_KIND_HANDSHAKE_FAILED= 3

    HANDSHAKE_FAILED: the protocol negotiation failed, the endpoint answered with something invalid, or it timed out.

  • EGRESS_OBSERVATION_KIND_AUTHENTICATION_FAILED= 4

    AUTHENTICATION_FAILED: the endpoint explicitly rejected the credentials. Its absence does not mean the credentials are right: an endpoint that does not answer wrong credentials shows as ENDPOINT_UNREACHABLE or HANDSHAKE_FAILED.

  • EGRESS_OBSERVATION_KIND_UDP_ASSOCIATION_FAILED= 5

    UDP_ASSOCIATION_FAILED: the endpoint refused a UDP association, the dial check removed the relay address it answered, or sending to the relay reported it unreachable.

ResolverObservationKind

ResolverObservationKind is why queries to an upstream fail. Values will be added: a caller treats a value it does not know as a fault of the upstream, never as no fault.

  • RESOLVER_OBSERVATION_KIND_UNSPECIFIED= 0
  • RESOLVER_OBSERVATION_KIND_UPSTREAM_UNREACHABLE= 1

    UPSTREAM_UNREACHABLE: the upstream could not be connected to, or on the direct path the dial check removed every address it resolved to.

  • RESOLVER_OBSERVATION_KIND_UPSTREAM_TIMEOUT= 2

    UPSTREAM_TIMEOUT: the upstream did not answer within the query deadline.

  • RESOLVER_OBSERVATION_KIND_TLS_VERIFICATION_FAILED= 3

    TLS_VERIFICATION_FAILED: the certificate of a tls or https upstream is not trusted or does not match its host.

  • RESOLVER_OBSERVATION_KIND_HTTP_ERROR_STATUS= 4

    HTTP_ERROR_STATUS: an https upstream answered with a status outside 2xx.

WorkspaceExpirationAction

Expiration is a ctrl-owned absolute deadline, independent of execution generation.

  • WORKSPACE_EXPIRATION_ACTION_UNSPECIFIED= 0
  • WORKSPACE_EXPIRATION_ACTION_STOP= 1
  • WORKSPACE_EXPIRATION_ACTION_DELETE= 2

本页内容