Get desktop application:
View/edit binary Protocol Buffers messages
ImageService defines the public APIs for managing images.
ListImages lists existing images.
Filter to list images.
List of images.
ImageStatus returns the status of the image. If the image is not present, returns a response with ImageStatusResponse.Image set to nil.
Spec of the image.
Verbose indicates whether to return extra information about the image.
Status of the image.
Info is extra information of the Image. The key could be arbitrary string, and value should be in json format. The information could include anything useful for debug, e.g. image config for oci image based container runtime. It should only be returned non-empty when Verbose is true.
PullImage pulls an image with authentication config.
Spec of the image.
Authentication configuration for pulling the image.
Config of the PodSandbox, which is used to pull image in PodSandbox context.
Reference to the image in use. For most runtimes, this should be an image ID or digest.
RemoveImage removes the image. This call is idempotent, and must not return an error if the image has already been removed.
Spec of the image to remove.
(message has no fields)
ImageFSInfo returns information of the filesystem that is used to store images.
(message has no fields)
Information of image filesystem(s).
Runtime service defines the public APIs for remote container runtimes
Version returns the runtime name, runtime version, and runtime API version.
Version of the kubelet runtime API.
Version of the kubelet runtime API.
Name of the container runtime.
Version of the container runtime. The string must be semver-compatible.
API version of the container runtime. The string must be semver-compatible.
RunPodSandbox creates and starts a pod-level sandbox. Runtimes must ensure the sandbox is in the ready state on success.
Configuration for creating a PodSandbox.
Named runtime configuration to use for this PodSandbox. If the runtime handler is unknown, this request should be rejected. An empty string should select the default handler, equivalent to the behavior before this feature was added. See https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class
ID of the PodSandbox to run.
StopPodSandbox stops any running process that is part of the sandbox and reclaims network resources (e.g., IP addresses) allocated to the sandbox. If there are any running containers in the sandbox, they must be forcibly terminated. This call is idempotent, and must not return an error if all relevant resources have already been reclaimed. kubelet will call StopPodSandbox at least once before calling RemovePodSandbox. It will also attempt to reclaim resources eagerly, as soon as a sandbox is not needed. Hence, multiple StopPodSandbox calls are expected.
ID of the PodSandbox to stop.
(message has no fields)
RemovePodSandbox removes the sandbox. If there are any running containers in the sandbox, they must be forcibly terminated and removed. This call is idempotent, and must not return an error if the sandbox has already been removed.
ID of the PodSandbox to remove.
(message has no fields)
PodSandboxStatus returns the status of the PodSandbox. If the PodSandbox is not present, returns an error.
ID of the PodSandbox for which to retrieve status.
Verbose indicates whether to return extra information about the pod sandbox.
Status of the PodSandbox.
Info is extra information of the PodSandbox. The key could be arbitrary string, and value should be in json format. The information could include anything useful for debug, e.g. network namespace for linux container based container runtime. It should only be returned non-empty when Verbose is true.
Container statuses
Timestamp at which container and pod statuses were recorded
ListPodSandbox returns a list of PodSandboxes.
PodSandboxFilter to filter a list of PodSandboxes.
List of PodSandboxes.
CreateContainer creates a new container in specified PodSandbox
ID of the PodSandbox in which the container should be created.
Config of the container.
Config of the PodSandbox. This is the same config that was passed to RunPodSandboxRequest to create the PodSandbox. It is passed again here just for easy reference. The PodSandboxConfig is immutable and remains the same throughout the lifetime of the pod.
ID of the created container.
StartContainer starts the container.
ID of the container to start.
(message has no fields)
StopContainer stops a running container with a grace period (i.e., timeout). This call is idempotent, and must not return an error if the container has already been stopped. The runtime must forcibly kill the container after the grace period is reached.
ID of the container to stop.
Timeout in seconds to wait for the container to stop before forcibly terminating it. Default: 0 (forcibly terminate the container immediately)
(message has no fields)
RemoveContainer removes the container. If the container is running, the container must be forcibly removed. This call is idempotent, and must not return an error if the container has already been removed.
ID of the container to remove.
(message has no fields)
ListContainers lists all containers by filters.
List of containers.
ContainerStatus returns status of the container. If the container is not present, returns an error.
ID of the container for which to retrieve status.
Verbose indicates whether to return extra information about the container.
Status of the container.
Info is extra information of the Container. The key could be arbitrary string, and value should be in json format. The information could include anything useful for debug, e.g. pid for linux container based container runtime. It should only be returned non-empty when Verbose is true.
UpdateContainerResources updates ContainerConfig of the container synchronously. If runtime fails to transactionally update the requested resources, an error is returned.
ID of the container to update.
Resource configuration specific to Linux containers.
Resource configuration specific to Windows containers.
Unstructured key-value map holding arbitrary additional information for container resources updating. This can be used for specifying experimental resources to update or other options to use when updating the container.
(message has no fields)
ReopenContainerLog asks runtime to reopen the stdout/stderr log file for the container. This is often called after the log file has been rotated. If the container is not running, container runtime can choose to either create a new log file and return nil, or return an error. Once it returns error, new container log file MUST NOT be created.
ID of the container for which to reopen the log.
(message has no fields)
ExecSync runs a command in a container synchronously.
ID of the container.
Command to execute.
Timeout in seconds to stop the command. Default: 0 (run forever).
Captured command stdout output.
Captured command stderr output.
Exit code the command finished with. Default: 0 (success).
Exec prepares a streaming endpoint to execute a command in the container.
ID of the container in which to execute the command.
Command to execute.
Whether to exec the command in a TTY.
Whether to stream stdin. One of `stdin`, `stdout`, and `stderr` MUST be true.
Whether to stream stdout. One of `stdin`, `stdout`, and `stderr` MUST be true.
Whether to stream stderr. One of `stdin`, `stdout`, and `stderr` MUST be true. If `tty` is true, `stderr` MUST be false. Multiplexing is not supported in this case. The output of stdout and stderr will be combined to a single stream.
Fully qualified URL of the exec streaming server.
Attach prepares a streaming endpoint to attach to a running container.
ID of the container to which to attach.
Whether to stream stdin. One of `stdin`, `stdout`, and `stderr` MUST be true.
Whether the process being attached is running in a TTY. This must match the TTY setting in the ContainerConfig.
Whether to stream stdout. One of `stdin`, `stdout`, and `stderr` MUST be true.
Whether to stream stderr. One of `stdin`, `stdout`, and `stderr` MUST be true. If `tty` is true, `stderr` MUST be false. Multiplexing is not supported in this case. The output of stdout and stderr will be combined to a single stream.
Fully qualified URL of the attach streaming server.
PortForward prepares a streaming endpoint to forward ports from a PodSandbox.
ID of the container to which to forward the port.
Port to forward.
Fully qualified URL of the port-forward streaming server.
ContainerStats returns stats of the container. If the container does not exist, the call returns an error.
ID of the container for which to retrieve stats.
Stats of the container.
ListContainerStats returns stats of all running containers.
Filter for the list request.
Stats of the container.
PodSandboxStats returns stats of the pod sandbox. If the pod sandbox does not exist, the call returns an error.
ID of the pod sandbox for which to retrieve stats.
ListPodSandboxStats returns stats of the pod sandboxes matching a filter.
Filter for the list request.
Stats of the pod sandbox.
UpdateRuntimeConfig updates the runtime configuration based on the given request.
(message has no fields)
Status returns the status of the runtime.
Verbose indicates whether to return extra information about the runtime.
Status of the Runtime.
Info is extra information of the Runtime. The key could be arbitrary string, and value should be in json format. The information could include anything useful for debug, e.g. plugins used by the container runtime. It should only be returned non-empty when Verbose is true.
CheckpointContainer checkpoints a container
ID of the container to be checkpointed.
Location of the checkpoint archive used for export
Timeout in seconds for the checkpoint to complete. Timeout of zero means to use the CRI default. Timeout > 0 means to use the user specified timeout.
(message has no fields)
GetContainerEvents gets container events from the CRI runtime
(message has no fields)
ID of the container
Type of the container event
Creation timestamp of this event
Sandbox status
Container statuses
ListMetricDescriptors gets the descriptors for the metrics that will be returned in ListPodSandboxMetrics. This list should be static at startup: either the client and server restart together when adding or removing metrics descriptors, or they should not change. Put differently, if ListPodSandboxMetrics references a name that is not described in the initial ListMetricDescriptors call, then the metric will not be broadcasted.
(message has no fields)
ListPodSandboxMetrics gets pod sandbox metrics from CRI Runtime
(message has no fields)
AuthConfig contains authorization information for connecting to a registry.
Used in:
IdentityToken is used to authenticate the user and get an access token for the registry.
RegistryToken is a bearer token to be sent to a registry
Capability contains the container capabilities to add or drop Dropping a capability will drop it from all sets. If a capability is added to only the add_capabilities list then it gets added to permitted, inheritable, effective and bounding sets, i.e. all sets except the ambient set. If a capability is added to only the add_ambient_capabilities list then it gets added to all sets, i.e permitted inheritable, effective, bounding and ambient sets. If a capability is added to add_capabilities and add_ambient_capabilities lists then it gets added to all sets, i.e. permitted, inheritable, effective, bounding and ambient sets.
Used in:
List of capabilities to add.
List of capabilities to drop.
List of ambient capabilities to add.
Container provides the runtime information for a container, such as ID, hash, state of the container.
Used in:
ID of the container, used by the container runtime to identify a container.
ID of the sandbox to which this container belongs.
Metadata of the container.
Spec of the image.
Reference to the image in use. For most runtimes, this should be an image ID.
State of the container.
Creation time of the container in nanoseconds.
Key-value pairs that may be used to scope and select individual resources.
Unstructured key-value map holding arbitrary metadata. Annotations MUST NOT be altered by the runtime; the value of this field MUST be identical to that of the corresponding ContainerConfig used to instantiate this Container.
ContainerAttributes provides basic information of the container.
Used in:
,ID of the container.
Metadata of the container.
Key-value pairs that may be used to scope and select individual resources.
Unstructured key-value map holding arbitrary metadata. Annotations MUST NOT be altered by the runtime; the value of this field MUST be identical to that of the corresponding ContainerConfig used to instantiate the Container this status represents.
ContainerConfig holds all the required and optional fields for creating a container.
Used in:
Metadata of the container. This information will uniquely identify the container, and the runtime should leverage this to ensure correct operation. The runtime may also use this information to improve UX, such as by constructing a readable name.
Image to use.
Command to execute (i.e., entrypoint for docker)
Args for the Command (i.e., command for docker)
Current working directory of the command.
List of environment variable to set in the container.
Mounts for the container.
Devices for the container.
Key-value pairs that may be used to scope and select individual resources. Label keys are of the form: label-key ::= prefixed-name | name prefixed-name ::= prefix '/' name prefix ::= DNS_SUBDOMAIN name ::= DNS_LABEL
Unstructured key-value map that may be used by the kubelet to store and retrieve arbitrary metadata. Annotations MUST NOT be altered by the runtime; the annotations stored here MUST be returned in the ContainerStatus associated with the container this ContainerConfig creates. In general, in order to preserve a well-defined interface between the kubelet and the container runtime, annotations SHOULD NOT influence runtime behaviour.
Path relative to PodSandboxConfig.LogDirectory for container to store the log (STDOUT and STDERR) on the host. E.g., PodSandboxConfig.LogDirectory = `/var/log/pods/<podUID>/` ContainerConfig.LogPath = `containerName/Instance#.log` WARNING: Log management and how kubelet should interface with the container logs are under active discussion in https://issues.k8s.io/24677. There *may* be future change of direction for logging as the discussion carries on.
Variables for interactive containers, these have very specialized use-cases (e.g. debugging).
Configuration specific to Linux containers.
Configuration specific to Windows containers.
Used in:
Container created
Container started
Container stopped
Container deleted
ContainerFilter is used to filter containers. All those fields are combined with 'AND'
Used in:
ID of the container.
State of the container.
ID of the PodSandbox.
LabelSelector to select matches. Only api.MatchLabels is supported for now and the requirements are ANDed. MatchExpressions is not supported yet.
ContainerMetadata holds all necessary information for building the container name. The container runtime is encouraged to expose the metadata in its user interface for better user experience. E.g., runtime can construct a unique container name based on the metadata. Note that (name, attempt) is unique within a sandbox for the entire lifetime of the sandbox.
Used in:
, , ,Name of the container. Same as the container name in the PodSpec.
Attempt number of creating the container. Default: 0.
Used in:
ContainerResources holds resource limits configuration for a container.
Used in:
Resource limits configuration specific to Linux container.
Resource limits configuration specific to Windows container.
Used in:
, ,ContainerStateValue is the wrapper of ContainerState.
Used in:
State of the container.
ContainerStats provides the resource usage statistics for a container.
Used in:
, ,Information of the container.
CPU usage gathered from the container.
Memory usage gathered from the container.
Usage of the writable layer.
ContainerStatsFilter is used to filter containers. All those fields are combined with 'AND'
Used in:
ID of the container.
ID of the PodSandbox.
LabelSelector to select matches. Only api.MatchLabels is supported for now and the requirements are ANDed. MatchExpressions is not supported yet.
ContainerStatus represents the status of a container.
Used in:
, ,ID of the container.
Metadata of the container.
Status of the container.
Creation time of the container in nanoseconds.
Start time of the container in nanoseconds. Default: 0 (not specified).
Finish time of the container in nanoseconds. Default: 0 (not specified).
Exit code of the container. Only required when finished_at != 0. Default: 0.
Spec of the image.
Reference to the image in use. For most runtimes, this should be an image ID
Brief CamelCase string explaining why container is in its current state.
Human-readable message indicating details about why container is in its current state.
Key-value pairs that may be used to scope and select individual resources.
Unstructured key-value map holding arbitrary metadata. Annotations MUST NOT be altered by the runtime; the value of this field MUST be identical to that of the corresponding ContainerConfig used to instantiate the Container this status represents.
Mounts for the container.
Log path of container.
Resource limits configuration of the container.
CpuUsage provides the CPU usage information.
Used in:
,Timestamp in nanoseconds at which the information were collected. Must be > 0.
Cumulative CPU usage (sum across all cores) since object creation.
Total CPU usage (sum of all cores) averaged over the sample window. The "core" unit can be interpreted as CPU core-nanoseconds per second.
DNSConfig specifies the DNS servers and search domains of a sandbox.
Used in:
List of DNS servers of the cluster.
List of DNS search domains of the cluster.
List of DNS options. See https://linux.die.net/man/5/resolv.conf for all available options.
Device specifies a host device to mount into a container.
Used in:
Path of the device within the container.
Path of the device on the host.
Cgroups permissions of the device, candidates are one or more of * r - allows container to read from the specified device. * w - allows container to write to the specified device. * m - allows container to create device files that do not yet exist.
FilesystemIdentifier uniquely identify the filesystem.
Used in:
,Mountpoint of a filesystem.
FilesystemUsage provides the filesystem usage information.
Used in:
,Timestamp in nanoseconds at which the information were collected. Must be > 0.
The unique identifier of the filesystem.
UsedBytes represents the bytes used for images on the filesystem. This may differ from the total bytes used on the filesystem and may not equal CapacityBytes - AvailableBytes.
InodesUsed represents the inodes used by the images. This may not equal InodesCapacity - InodesAvailable because the underlying filesystem may also be used for purposes other than storing images.
HugepageLimit corresponds to the file`hugetlb.<hugepagesize>.limit_in_byte` in container level cgroup. For example, `PageSize=1GB`, `Limit=1073741824` means setting `1073741824` bytes to hugetlb.1GB.limit_in_bytes.
Used in:
The value of PageSize has the format <size><unit-prefix>B (2MB, 1GB), and must match the <hugepagesize> of the corresponding control file found in `hugetlb.<hugepagesize>.limit_in_bytes`. The values of <unit-prefix> are intended to be parsed using base 1024("1KB" = 1024, "1MB" = 1048576, etc).
limit in bytes of hugepagesize HugeTLB usage.
IDMapping describes host to container ID mappings for a pod sandbox.
Used in:
HostId is the id on the host.
ContainerId is the id in the container.
Length is the size of the range to map.
Basic information about a container image.
Used in:
,ID of the image.
Other names by which this image is known.
Digests by which this image is known.
Size of the image in bytes. Must be > 0.
UID that will run the command(s). This is used as a default if no user is specified when creating the container. UID and the following user name are mutually exclusive.
User name that will run the command(s). This is used if UID is not set and no user is specified when creating container.
ImageSpec for image which includes annotations
Recommendation on whether this image should be exempt from garbage collection. It must only be treated as a recommendation -- the client can still request that the image be deleted, and the runtime must oblige.
Used in:
Spec of the image.
ImageSpec is an internal representation of an image.
Used in:
, , , , , , ,Container's Image field (e.g. imageID or imageDigest).
Unstructured key-value map holding arbitrary metadata. ImageSpec Annotations can be used to help the runtime target specific images in multi-arch images.
Int64Value is the wrapper of int64.
Used in:
, ,The value.
Used in:
LinuxContainerConfig contains platform-specific configuration for Linux-based containers.
Used in:
Resources specification for the container.
LinuxContainerSecurityContext configuration for the container.
LinuxContainerResources specifies Linux specific configuration for resources.
Used in:
, , ,CPU CFS (Completely Fair Scheduler) period. Default: 0 (not specified).
CPU CFS (Completely Fair Scheduler) quota. Default: 0 (not specified).
CPU shares (relative weight vs. other containers). Default: 0 (not specified).
Memory limit in bytes. Default: 0 (not specified).
OOMScoreAdj adjusts the oom-killer score. Default: 0 (not specified).
CpusetCpus constrains the allowed set of logical CPUs. Default: "" (not specified).
CpusetMems constrains the allowed set of memory nodes. Default: "" (not specified).
List of HugepageLimits to limit the HugeTLB usage of container per page size. Default: nil (not specified).
Unified resources for cgroup v2. Default: nil (not specified). Each key/value in the map refers to the cgroup v2. e.g. "memory.max": "6937202688" or "io.weight": "default 100".
Memory swap limit in bytes. Default 0 (not specified).
LinuxContainerSecurityContext holds linux security configuration that will be applied to a container.
Used in:
Capabilities to add or drop.
If set, run container in privileged mode. Privileged mode is incompatible with the following options. If privileged is set, the following features MAY have no effect: 1. capabilities 2. selinux_options 4. seccomp 5. apparmor Privileged mode implies the following specific options are applied: 1. All capabilities are added. 2. Sensitive paths, such as kernel module paths within sysfs, are not masked. 3. Any sysfs and procfs mounts are mounted RW. 4. AppArmor confinement is not applied. 5. Seccomp restrictions are not applied. 6. The device cgroup does not restrict access to any devices. 7. All devices from the host's /dev are available within the container. 8. SELinux restrictions are not applied (e.g. label=disabled).
Configurations for the container's namespaces. Only used if the container uses namespace for isolation.
SELinux context to be optionally applied.
UID to run the container process as. Only one of run_as_user and run_as_username can be specified at a time.
GID to run the container process as. run_as_group should only be specified when run_as_user or run_as_username is specified; otherwise, the runtime MUST error.
User name to run the container process as. If specified, the user MUST exist in the container image (i.e. in the /etc/passwd inside the image), and be resolved there by the runtime; otherwise, the runtime MUST error.
If set, the root filesystem of the container is read-only.
List of groups applied to the first process run in the container, in addition to the container's primary GID, and group memberships defined in the container image for the container's primary UID of the container process. If the list is empty, no additional groups are added to any container. Note that group memberships defined in the container image for the container's primary UID of the container process are still effective, even if they are not included in this list.
no_new_privs defines if the flag for no_new_privs should be set on the container.
masked_paths is a slice of paths that should be masked by the container runtime, this can be passed directly to the OCI spec.
readonly_paths is a slice of paths that should be set as readonly by the container runtime, this can be passed directly to the OCI spec.
Seccomp profile for the container.
AppArmor profile for the container.
AppArmor profile for the container, candidate values are: * runtime/default: equivalent to not specifying a profile. * unconfined: no profiles are loaded * localhost/<profile_name>: profile loaded on the node (localhost) by name. The possible profile names are detailed at https://gitlab.com/apparmor/apparmor/-/wikis/AppArmor_Core_Policy_Reference
Seccomp profile for the container, candidate values are: * runtime/default: the default profile for the container runtime * unconfined: unconfined profile, ie, no seccomp sandboxing * localhost/<full-path-to-profile>: the profile installed on the node. <full-path-to-profile> is the full path of the profile. Default: "", which is identical with unconfined.
LinuxPodSandboxConfig holds platform-specific configurations for Linux host platforms and Linux-based containers.
Used in:
Parent cgroup of the PodSandbox. The cgroupfs style syntax will be used, but the container runtime can convert it to systemd semantics if needed.
LinuxSandboxSecurityContext holds sandbox security attributes.
Sysctls holds linux sysctls config for the sandbox.
Optional overhead represents the overheads associated with this sandbox
Optional resources represents the sum of container resources for this sandbox
LinuxPodSandboxStats provides the resource usage statistics for a pod sandbox on linux.
Used in:
CPU usage gathered for the pod sandbox.
Memory usage gathered for the pod sandbox.
Network usage gathered for the pod sandbox
Stats pertaining to processes in the pod sandbox.
Stats of containers in the measured pod sandbox.
LinuxSandboxStatus contains status specific to Linux sandboxes.
Used in:
Paths to the sandbox's namespaces.
LinuxSandboxSecurityContext holds linux security configuration that will be applied to a sandbox. Note that: 1) It does not apply to containers in the pods. 2) It may not be applicable to a PodSandbox which does not contain any running process.
Used in:
Configurations for the sandbox's namespaces. This will be used only if the PodSandbox uses namespace for isolation.
Optional SELinux context to be applied.
UID to run sandbox processes as, when applicable.
GID to run sandbox processes as, when applicable. run_as_group should only be specified when run_as_user is specified; otherwise, the runtime MUST error.
If set, the root filesystem of the sandbox is read-only.
List of groups applied to the first process run in the sandbox, in addition to the sandbox's primary GID, and group memberships defined in the container image for the sandbox's primary UID of the container process. If the list is empty, no additional groups are added to any container. Note that group memberships defined in the container image for the sandbox's primary UID of the container process are still effective, even if they are not included in this list.
Indicates whether the sandbox will be asked to run a privileged container. If a privileged container is to be executed within it, this MUST be true. This allows a sandbox to take additional security precautions if no privileged containers are expected to be run.
Seccomp profile for the sandbox.
AppArmor profile for the sandbox.
Seccomp profile for the sandbox, candidate values are: * runtime/default: the default profile for the container runtime * unconfined: unconfined profile, ie, no seccomp sandboxing * localhost/<full-path-to-profile>: the profile installed on the node. <full-path-to-profile> is the full path of the profile. Default: "", which is identical with unconfined.
MemoryUsage provides the memory usage information.
Used in:
,Timestamp in nanoseconds at which the information were collected. Must be > 0.
The amount of working set memory in bytes.
Available memory for use. This is defined as the memory limit - workingSetBytes.
Total memory in use. This includes all memory regardless of when it was accessed.
The amount of anonymous and swap cache memory (includes transparent hugepages).
Cumulative number of minor page faults.
Cumulative number of major page faults.
Used in:
,Name must match a name previously returned in a MetricDescriptors call, otherwise, it will be ignored.
Timestamp should be 0 if the metric was gathered live. If it was cached, the Timestamp should reflect the time it was collected.
The corresponding LabelValues to the LabelKeys defined in the MetricDescriptor. It is the responsibility of the runtime to correctly keep sorted the keys and values. If the two slices have different length, the behavior is undefined.
Used in:
The name field will be used as a unique identifier of this MetricDescriptor, and be used in conjunction with the Metric structure to populate the full Metric.
When a metric uses this metric descriptor, it should only define labels that have previously been declared in label_keys. It is the responsibility of the runtime to correctly keep sorted the keys and values. If the two slices have different length, the behavior is undefined.
Used in:
Mount specifies a host volume to mount into a container.
Used in:
,Path of the mount within the container.
Path of the mount on the host. If the hostPath doesn't exist, then runtimes should report error. If the hostpath is a symbolic link, runtimes should follow the symlink and mount the real destination to container.
If set, the mount is read-only.
If set, the mount needs SELinux relabeling.
Requested propagation mode.
Used in:
No mount propagation ("private" in Linux terminology).
Mounts get propagated from the host to the container ("rslave" in Linux).
Mounts get propagated from the host to the container and from the container to the host ("rshared" in Linux).
Namespace contains paths to the namespaces.
Used in:
Namespace options for Linux namespaces.
A NamespaceMode describes the intended namespace configuration for each of the namespaces (Network, PID, IPC) in NamespaceOption. Runtimes should map these modes as appropriate for the technology underlying the runtime.
Used in:
, ,A POD namespace is common to all containers in a pod. For example, a container with a PID namespace of POD expects to view all of the processes in all of the containers in the pod.
A CONTAINER namespace is restricted to a single container. For example, a container with a PID namespace of CONTAINER expects to view only the processes in that container.
A NODE namespace is the namespace of the Kubernetes node. For example, a container with a PID namespace of NODE expects to view all of the processes on the host running the kubelet.
TARGET targets the namespace of another container. When this is specified, a target_id must be specified in NamespaceOption and refer to a container previously created with NamespaceMode CONTAINER. This containers namespace will be made to match that of container target_id. For example, a container with a PID namespace of TARGET expects to view all of the processes that container target_id can view.
NamespaceOption provides options for Linux namespaces.
Used in:
, ,Network namespace for this container/sandbox. Note: There is currently no way to set CONTAINER scoped network in the Kubernetes API. Namespaces currently set by the kubelet: POD, NODE
PID namespace for this container/sandbox. Note: The CRI default is POD, but the v1.PodSpec default is CONTAINER. The kubelet's runtime manager will set this to CONTAINER explicitly for v1 pods. Namespaces currently set by the kubelet: POD, CONTAINER, NODE, TARGET
IPC namespace for this container/sandbox. Note: There is currently no way to set CONTAINER scoped IPC in the Kubernetes API. Namespaces currently set by the kubelet: POD, NODE
Target Container ID for NamespaceMode of TARGET. This container must have been previously created in the same pod. It is not possible to specify different targets for each namespace.
UsernsOptions for this pod sandbox. The Kubelet picks the user namespace configuration to use for the pod sandbox. The mappings are specified as part of the UserNamespace struct. If the struct is nil, then the POD mode must be assumed. This is done for backward compatibility with older Kubelet versions that do not set a user namespace.
Used in:
CIDR to use for pod IP addresses. If the CIDR is empty, runtimes should omit it.
NetworkInterfaceUsage contains resource value data about a network interface.
Used in:
The name of the network interface.
Cumulative count of bytes received.
Cumulative count of receive errors encountered.
Cumulative count of bytes transmitted.
Cumulative count of transmit errors encountered.
NetworkUsage contains data about network resources.
Used in:
Timestamp in nanoseconds at which the information were collected. Must be > 0.
Stats for the default network interface.
Stats for all found network interfaces, excluding the default.
PodIP represents an ip of a Pod
Used in:
an ip is a string representation of an IPv4 or an IPv6
PodSandbox contains minimal information about a sandbox.
Used in:
ID of the PodSandbox.
Metadata of the PodSandbox.
State of the PodSandbox.
Creation timestamps of the PodSandbox in nanoseconds. Must be > 0.
Labels of the PodSandbox.
Unstructured key-value map holding arbitrary metadata. Annotations MUST NOT be altered by the runtime; the value of this field MUST be identical to that of the corresponding PodSandboxConfig used to instantiate this PodSandbox.
runtime configuration used for this PodSandbox.
PodSandboxAttributes provides basic information of the pod sandbox.
Used in:
ID of the pod sandbox.
Metadata of the pod sandbox.
Key-value pairs that may be used to scope and select individual resources.
Unstructured key-value map holding arbitrary metadata. Annotations MUST NOT be altered by the runtime; the value of this field MUST be identical to that of the corresponding PodSandboxStatus used to instantiate the PodSandbox this status represents.
PodSandboxConfig holds all the required and optional fields for creating a sandbox.
Used in:
, ,Metadata of the sandbox. This information will uniquely identify the sandbox, and the runtime should leverage this to ensure correct operation. The runtime may also use this information to improve UX, such as by constructing a readable name.
Hostname of the sandbox. Hostname could only be empty when the pod network namespace is NODE.
Path to the directory on the host in which container log files are stored. By default the log of a container going into the LogDirectory will be hooked up to STDOUT and STDERR. However, the LogDirectory may contain binary log files with structured logging data from the individual containers. For example, the files might be newline separated JSON structured logs, systemd-journald journal files, gRPC trace files, etc. E.g., PodSandboxConfig.LogDirectory = `/var/log/pods/<podUID>/` ContainerConfig.LogPath = `containerName/Instance#.log`
DNS config for the sandbox.
Port mappings for the sandbox.
Key-value pairs that may be used to scope and select individual resources.
Unstructured key-value map that may be set by the kubelet to store and retrieve arbitrary metadata. This will include any annotations set on a pod through the Kubernetes API. Annotations MUST NOT be altered by the runtime; the annotations stored here MUST be returned in the PodSandboxStatus associated with the pod this PodSandboxConfig creates. In general, in order to preserve a well-defined interface between the kubelet and the container runtime, annotations SHOULD NOT influence runtime behaviour. Annotations can also be useful for runtime authors to experiment with new features that are opaque to the Kubernetes APIs (both user-facing and the CRI). Whenever possible, however, runtime authors SHOULD consider proposing new typed fields for any new features instead.
Optional configurations specific to Linux hosts.
Optional configurations specific to Windows hosts.
PodSandboxFilter is used to filter a list of PodSandboxes. All those fields are combined with 'AND'
Used in:
ID of the sandbox.
State of the sandbox.
LabelSelector to select matches. Only api.MatchLabels is supported for now and the requirements are ANDed. MatchExpressions is not supported yet.
PodSandboxMetadata holds all necessary information for building the sandbox name. The container runtime is encouraged to expose the metadata associated with the PodSandbox in its user interface for better user experience. For example, the runtime can construct a unique PodSandboxName based on the metadata.
Used in:
, , ,Pod name of the sandbox. Same as the pod name in the Pod ObjectMeta.
Pod UID of the sandbox. Same as the pod UID in the Pod ObjectMeta.
Pod namespace of the sandbox. Same as the pod namespace in the Pod ObjectMeta.
Attempt number of creating the sandbox. Default: 0.
Used in:
PodSandboxNetworkStatus is the status of the network for a PodSandbox. Currently ignored for pods sharing the host networking namespace.
Used in:
IP address of the PodSandbox.
list of additional ips (not inclusive of PodSandboxNetworkStatus.Ip) of the PodSandBoxNetworkStatus
Used in:
, ,PodSandboxStateValue is the wrapper of PodSandboxState.
Used in:
State of the sandbox.
PodSandboxStats provides the resource usage statistics for a pod. The linux or windows field will be populated depending on the platform.
Used in:
,Information of the pod.
Stats from linux.
Stats from windows.
PodSandboxStatsFilter is used to filter the list of pod sandboxes to retrieve stats for. All those fields are combined with 'AND'.
Used in:
ID of the pod sandbox.
LabelSelector to select matches. Only api.MatchLabels is supported for now and the requirements are ANDed. MatchExpressions is not supported yet.
PodSandboxStatus contains the status of the PodSandbox.
Used in:
,ID of the sandbox.
Metadata of the sandbox.
State of the sandbox.
Creation timestamp of the sandbox in nanoseconds. Must be > 0.
Network contains network status if network is handled by the runtime.
Linux-specific status to a pod sandbox.
Labels are key-value pairs that may be used to scope and select individual resources.
Unstructured key-value map holding arbitrary metadata. Annotations MUST NOT be altered by the runtime; the value of this field MUST be identical to that of the corresponding PodSandboxConfig used to instantiate the pod sandbox this status represents.
runtime configuration used for this PodSandbox.
PortMapping specifies the port mapping configurations of a sandbox.
Used in:
Protocol of the port mapping.
Port number within the container. Default: 0 (not specified).
Port number on the host. Default: 0 (not specified).
Host IP.
ProcessUsage are stats pertaining to processes.
Used in:
Timestamp in nanoseconds at which the information were collected. Must be > 0.
Number of processes.
Used in:
RuntimeCondition contains condition information for the runtime. There are 2 kinds of runtime conditions: 1. Required conditions: Conditions are required for kubelet to work properly. If any required condition is unmet, the node will be not ready. The required conditions include: * RuntimeReady: RuntimeReady means the runtime is up and ready to accept basic containers e.g. container only needs host network. * NetworkReady: NetworkReady means the runtime network is up and ready to accept containers which require container network. 2. Optional conditions: Conditions are informative to the user, but kubelet will not rely on. Since condition type is an arbitrary string, all conditions not required are optional. These conditions will be exposed to users to help them understand the status of the system.
Used in:
Type of runtime condition.
Status of the condition, one of true/false. Default: false.
Brief CamelCase string containing reason for the condition's last transition.
Human-readable message indicating details about last transition.
Used in:
RuntimeStatus is information about the current status of the runtime.
Used in:
List of current observed runtime conditions.
SELinuxOption are the labels to be applied to the container.
Used in:
,A security profile which can be used for sandboxes and containers.
Used in:
,Indicator which `ProfileType` should be applied.
Indicates that a pre-defined profile on the node should be used. Must only be set if `ProfileType` is `Localhost`. For seccomp, it must be an absolute path to the seccomp profile. For AppArmor, this field is the AppArmor `<profile name>/`
Available profile types.
Used in:
The container runtime default profile should be used.
Disable the feature for the sandbox or the container.
A pre-defined profile on the node should be used.
UInt64Value is the wrapper of uint64.
Used in:
, , , , , , , , , ,The value.
UserNamespace describes the intended user namespace configuration for a pod sandbox.
Used in:
Mode is the NamespaceMode for this UserNamespace. Note: NamespaceMode for UserNamespace currently supports only POD and NODE, not CONTAINER OR TARGET.
Uids specifies the UID mappings for the user namespace.
Gids specifies the GID mappings for the user namespace.
WindowsContainerConfig contains platform-specific configuration for Windows-based containers.
Used in:
Resources specification for the container.
WindowsContainerSecurityContext configuration for the container.
WindowsContainerResources specifies Windows specific configuration for resources.
Used in:
, ,CPU shares (relative weight vs. other containers). Default: 0 (not specified).
Number of CPUs available to the container. Default: 0 (not specified).
Specifies the portion of processor cycles that this container can use as a percentage times 100.
Memory limit in bytes. Default: 0 (not specified).
Specifies the size of the rootfs / scratch space in bytes to be configured for this container. Default: 0 (not specified).
WindowsContainerSecurityContext holds windows security configuration that will be applied to a container.
Used in:
User name to run the container process as. If specified, the user MUST exist in the container image and be resolved there by the runtime; otherwise, the runtime MUST return error.
The contents of the GMSA credential spec to use to run this container.
Indicates whether a container is to be run as a HostProcess container.
WindowsContainerStats provides the resource usage statistics for a container specific for Windows
Used in:
Information of the container.
CPU usage gathered from the container.
Memory usage gathered from the container.
Usage of the writable layer.
WindowsCpuUsage provides the CPU usage information specific to Windows
Used in:
,Timestamp in nanoseconds at which the information were collected. Must be > 0.
Cumulative CPU usage (sum across all cores) since object creation.
Total CPU usage (sum of all cores) averaged over the sample window. The "core" unit can be interpreted as CPU core-nanoseconds per second.
WindowsFilesystemUsage provides the filesystem usage information specific to Windows.
Used in:
Timestamp in nanoseconds at which the information were collected. Must be > 0.
The unique identifier of the filesystem.
UsedBytes represents the bytes used for images on the filesystem. This may differ from the total bytes used on the filesystem and may not equal CapacityBytes - AvailableBytes.
WindowsMemoryUsage provides the memory usage information specific to Windows
Used in:
,Timestamp in nanoseconds at which the information were collected. Must be > 0.
The amount of working set memory in bytes.
Available memory for use. This is defined as the memory limit - workingSetBytes.
Cumulative number of page faults.
WindowsNamespaceOption provides options for Windows namespaces.
Used in:
Network namespace for this container/sandbox. Namespaces currently set by the kubelet: POD, NODE
WindowsNetworkInterfaceUsage contains resource value data about a network interface specific for Windows.
Used in:
The name of the network interface.
Cumulative count of bytes received.
Cumulative count of receive errors encountered.
Cumulative count of bytes transmitted.
Cumulative count of transmit errors encountered.
WindowsNetworkUsage contains data about network resources specific to Windows.
Used in:
Timestamp in nanoseconds at which the information were collected. Must be > 0.
Stats for the default network interface.
Stats for all found network interfaces, excluding the default.
WindowsPodSandboxConfig holds platform-specific configurations for Windows host platforms and Windows-based containers.
Used in:
WindowsSandboxSecurityContext holds sandbox security attributes.
WindowsPodSandboxStats provides the resource usage statistics for a pod sandbox on windows
Used in:
CPU usage gathered for the pod sandbox.
Memory usage gathered for the pod sandbox.
Network usage gathered for the pod sandbox
Stats pertaining to processes in the pod sandbox.
Stats of containers in the measured pod sandbox.
WindowsProcessUsage are stats pertaining to processes specific to Windows.
Used in:
Timestamp in nanoseconds at which the information were collected. Must be > 0.
Number of processes.
WindowsSandboxSecurityContext holds platform-specific configurations that will be applied to a sandbox. These settings will only apply to the sandbox container.
Used in:
User name to run the container process as. If specified, the user MUST exist in the container image and be resolved there by the runtime; otherwise, the runtime MUST return error.
The contents of the GMSA credential spec to use to run this container.
Indicates whether the container requested to run as a HostProcess container.
Configuration for the sandbox's namespaces