diff --git a/.travis.yml b/.travis.yml index 6aac051fa5..fd44debaa2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,8 @@ notifications: env: - TEST_SUITE=unittest - TEST_SUITE=integrationtest - - TEST_SUITE=critest + - TEST_SUITE=criv1alpha1test + - TEST_SUITE=criv1alpha2test script: | if [[ "${TEST_SUITE}" = "unittest" ]]; then @@ -33,13 +34,21 @@ script: | sudo env "PATH=$PATH" make download_dependencies sudo env "PATH=$PATH" make integration-test make coverage + elif [[ "${TEST_SUITE}" = "criv1alpha1test" ]]; then + make build + TEST_FLAGS= make build-daemon-integration + sudo env "PATH=$PATH" make install + + sudo env "PATH=$PATH" make download_dependencies + sudo env "PATH=$PATH" make cri-v1alpha1-test + make coverage else make build TEST_FLAGS= make build-daemon-integration sudo env "PATH=$PATH" make install sudo env "PATH=$PATH" make download_dependencies - sudo env "PATH=$PATH" make cri-test + sudo env "PATH=$PATH" make cri-v1alpha2-test make coverage fi diff --git a/Makefile b/Makefile index 457b74c2ca..8bb9f8785b 100644 --- a/Makefile +++ b/Makefile @@ -140,11 +140,17 @@ integration-test: ## run daemon integration-test @mkdir -p coverage ./hack/testing/run_daemon_integration.sh -.PHONY: cri-test -cri-test: ## run v1 alpha2 cri-test +.PHONY: cri-v1alpha1-test +cri-v1alpha1-test: ## run v1 alpha1 cri-test @echo $@ @mkdir -p coverage - ./hack/testing/run_daemon_cri_integration.sh + ./hack/testing/run_daemon_cri_integration.sh v1alpha1 + +.PHONY: cri-v1alpha2-test +cri-v1alpha2-test: ## run v1 alpha2 cri-test + @echo $@ + @mkdir -p coverage + ./hack/testing/run_daemon_cri_integration.sh v1alpha2 .PHONY: test test: unit-test integration-test cri-test ## run the unit-test, integration-test and cri-test diff --git a/cri/apis/v1alpha1/api.proto b/cri/apis/v1alpha1/api.proto deleted file mode 100644 index 0377f7eda8..0000000000 --- a/cri/apis/v1alpha1/api.proto +++ /dev/null @@ -1,1209 +0,0 @@ -// To regenerate api.pb.go run hack/protoc.sh -syntax = 'proto3'; - -package v1alpha1; - -import "github.com/gogo/protobuf/gogoproto/gogo.proto"; - -option (gogoproto.goproto_stringer_all) = false; -option (gogoproto.stringer_all) = true; -option (gogoproto.goproto_getters_all) = true; -option (gogoproto.marshaler_all) = true; -option (gogoproto.sizer_all) = true; -option (gogoproto.unmarshaler_all) = true; -option (gogoproto.goproto_unrecognized_all) = false; - -// Runtime service defines the public APIs for remote container runtimes -service RuntimeService { - // Version returns the runtime name, runtime version, and runtime API version. - rpc Version(VersionRequest) returns (VersionResponse) {} - - // RunPodSandbox creates and starts a pod-level sandbox. Runtimes must ensure - // the sandbox is in the ready state on success. - rpc RunPodSandbox(RunPodSandboxRequest) returns (RunPodSandboxResponse) {} - // 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. - rpc StopPodSandbox(StopPodSandboxRequest) returns (StopPodSandboxResponse) {} - // 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. - rpc RemovePodSandbox(RemovePodSandboxRequest) returns (RemovePodSandboxResponse) {} - // PodSandboxStatus returns the status of the PodSandbox. If the PodSandbox is not - // present, returns an error. - rpc PodSandboxStatus(PodSandboxStatusRequest) returns (PodSandboxStatusResponse) {} - // ListPodSandbox returns a list of PodSandboxes. - rpc ListPodSandbox(ListPodSandboxRequest) returns (ListPodSandboxResponse) {} - - // CreateContainer creates a new container in specified PodSandbox - rpc CreateContainer(CreateContainerRequest) returns (CreateContainerResponse) {} - // StartContainer starts the container. - rpc StartContainer(StartContainerRequest) returns (StartContainerResponse) {} - // 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. - // TODO: what must the runtime do after the grace period is reached? - rpc StopContainer(StopContainerRequest) returns (StopContainerResponse) {} - // 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. - rpc RemoveContainer(RemoveContainerRequest) returns (RemoveContainerResponse) {} - // ListContainers lists all containers by filters. - rpc ListContainers(ListContainersRequest) returns (ListContainersResponse) {} - // ContainerStatus returns status of the container. If the container is not - // present, returns an error. - rpc ContainerStatus(ContainerStatusRequest) returns (ContainerStatusResponse) {} - // UpdateContainerResources updates ContainerConfig of the container. - rpc UpdateContainerResources(UpdateContainerResourcesRequest) returns (UpdateContainerResourcesResponse) {} - - // ExecSync runs a command in a container synchronously. - rpc ExecSync(ExecSyncRequest) returns (ExecSyncResponse) {} - // Exec prepares a streaming endpoint to execute a command in the container. - rpc Exec(ExecRequest) returns (ExecResponse) {} - // Attach prepares a streaming endpoint to attach to a running container. - rpc Attach(AttachRequest) returns (AttachResponse) {} - // PortForward prepares a streaming endpoint to forward ports from a PodSandbox. - rpc PortForward(PortForwardRequest) returns (PortForwardResponse) {} - - // ContainerStats returns stats of the container. If the container does not - // exist, the call returns an error. - rpc ContainerStats(ContainerStatsRequest) returns (ContainerStatsResponse) {} - // ListContainerStats returns stats of all running containers. - rpc ListContainerStats(ListContainerStatsRequest) returns (ListContainerStatsResponse) {} - - // UpdateRuntimeConfig updates the runtime configuration based on the given request. - rpc UpdateRuntimeConfig(UpdateRuntimeConfigRequest) returns (UpdateRuntimeConfigResponse) {} - - // Status returns the status of the runtime. - rpc Status(StatusRequest) returns (StatusResponse) {} -} - -// ImageService defines the public APIs for managing images. -service ImageService { - // ListImages lists existing images. - rpc ListImages(ListImagesRequest) returns (ListImagesResponse) {} - // ImageStatus returns the status of the image. If the image is not - // present, returns a response with ImageStatusResponse.Image set to - // nil. - rpc ImageStatus(ImageStatusRequest) returns (ImageStatusResponse) {} - // PullImage pulls an image with authentication config. - rpc PullImage(PullImageRequest) returns (PullImageResponse) {} - // RemoveImage removes the image. - // This call is idempotent, and must not return an error if the image has - // already been removed. - rpc RemoveImage(RemoveImageRequest) returns (RemoveImageResponse) {} - // ImageFSInfo returns information of the filesystem that is used to store images. - rpc ImageFsInfo(ImageFsInfoRequest) returns (ImageFsInfoResponse) {} -} - -message VersionRequest { - // Version of the kubelet runtime API. - string version = 1; -} - -message VersionResponse { - // Version of the kubelet runtime API. - string version = 1; - // Name of the container runtime. - string runtime_name = 2; - // Version of the container runtime. The string must be - // semver-compatible. - string runtime_version = 3; - // API version of the container runtime. The string must be - // semver-compatible. - string runtime_api_version = 4; -} - -// DNSConfig specifies the DNS servers and search domains of a sandbox. -message DNSConfig { - // List of DNS servers of the cluster. - repeated string servers = 1; - // List of DNS search domains of the cluster. - repeated string searches = 2; - // List of DNS options. See https://linux.die.net/man/5/resolv.conf - // for all available options. - repeated string options = 3; -} - -enum Protocol { - TCP = 0; - UDP = 1; -} - -// PortMapping specifies the port mapping configurations of a sandbox. -message PortMapping { - // Protocol of the port mapping. - Protocol protocol = 1; - // Port number within the container. Default: 0 (not specified). - int32 container_port = 2; - // Port number on the host. Default: 0 (not specified). - int32 host_port = 3; - // Host IP. - string host_ip = 4; -} - -enum MountPropagation { - // No mount propagation ("private" in Linux terminology). - PROPAGATION_PRIVATE = 0; - // Mounts get propagated from the host to the container ("rslave" in Linux). - PROPAGATION_HOST_TO_CONTAINER = 1; - // Mounts get propagated from the host to the container and from the - // container to the host ("rshared" in Linux). - PROPAGATION_BIDIRECTIONAL = 2; -} - -// Mount specifies a host volume to mount into a container. -message Mount { - // Path of the mount within the container. - string container_path = 1; - // Path of the mount on the host. - string host_path = 2; - // If set, the mount is read-only. - bool readonly = 3; - // If set, the mount needs SELinux relabeling. - bool selinux_relabel = 4; - // Requested propagation mode. - MountPropagation propagation = 5; -} - -// NamespaceOption provides options for Linux namespaces. -message NamespaceOption { - // If set, use the host's network namespace. - bool host_network = 1; - // If set, use the host's PID namespace. - bool host_pid = 2; - // If set, use the host's IPC namespace. - bool host_ipc = 3; -} - -// Int64Value is the wrapper of int64. -message Int64Value { - // The value. - int64 value = 1; -} - -// 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. -message LinuxSandboxSecurityContext { - // Configurations for the sandbox's namespaces. - // This will be used only if the PodSandbox uses namespace for isolation. - NamespaceOption namespace_options = 1; - // Optional SELinux context to be applied. - SELinuxOption selinux_options = 2; - // UID to run sandbox processes as, when applicable. - Int64Value run_as_user = 3; - // If set, the root filesystem of the sandbox is read-only. - bool readonly_rootfs = 4; - // List of groups applied to the first process run in the sandbox, in - // addition to the sandbox's primary GID. - repeated int64 supplemental_groups = 5; - // 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. - bool privileged = 6; - // Seccomp profile for the sandbox, candidate values are: - // * docker/default: the default profile for the docker container runtime - // * unconfined: unconfined profile, ie, no seccomp sandboxing - // * localhost/: the profile installed on the node. - // is the full path of the profile. - // Default: "", which is identical with unconfined. - string seccomp_profile_path = 7; -} - -// LinuxPodSandboxConfig holds platform-specific configurations for Linux -// host platforms and Linux-based containers. -message LinuxPodSandboxConfig { - // Parent cgroup of the PodSandbox. - // The cgroupfs style syntax will be used, but the container runtime can - // convert it to systemd semantics if needed. - string cgroup_parent = 1; - // LinuxSandboxSecurityContext holds sandbox security attributes. - LinuxSandboxSecurityContext security_context = 2; - // Sysctls holds linux sysctls config for the sandbox. - map sysctls = 3; -} - -// 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. -message PodSandboxMetadata { - // Pod name of the sandbox. Same as the pod name in the PodSpec. - string name = 1; - // Pod UID of the sandbox. Same as the pod UID in the PodSpec. - string uid = 2; - // Pod namespace of the sandbox. Same as the pod namespace in the PodSpec. - string namespace = 3; - // Attempt number of creating the sandbox. Default: 0. - uint32 attempt = 4; -} - -// PodSandboxConfig holds all the required and optional fields for creating a -// sandbox. -message PodSandboxConfig { - // 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. - PodSandboxMetadata metadata = 1; - // Hostname of the sandbox. - string hostname = 2; - // 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//` - // 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. - string log_directory = 3; - // DNS config for the sandbox. - DNSConfig dns_config = 4; - // Port mappings for the sandbox. - repeated PortMapping port_mappings = 5; - // Key-value pairs that may be used to scope and select individual resources. - map labels = 6; - // 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. - map annotations = 7; - // Optional configurations specific to Linux hosts. - LinuxPodSandboxConfig linux = 8; -} - -message RunPodSandboxRequest { - // Configuration for creating a PodSandbox. - PodSandboxConfig config = 1; -} - -message RunPodSandboxResponse { - // ID of the PodSandbox to run. - string pod_sandbox_id = 1; -} - -message StopPodSandboxRequest { - // ID of the PodSandbox to stop. - string pod_sandbox_id = 1; -} - -message StopPodSandboxResponse {} - -message RemovePodSandboxRequest { - // ID of the PodSandbox to remove. - string pod_sandbox_id = 1; -} - -message RemovePodSandboxResponse {} - -message PodSandboxStatusRequest { - // ID of the PodSandbox for which to retrieve status. - string pod_sandbox_id = 1; - // Verbose indicates whether to return extra information about the pod sandbox. - bool verbose = 2; -} - -// PodSandboxNetworkStatus is the status of the network for a PodSandbox. -message PodSandboxNetworkStatus { - // IP address of the PodSandbox. - string ip = 1; -} - -// Namespace contains paths to the namespaces. -message Namespace { - // Namespace options for Linux namespaces. - NamespaceOption options = 2; -} - -// LinuxSandboxStatus contains status specific to Linux sandboxes. -message LinuxPodSandboxStatus { - // Paths to the sandbox's namespaces. - Namespace namespaces = 1; -} - -enum PodSandboxState { - SANDBOX_READY = 0; - SANDBOX_NOTREADY = 1; -} - -// PodSandboxStatus contains the status of the PodSandbox. -message PodSandboxStatus { - // ID of the sandbox. - string id = 1; - // Metadata of the sandbox. - PodSandboxMetadata metadata = 2; - // State of the sandbox. - PodSandboxState state = 3; - // Creation timestamp of the sandbox in nanoseconds. Must be > 0. - int64 created_at = 4; - // Network contains network status if network is handled by the runtime. - PodSandboxNetworkStatus network = 5; - // Linux-specific status to a pod sandbox. - LinuxPodSandboxStatus linux = 6; - // Labels are key-value pairs that may be used to scope and select individual resources. - map labels = 7; - // 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. - map annotations = 8; -} - -message PodSandboxStatusResponse { - // Status of the PodSandbox. - PodSandboxStatus status = 1; - // Info is extra information of the PodSandbox. The key could be abitrary 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. - map info = 2; -} - -// PodSandboxStateValue is the wrapper of PodSandboxState. -message PodSandboxStateValue { - // State of the sandbox. - PodSandboxState state = 1; -} - -// PodSandboxFilter is used to filter a list of PodSandboxes. -// All those fields are combined with 'AND' -message PodSandboxFilter { - // ID of the sandbox. - string id = 1; - // State of the sandbox. - PodSandboxStateValue state = 2; - // LabelSelector to select matches. - // Only api.MatchLabels is supported for now and the requirements - // are ANDed. MatchExpressions is not supported yet. - map label_selector = 3; -} - -message ListPodSandboxRequest { - // PodSandboxFilter to filter a list of PodSandboxes. - PodSandboxFilter filter = 1; -} - - -// PodSandbox contains minimal information about a sandbox. -message PodSandbox { - // ID of the PodSandbox. - string id = 1; - // Metadata of the PodSandbox. - PodSandboxMetadata metadata = 2; - // State of the PodSandbox. - PodSandboxState state = 3; - // Creation timestamps of the PodSandbox in nanoseconds. Must be > 0. - int64 created_at = 4; - // Labels of the PodSandbox. - map labels = 5; - // 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. - map annotations = 6; -} - -message ListPodSandboxResponse { - // List of PodSandboxes. - repeated PodSandbox items = 1; -} - -// ImageSpec is an internal representation of an image. Currently, it wraps the -// value of a Container's Image field (e.g. imageID or imageDigest), but in the -// future it will include more detailed information about the different image types. -message ImageSpec { - string image = 1; -} - -message KeyValue { - string key = 1; - string value = 2; -} - -// LinuxContainerResources specifies Linux specific configuration for -// resources. -// TODO: Consider using Resources from opencontainers/runtime-spec/specs-go -// directly. -message LinuxContainerResources { - // CPU CFS (Completely Fair Scheduler) period. Default: 0 (not specified). - int64 cpu_period = 1; - // CPU CFS (Completely Fair Scheduler) quota. Default: 0 (not specified). - int64 cpu_quota = 2; - // CPU shares (relative weight vs. other containers). Default: 0 (not specified). - int64 cpu_shares = 3; - // Memory limit in bytes. Default: 0 (not specified). - int64 memory_limit_in_bytes = 4; - // OOMScoreAdj adjusts the oom-killer score. Default: 0 (not specified). - int64 oom_score_adj = 5; - // CpusetCpus constrains the allowed set of logical CPUs. Default: "" (not specified). - string cpuset_cpus = 6; - // CpusetMems constrains the allowed set of memory nodes. Default: "" (not specified). - string cpuset_mems = 7; - // DiskQuota constrains the disk - map disk_quota = 100; - // Block IO weight (relative weight vs. other containers) - uint32 blkio_weight = 101; - repeated WeightDevice blkio_weight_device = 102; - repeated ThrottleDevice blkio_device_read_bps = 103; - repeated ThrottleDevice blkio_device_write_bps = 104; - repeated ThrottleDevice blkio_device_read_IOps = 105; - repeated ThrottleDevice blkio_device_write_IOps = 106; - // Kernel memory limit (in bytes) - int64 kernel_memory = 107; - // Memory soft limit (in bytes) - int64 memory_reservation = 108; - // Tuning container memory swappiness behaviour - Int64Value memory_swappiness = 109; - // List of ulimits to be set in the container - repeated Ulimit ulimits = 110; -} - -// WeightDevice is a structure that holds device:weight pair -message WeightDevice { - // Path of weightdevice. - string path = 1; - // Weight of weightdevice. - uint32 Weight = 2; -} - -// ThrottleDevice is a structure that holds device:rate_per_second pair -message ThrottleDevice { - // Path of throttledevice. - string path = 1; - // Rate of throttledevice. - uint64 rate = 2; -} - -// Ulimit is a human friendly version of Rlimit. -message Ulimit { - // Name of ulimit. - string name = 1; - // Hard limit of ulimit. - int64 hard = 2; - // Soft limit of Ulimit. - int64 soft = 3; -} - -// SELinuxOption are the labels to be applied to the container. -message SELinuxOption { - string user = 1; - string role = 2; - string type = 3; - string level = 4; -} - -// Capability contains the container capabilities to add or drop -message Capability { - // List of capabilities to add. - repeated string add_capabilities = 1; - // List of capabilities to drop. - repeated string drop_capabilities = 2; -} - -// LinuxContainerSecurityContext holds linux security configuration that will be applied to a container. -message LinuxContainerSecurityContext { - // Capabilities to add or drop. - Capability capabilities = 1; - // 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). - bool privileged = 2; - // Configurations for the container's namespaces. - // Only used if the container uses namespace for isolation. - NamespaceOption namespace_options = 3; - // SELinux context to be optionally applied. - SELinuxOption selinux_options = 4; - // UID to run the container process as. Only one of run_as_user and - // run_as_username can be specified at a time. - Int64Value run_as_user = 5; - // 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. - string run_as_username = 6; - // If set, the root filesystem of the container is read-only. - bool readonly_rootfs = 7; - // List of groups applied to the first process run in the container, in - // addition to the container's primary GID. - repeated int64 supplemental_groups = 8; - // AppArmor profile for the container, candidate values are: - // * runtime/default: equivalent to not specifying a profile. - // * unconfined: no profiles are loaded - // * localhost/: profile loaded on the node - // (localhost) by name. The possible profile names are detailed at - // http://wiki.apparmor.net/index.php/AppArmor_Core_Policy_Reference - string apparmor_profile = 9; - // Seccomp profile for the container, candidate values are: - // * docker/default: the default profile for the docker container runtime - // * unconfined: unconfined profile, ie, no seccomp sandboxing - // * localhost/: the profile installed on the node. - // is the full path of the profile. - // Default: "", which is identical with unconfined. - string seccomp_profile_path = 10; - // no_new_privs defines if the flag for no_new_privs should be set on the - // container. - bool no_new_privs = 11; -} - -// LinuxContainerConfig contains platform-specific configuration for -// Linux-based containers. -message LinuxContainerConfig { - // Resources specification for the container. - LinuxContainerResources resources = 1; - // LinuxContainerSecurityContext configuration for the container. - LinuxContainerSecurityContext security_context = 2; -} - -// 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. -message ContainerMetadata { - // Name of the container. Same as the container name in the PodSpec. - string name = 1; - // Attempt number of creating the container. Default: 0. - uint32 attempt = 2; -} - -// Device specifies a host device to mount into a container. -message Device { - // Path of the device within the container. - string container_path = 1; - // Path of the device on the host. - string host_path = 2; - // 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. - string permissions = 3; -} - -// ContainerConfig holds all the required and optional fields for creating a -// container. -message ContainerConfig { - // 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. - ContainerMetadata metadata = 1 ; - // Image to use. - ImageSpec image = 2; - // Command to execute (i.e., entrypoint for docker) - repeated string command = 3; - // Args for the Command (i.e., command for docker) - repeated string args = 4; - // Current working directory of the command. - string working_dir = 5; - // List of environment variable to set in the container. - repeated KeyValue envs = 6; - // Mounts for the container. - repeated Mount mounts = 7; - // Devices for the container. - repeated Device devices = 8; - // 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 - map labels = 9; - // 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. - map annotations = 10; - // Path relative to PodSandboxConfig.LogDirectory for container to store - // the log (STDOUT and STDERR) on the host. - // E.g., - // PodSandboxConfig.LogDirectory = `/var/log/pods//` - // 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. - string log_path = 11; - - // Variables for interactive containers, these have very specialized - // use-cases (e.g. debugging). - // TODO: Determine if we need to continue supporting these fields that are - // part of Kubernetes's Container Spec. - bool stdin = 12; - bool stdin_once = 13; - bool tty = 14; - - // Configuration specific to Linux containers. - LinuxContainerConfig linux = 15; - // NetPriority of the container - int64 net_priority = 100; -} - -message CreateContainerRequest { - // ID of the PodSandbox in which the container should be created. - string pod_sandbox_id = 1; - // Config of the container. - ContainerConfig config = 2; - // 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. - PodSandboxConfig sandbox_config = 3; -} - -message CreateContainerResponse { - // ID of the created container. - string container_id = 1; -} - -message StartContainerRequest { - // ID of the container to start. - string container_id = 1; -} - -message StartContainerResponse {} - -message StopContainerRequest { - // ID of the container to stop. - string container_id = 1; - // Timeout in seconds to wait for the container to stop before forcibly - // terminating it. Default: 0 (forcibly terminate the container immediately) - int64 timeout = 2; -} - -message StopContainerResponse {} - -message RemoveContainerRequest { - // ID of the container to remove. - string container_id = 1; -} - -message RemoveContainerResponse {} - -enum ContainerState { - CONTAINER_CREATED = 0; - CONTAINER_RUNNING = 1; - CONTAINER_EXITED = 2; - CONTAINER_UNKNOWN = 3; -} - -// ContainerStateValue is the wrapper of ContainerState. -message ContainerStateValue { - // State of the container. - ContainerState state = 1; -} - -// ContainerFilter is used to filter containers. -// All those fields are combined with 'AND' -message ContainerFilter { - // ID of the container. - string id = 1; - // State of the container. - ContainerStateValue state = 2; - // ID of the PodSandbox. - string pod_sandbox_id = 3; - // LabelSelector to select matches. - // Only api.MatchLabels is supported for now and the requirements - // are ANDed. MatchExpressions is not supported yet. - map label_selector = 4; -} - -message ListContainersRequest { - ContainerFilter filter = 1; -} - -// Container provides the runtime information for a container, such as ID, hash, -// state of the container. -message Container { - // ID of the container, used by the container runtime to identify - // a container. - string id = 1; - // ID of the sandbox to which this container belongs. - string pod_sandbox_id = 2; - // Metadata of the container. - ContainerMetadata metadata = 3; - // Spec of the image. - ImageSpec image = 4; - // Reference to the image in use. For most runtimes, this should be an - // image ID. - string image_ref = 5; - // State of the container. - ContainerState state = 6; - // Creation time of the container in nanoseconds. - int64 created_at = 7; - // Key-value pairs that may be used to scope and select individual resources. - map labels = 8; - // 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. - map annotations = 9; -} - -message ListContainersResponse { - // List of containers. - repeated Container containers = 1; -} - -message ContainerStatusRequest { - // ID of the container for which to retrieve status. - string container_id = 1; - // Verbose indicates whether to return extra information about the container. - bool verbose = 2; -} - -// ContainerStatus represents the status of a container. -message ContainerStatus { - // ID of the container. - string id = 1; - // Metadata of the container. - ContainerMetadata metadata = 2; - // Status of the container. - ContainerState state = 3; - // Creation time of the container in nanoseconds. - int64 created_at = 4; - // Start time of the container in nanoseconds. Default: 0 (not specified). - int64 started_at = 5; - // Finish time of the container in nanoseconds. Default: 0 (not specified). - int64 finished_at = 6; - // Exit code of the container. Only required when finished_at != 0. Default: 0. - int32 exit_code = 7; - // Spec of the image. - ImageSpec image = 8; - // Reference to the image in use. For most runtimes, this should be an - // image ID - string image_ref = 9; - // Brief CamelCase string explaining why container is in its current state. - string reason = 10; - // Human-readable message indicating details about why container is in its - // current state. - string message = 11; - // Key-value pairs that may be used to scope and select individual resources. - map labels = 12; - // 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. - map annotations = 13; - // Mounts for the container. - repeated Mount mounts = 14; - // Log path of container. - string log_path = 15; - // Volumes of container - map volumes= 100; - // Resources specification for the container - LinuxContainerResources resources = 101; -} - -message Volume { -} - -message ContainerStatusResponse { - // Status of the container. - ContainerStatus status = 1; - // Info is extra information of the Container. The key could be abitrary 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. - map info = 2; -} - -message UpdateContainerResourcesRequest { - // ID of the container to update. - string container_id = 1; - // Resource configuration specific to Linux containers. - LinuxContainerResources linux = 2; -} - -message UpdateContainerResourcesResponse {} - -message ExecSyncRequest { - // ID of the container. - string container_id = 1; - // Command to execute. - repeated string cmd = 2; - // Timeout in seconds to stop the command. Default: 0 (run forever). - int64 timeout = 3; -} - -message ExecSyncResponse { - // Captured command stdout output. - bytes stdout = 1; - // Captured command stderr output. - bytes stderr = 2; - // Exit code the command finished with. Default: 0 (success). - int32 exit_code = 3; -} - -message ExecRequest { - // ID of the container in which to execute the command. - string container_id = 1; - // Command to execute. - repeated string cmd = 2; - // Whether to exec the command in a TTY. - bool tty = 3; - // Whether to stream stdin. - // One of `stdin`, `stdout`, and `stderr` MUST be true. - bool stdin = 4; - // Whether to stream stdout. - // One of `stdin`, `stdout`, and `stderr` MUST be true. - bool stdout = 5; - // 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. - bool stderr = 6; -} - -message ExecResponse { - // Fully qualified URL of the exec streaming server. - string url = 1; -} - -message AttachRequest { - // ID of the container to which to attach. - string container_id = 1; - // Whether to stream stdin. - // One of `stdin`, `stdout`, and `stderr` MUST be true. - bool stdin = 2; - // Whether the process being attached is running in a TTY. - // This must match the TTY setting in the ContainerConfig. - bool tty = 3; - // Whether to stream stdout. - // One of `stdin`, `stdout`, and `stderr` MUST be true. - bool stdout = 4; - // 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. - bool stderr = 5; -} - -message AttachResponse { - // Fully qualified URL of the attach streaming server. - string url = 1; -} - -message PortForwardRequest { - // ID of the container to which to forward the port. - string pod_sandbox_id = 1; - // Port to forward. - repeated int32 port = 2; -} - -message PortForwardResponse { - // Fully qualified URL of the port-forward streaming server. - string url = 1; -} - -message ImageFilter { - // Spec of the image. - ImageSpec image = 1; -} - -message ListImagesRequest { - // Filter to list images. - ImageFilter filter = 1; -} - -// Basic information about a container image. -message Image { - // ID of the image. - string id = 1; - // Other names by which this image is known. - repeated string repo_tags = 2; - // Digests by which this image is known. - repeated string repo_digests = 3; - // Size of the image in bytes. Must be > 0. - uint64 size = 4; - // 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. - Int64Value uid = 5; - // User name that will run the command(s). This is used if UID is not set - // and no user is specified when creating container. - string username = 6; - // Volumes of image - map volumes= 100; -} - -message ListImagesResponse { - // List of images. - repeated Image images = 1; -} - -message ImageStatusRequest { - // Spec of the image. - ImageSpec image = 1; - // Verbose indicates whether to return extra information about the image. - bool verbose = 2; -} - -message ImageStatusResponse { - // Status of the image. - Image image = 1; - // Info is extra information of the Image. The key could be abitrary 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. - map info = 2; -} - -// AuthConfig contains authorization information for connecting to a registry. -message AuthConfig { - string username = 1; - string password = 2; - string auth = 3; - string server_address = 4; - // IdentityToken is used to authenticate the user and get - // an access token for the registry. - string identity_token = 5; - // RegistryToken is a bearer token to be sent to a registry - string registry_token = 6; -} - -message PullImageRequest { - // Spec of the image. - ImageSpec image = 1; - // Authentication configuration for pulling the image. - AuthConfig auth = 2; - // Config of the PodSandbox, which is used to pull image in PodSandbox context. - PodSandboxConfig sandbox_config = 3; -} - -message PullImageResponse { - // Reference to the image in use. For most runtimes, this should be an - // image ID or digest. - string image_ref = 1; -} - -message RemoveImageRequest { - // Spec of the image to remove. - ImageSpec image = 1; -} - -message RemoveImageResponse {} - -message NetworkConfig { - // CIDR to use for pod IP addresses. - string pod_cidr = 1; -} - -message RuntimeConfig { - NetworkConfig network_config = 1; -} - -message UpdateRuntimeConfigRequest { - RuntimeConfig runtime_config = 1; -} - -message UpdateRuntimeConfigResponse {} - -// 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. -message RuntimeCondition { - // Type of runtime condition. - string type = 1; - // Status of the condition, one of true/false. Default: false. - bool status = 2; - // Brief CamelCase string containing reason for the condition's last transition. - string reason = 3; - // Human-readable message indicating details about last transition. - string message = 4; -} - -// RuntimeStatus is information about the current status of the runtime. -message RuntimeStatus { - // List of current observed runtime conditions. - repeated RuntimeCondition conditions = 1; -} - -message StatusRequest { - // Verbose indicates whether to return extra information about the runtime. - bool verbose = 1; -} - -message StatusResponse { - // Status of the Runtime. - RuntimeStatus status = 1; - // Info is extra information of the Runtime. The key could be abitrary 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. - map info = 2; -} - -message ImageFsInfoRequest {} - -// UInt64Value is the wrapper of uint64. -message UInt64Value { - // The value. - uint64 value = 1; -} - -// StorageIdentifier uniquely identify the storage.. -message StorageIdentifier{ - // UUID of the device. - string uuid = 1; -} - -// FilesystemUsage provides the filesystem usage information. -message FilesystemUsage { - // Timestamp in nanoseconds at which the information were collected. Must be > 0. - int64 timestamp = 1; - // The underlying storage of the filesystem. - StorageIdentifier storage_id = 2; - // 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. - UInt64Value used_bytes = 3; - // 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. - UInt64Value inodes_used = 4; -} - -message ImageFsInfoResponse { - // Information of image filesystem(s). - repeated FilesystemUsage image_filesystems = 1; -} - -message ContainerStatsRequest{ - // ID of the container for which to retrieve stats. - string container_id = 1; -} - -message ContainerStatsResponse { - // Stats of the container. - ContainerStats stats = 1; -} - -message ListContainerStatsRequest{ - // Filter for the list request. - ContainerStatsFilter filter = 1; -} - -// ContainerStatsFilter is used to filter containers. -// All those fields are combined with 'AND' -message ContainerStatsFilter { - // ID of the container. - string id = 1; - // ID of the PodSandbox. - string pod_sandbox_id = 2; - // LabelSelector to select matches. - // Only api.MatchLabels is supported for now and the requirements - // are ANDed. MatchExpressions is not supported yet. - map label_selector = 3; -} - -message ListContainerStatsResponse { - // Stats of the container. - repeated ContainerStats stats = 1; -} - -// ContainerAttributes provides basic information of the container. -message ContainerAttributes { - // ID of the container. - string id = 1; - // Metadata of the container. - ContainerMetadata metadata = 2; - // Key-value pairs that may be used to scope and select individual resources. - map labels = 3; - // 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. - map annotations = 4; -} - -// ContainerStats provides the resource usage statistics for a container. -message ContainerStats { - // Information of the container. - ContainerAttributes attributes = 1; - // CPU usage gathered from the container. - CpuUsage cpu = 2; - // Memory usage gathered from the container. - MemoryUsage memory = 3; - // Usage of the writeable layer. - FilesystemUsage writable_layer = 4; -} - -// CpuUsage provides the CPU usage information. -message CpuUsage { - // Timestamp in nanoseconds at which the information were collected. Must be > 0. - int64 timestamp = 1; - // Cumulative CPU usage (sum across all cores) since object creation. - UInt64Value usage_core_nano_seconds = 2; -} - -// MemoryUsage provides the memory usage information. -message MemoryUsage { - // Timestamp in nanoseconds at which the information were collected. Must be > 0. - int64 timestamp = 1; - // The amount of working set memory in bytes. - UInt64Value working_set_bytes = 2; -} \ No newline at end of file diff --git a/cri/v1alpha1/cri.go b/cri/v1alpha1/cri.go index ab5e7f040d..4f8fd65e22 100644 --- a/cri/v1alpha1/cri.go +++ b/cri/v1alpha1/cri.go @@ -13,7 +13,6 @@ import ( apitypes "github.com/alibaba/pouch/apis/types" anno "github.com/alibaba/pouch/cri/annotations" - runtime "github.com/alibaba/pouch/cri/apis/v1alpha1" "github.com/alibaba/pouch/daemon/config" "github.com/alibaba/pouch/daemon/mgr" "github.com/alibaba/pouch/pkg/errtypes" @@ -25,6 +24,7 @@ import ( // NOTE: "golang.org/x/net/context" is compatible with standard "context" in golang1.7+. "github.com/cri-o/ocicni/pkg/ocicni" "github.com/sirupsen/logrus" + "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" ) const ( @@ -497,7 +497,6 @@ func (c *CriManager) CreateContainer(ctx context.Context, r *runtime.CreateConta specAnnotation[anno.ContainerType] = anno.ContainerTypeContainer specAnnotation[anno.SandboxName] = podSandboxID - resources := r.GetConfig().GetLinux().GetResources() createConfig := &apitypes.ContainerCreateConfig{ ContainerConfig: apitypes.ContainerConfig{ Entrypoint: config.Command, @@ -511,12 +510,9 @@ func (c *CriManager) CreateContainer(ctx context.Context, r *runtime.CreateConta StdinOnce: config.StdinOnce, Tty: config.Tty, SpecAnnotation: specAnnotation, - NetPriority: config.NetPriority, - DiskQuota: resources.GetDiskQuota(), }, HostConfig: &apitypes.HostConfig{ - Binds: generateMountBindings(config.GetMounts()), - Resources: parseResourcesFromCRI(resources), + Binds: generateMountBindings(config.GetMounts()), }, NetworkingConfig: &apitypes.NetworkingConfig{}, } @@ -717,8 +713,6 @@ func (c *CriManager) ContainerStatus(ctx context.Context, r *runtime.ContainerSt imageRef = imageInfo.RepoDigests[0] } - resources := container.HostConfig.Resources - diskQuota := container.Config.DiskQuota status := &runtime.ContainerStatus{ Id: container.ID, Metadata: metadata, @@ -735,8 +729,6 @@ func (c *CriManager) ContainerStatus(ctx context.Context, r *runtime.ContainerSt Labels: labels, Annotations: annotations, // TODO: LogPath. - Volumes: parseVolumesFromPouch(container.Config.Volumes), - Resources: parseResourcesFromPouch(resources, diskQuota), } return &runtime.ContainerStatusResponse{Status: status}, nil @@ -803,7 +795,6 @@ func (c *CriManager) UpdateContainerResources(ctx context.Context, r *runtime.Up resources := r.GetLinux() updateConfig := &apitypes.UpdateConfig{ Resources: parseResourcesFromCRI(resources), - DiskQuota: resources.GetDiskQuota(), } err = c.ContainerMgr.Update(ctx, containerID, updateConfig) if err != nil { diff --git a/cri/v1alpha1/cri_network.go b/cri/v1alpha1/cri_network.go index 910c42d2b6..480fcf1ffd 100644 --- a/cri/v1alpha1/cri_network.go +++ b/cri/v1alpha1/cri_network.go @@ -5,11 +5,11 @@ import ( "os" "strings" - runtime "github.com/alibaba/pouch/cri/apis/v1alpha1" "github.com/alibaba/pouch/cri/config" "github.com/cri-o/ocicni/pkg/ocicni" "github.com/sirupsen/logrus" + "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" ) // CniMgr as an interface defines all operations against CNI. diff --git a/cri/v1alpha1/cri_types.go b/cri/v1alpha1/cri_types.go index 12364828e9..8370d62571 100644 --- a/cri/v1alpha1/cri_types.go +++ b/cri/v1alpha1/cri_types.go @@ -1,7 +1,7 @@ package v1alpha1 import ( - runtime "github.com/alibaba/pouch/cri/apis/v1alpha1" + "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" ) // SandboxMeta represents the sandbox's meta data. diff --git a/cri/v1alpha1/cri_utils.go b/cri/v1alpha1/cri_utils.go index edd9f72efc..b7d150401d 100644 --- a/cri/v1alpha1/cri_utils.go +++ b/cri/v1alpha1/cri_utils.go @@ -15,7 +15,6 @@ import ( apitypes "github.com/alibaba/pouch/apis/types" anno "github.com/alibaba/pouch/cri/annotations" - runtime "github.com/alibaba/pouch/cri/apis/v1alpha1" "github.com/alibaba/pouch/daemon/mgr" "github.com/alibaba/pouch/pkg/utils" @@ -25,6 +24,7 @@ import ( "github.com/go-openapi/strfmt" "golang.org/x/net/context" "golang.org/x/sys/unix" + "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" ) const uuidDir = "/dev/disk/by-uuid" @@ -771,7 +771,6 @@ func imageToCriImage(image *apitypes.ImageInfo) (*runtime.Image, error) { Size_: size, Uid: uid, Username: username, - Volumes: parseVolumesFromPouch(image.Config.Volumes), }, nil } @@ -946,132 +945,12 @@ func blkrdev(device string) (uint64, error) { // parseResourceFromCRI parse Resources from runtime.LinuxContainerResources to apitypes.Resources func parseResourcesFromCRI(runtimeResources *runtime.LinuxContainerResources) apitypes.Resources { - var memorySwappiness *int64 - if runtimeResources.GetMemorySwappiness() != nil { - memorySwappiness = &runtimeResources.GetMemorySwappiness().Value - } - return apitypes.Resources{ - CPUPeriod: runtimeResources.GetCpuPeriod(), - CPUQuota: runtimeResources.GetCpuQuota(), - CPUShares: runtimeResources.GetCpuShares(), - Memory: runtimeResources.GetMemoryLimitInBytes(), - CpusetCpus: runtimeResources.GetCpusetCpus(), - CpusetMems: runtimeResources.GetCpusetMems(), - BlkioWeight: uint16(runtimeResources.GetBlkioWeight()), - BlkioWeightDevice: parseWeightDeviceFromCRI(runtimeResources.GetBlkioWeightDevice()), - BlkioDeviceReadBps: parseThrottleDeviceFromCRI(runtimeResources.GetBlkioDeviceReadBps()), - BlkioDeviceWriteBps: parseThrottleDeviceFromCRI(runtimeResources.GetBlkioDeviceWriteBps()), - BlkioDeviceReadIOps: parseThrottleDeviceFromCRI(runtimeResources.GetBlkioDeviceRead_IOps()), - BlkioDeviceWriteIOps: parseThrottleDeviceFromCRI(runtimeResources.GetBlkioDeviceWrite_IOps()), - KernelMemory: runtimeResources.GetKernelMemory(), - MemoryReservation: runtimeResources.GetMemoryReservation(), - MemorySwappiness: memorySwappiness, - Ulimits: parseUlimitFromCRI(runtimeResources.GetUlimits()), - } -} - -// parseResourceFromPouch parse Resources from apitypes.Resources to runtime.LinuxContainerResources -func parseResourcesFromPouch(apitypesResources apitypes.Resources, diskQuota map[string]string) *runtime.LinuxContainerResources { - var memorySwappiness *runtime.Int64Value - if apitypesResources.MemorySwappiness != nil { - memorySwappiness = &runtime.Int64Value{Value: *apitypesResources.MemorySwappiness} - } - - return &runtime.LinuxContainerResources{ - CpuPeriod: apitypesResources.CPUPeriod, - CpuQuota: apitypesResources.CPUQuota, - CpuShares: apitypesResources.CPUShares, - MemoryLimitInBytes: apitypesResources.Memory, - CpusetCpus: apitypesResources.CpusetCpus, - CpusetMems: apitypesResources.CpusetMems, - BlkioWeight: uint32(apitypesResources.BlkioWeight), - BlkioWeightDevice: parseWeightDeviceFromPouch(apitypesResources.BlkioWeightDevice), - BlkioDeviceReadBps: parseThrottleDeviceFromPouch(apitypesResources.BlkioDeviceReadBps), - BlkioDeviceWriteBps: parseThrottleDeviceFromPouch(apitypesResources.BlkioDeviceWriteBps), - BlkioDeviceRead_IOps: parseThrottleDeviceFromPouch(apitypesResources.BlkioDeviceReadIOps), - BlkioDeviceWrite_IOps: parseThrottleDeviceFromPouch(apitypesResources.BlkioDeviceWriteIOps), - KernelMemory: apitypesResources.KernelMemory, - MemoryReservation: apitypesResources.MemoryReservation, - MemorySwappiness: memorySwappiness, - Ulimits: parseUlimitFromPouch(apitypesResources.Ulimits), - DiskQuota: diskQuota, - } -} - -// parseWeightDeviceFromCRI parse WeightDevice from runtime.WeightDevice to apitypes.WeightDevice -func parseWeightDeviceFromCRI(runtimeWeightDevices []*runtime.WeightDevice) (weightDevices []*apitypes.WeightDevice) { - for _, v := range runtimeWeightDevices { - weightDevices = append(weightDevices, &apitypes.WeightDevice{ - Path: v.GetPath(), - Weight: uint16(v.GetWeight()), - }) - } - return -} - -// parseWeightDeviceFromPouch parse WeightDevice from apitypes.WeightDevice to runtime.WeightDevice -func parseWeightDeviceFromPouch(apitypesWeightDevices []*apitypes.WeightDevice) (weightDevices []*runtime.WeightDevice) { - for _, v := range apitypesWeightDevices { - weightDevices = append(weightDevices, &runtime.WeightDevice{ - Path: v.Path, - Weight: uint32(v.Weight), - }) - } - return -} - -// parseThrottleDeviceFromCRI parse ThrottleDevice from runtime.ThrottleDevice to apitypes.ThrottleDevice -func parseThrottleDeviceFromCRI(runtimeThrottleDevices []*runtime.ThrottleDevice) (throttleDevices []*apitypes.ThrottleDevice) { - for _, v := range runtimeThrottleDevices { - throttleDevices = append(throttleDevices, &apitypes.ThrottleDevice{ - Path: v.GetPath(), - Rate: v.GetRate(), - }) - } - return -} - -// parseThrottleDeviceFromPouch parse ThrottleDevice from apitypes.ThrottleDevice to runtime.ThrottleDevice -func parseThrottleDeviceFromPouch(apitypesThrottleDevices []*apitypes.ThrottleDevice) (throttleDevices []*runtime.ThrottleDevice) { - for _, v := range apitypesThrottleDevices { - throttleDevices = append(throttleDevices, &runtime.ThrottleDevice{ - Path: v.Path, - Rate: v.Rate, - }) - } - return -} - -// parseUlimitFromCRI parse Ulimit from runtime.Ulimit to apitypes.Ulimit -func parseUlimitFromCRI(runtimeUlimits []*runtime.Ulimit) (ulimits []*apitypes.Ulimit) { - for _, v := range runtimeUlimits { - ulimits = append(ulimits, &apitypes.Ulimit{ - Hard: v.GetHard(), - Name: v.GetName(), - Soft: v.GetSoft(), - }) - } - return -} - -// parseUlimitFromPouch parse Ulimit from apitypes.Ulimit to runtime.Ulimit -func parseUlimitFromPouch(apitypesUlimits []*apitypes.Ulimit) (ulimits []*runtime.Ulimit) { - for _, v := range apitypesUlimits { - ulimits = append(ulimits, &runtime.Ulimit{ - Hard: v.Hard, - Name: v.Name, - Soft: v.Soft, - }) - } - return -} - -// parseVolumesFromPouch parse Volumes from map[string]interface{} to map[string]*runtime.Volume -func parseVolumesFromPouch(containerVolumes map[string]interface{}) map[string]*runtime.Volume { - volumes := make(map[string]*runtime.Volume) - for k := range containerVolumes { - volumes[k] = &runtime.Volume{} + CPUPeriod: runtimeResources.GetCpuPeriod(), + CPUQuota: runtimeResources.GetCpuQuota(), + CPUShares: runtimeResources.GetCpuShares(), + Memory: runtimeResources.GetMemoryLimitInBytes(), + CpusetCpus: runtimeResources.GetCpusetCpus(), + CpusetMems: runtimeResources.GetCpusetMems(), } - return volumes } diff --git a/cri/v1alpha1/cri_utils_test.go b/cri/v1alpha1/cri_utils_test.go index cf56dea07d..01f39c393f 100644 --- a/cri/v1alpha1/cri_utils_test.go +++ b/cri/v1alpha1/cri_utils_test.go @@ -7,74 +7,11 @@ import ( "testing" apitypes "github.com/alibaba/pouch/apis/types" - runtime "github.com/alibaba/pouch/cri/apis/v1alpha1" "github.com/alibaba/pouch/daemon/mgr" "github.com/stretchr/testify/assert" "golang.org/x/net/context" -) - -var ( - memorySwappiness int64 = 1000 - resources = apitypes.Resources{ - CPUPeriod: 1000, - CPUQuota: 1000, - CPUShares: 1000, - Memory: 1000, - CpusetCpus: "0", - CpusetMems: "0", - BlkioWeight: uint16(100), - BlkioWeightDevice: []*apitypes.WeightDevice{ - { - Path: "foo", - Weight: uint16(1), - }, - }, - BlkioDeviceReadBps: []*apitypes.ThrottleDevice{ - { - Path: "foo", - Rate: uint64(1000), - }, - }, - MemorySwappiness: &memorySwappiness, - Ulimits: []*apitypes.Ulimit{ - { - Name: "foo", - Hard: 1, - Soft: 1, - }, - }, - } - linuxContainerResources = runtime.LinuxContainerResources{ - CpuPeriod: 1000, - CpuQuota: 1000, - CpuShares: 1000, - MemoryLimitInBytes: 1000, - CpusetCpus: "0", - CpusetMems: "0", - BlkioWeight: uint32(100), - DiskQuota: map[string]string{"foo": "foo"}, - BlkioWeightDevice: []*runtime.WeightDevice{ - { - Path: "foo", - Weight: uint32(1), - }, - }, - BlkioDeviceReadBps: []*runtime.ThrottleDevice{ - { - Path: "foo", - Rate: uint64(1000), - }, - }, - MemorySwappiness: &runtime.Int64Value{Value: 1000}, - Ulimits: []*runtime.Ulimit{ - { - Name: "foo", - Hard: 1, - Soft: 1, - }, - }, - } + "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" ) func Test_parseUint32(t *testing.T) { @@ -835,6 +772,24 @@ func Test_parseUserFromImageUser(t *testing.T) { } func Test_parseResourcesFromCRI(t *testing.T) { + var ( + resources = apitypes.Resources{ + CPUPeriod: 1000, + CPUQuota: 1000, + CPUShares: 1000, + Memory: 1000, + CpusetCpus: "0", + CpusetMems: "0", + } + linuxContainerResources = runtime.LinuxContainerResources{ + CpuPeriod: 1000, + CpuQuota: 1000, + CpuShares: 1000, + MemoryLimitInBytes: 1000, + CpusetCpus: "0", + CpusetMems: "0", + } + ) type args struct { runtimeResources *runtime.LinuxContainerResources } @@ -866,72 +821,3 @@ func Test_parseResourcesFromCRI(t *testing.T) { }) } } - -func Test_parseResourcesFromPouch(t *testing.T) { - type args struct { - apitypesResources apitypes.Resources - diskQuota map[string]string - } - tests := []struct { - name string - args args - want *runtime.LinuxContainerResources - }{ - { - name: "normal test", - args: args{ - apitypesResources: resources, - diskQuota: map[string]string{"foo": "foo"}, - }, - want: &linuxContainerResources, - }, - { - name: "nil test", - args: args{ - apitypesResources: apitypes.Resources{}, - diskQuota: nil, - }, - want: &runtime.LinuxContainerResources{}, - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - if got := parseResourcesFromPouch(tt.args.apitypesResources, tt.args.diskQuota); !reflect.DeepEqual(got, tt.want) { - t.Errorf("parseResourcesFromPouch() = %v, want %v", got, tt.want) - } - }) - } -} - -func Test_parseVolumesFromPouch(t *testing.T) { - type args struct { - containerVolumes map[string]interface{} - } - tests := []struct { - name string - args args - want map[string]*runtime.Volume - }{ - { - name: "normal test", - args: args{ - containerVolumes: map[string]interface{}{"foo": "foo"}, - }, - want: map[string]*runtime.Volume{"foo": {}}, - }, - { - name: "nil test", - args: args{ - containerVolumes: make(map[string]interface{}), - }, - want: make(map[string]*runtime.Volume), - }, - } - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - if got := parseVolumesFromPouch(tt.args.containerVolumes); !reflect.DeepEqual(got, tt.want) { - t.Errorf("parseVolumesFromPouch() = %v, want %v", got, tt.want) - } - }) - } -} diff --git a/cri/v1alpha1/cri_wrapper.go b/cri/v1alpha1/cri_wrapper.go index 84313612e0..4f453b8fd2 100644 --- a/cri/v1alpha1/cri_wrapper.go +++ b/cri/v1alpha1/cri_wrapper.go @@ -1,10 +1,9 @@ package v1alpha1 import ( - runtime "github.com/alibaba/pouch/cri/apis/v1alpha1" - "github.com/sirupsen/logrus" "golang.org/x/net/context" + "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" ) // CriWrapper wraps CriManager and logs each operation for debugging convenice. diff --git a/cri/v1alpha1/server.go b/cri/v1alpha1/server.go index 9e66c55b28..2b5b2d1f2b 100644 --- a/cri/v1alpha1/server.go +++ b/cri/v1alpha1/server.go @@ -5,7 +5,6 @@ import ( "net/url" "path" - runtimeapi "github.com/alibaba/pouch/cri/apis/v1alpha1" "github.com/alibaba/pouch/cri/stream" "github.com/alibaba/pouch/cri/stream/portforward" "github.com/alibaba/pouch/cri/stream/remotecommand" @@ -13,6 +12,7 @@ import ( "github.com/gorilla/mux" "google.golang.org/grpc" "google.golang.org/grpc/codes" + runtimeapi "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" ) // Server as an interface defines all operations against stream server. diff --git a/cri/v1alpha1/service/cri.go b/cri/v1alpha1/service/cri.go index ea6497ab54..f5c327bc6f 100644 --- a/cri/v1alpha1/service/cri.go +++ b/cri/v1alpha1/service/cri.go @@ -5,11 +5,11 @@ import ( "os" "syscall" - runtime "github.com/alibaba/pouch/cri/apis/v1alpha1" cri "github.com/alibaba/pouch/cri/v1alpha1" "github.com/alibaba/pouch/daemon/config" "google.golang.org/grpc" + "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" ) // Service serves the kubelet runtime grpc api which will be consumed by kubelet. diff --git a/daemon/containerio/cri_log_file.go b/daemon/containerio/cri_log_file.go index 61778edf59..d1e2420081 100644 --- a/daemon/containerio/cri_log_file.go +++ b/daemon/containerio/cri_log_file.go @@ -7,8 +7,8 @@ import ( "os" "time" - runtime "github.com/alibaba/pouch/cri/apis/v1alpha1" "github.com/sirupsen/logrus" + "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime" ) const ( diff --git a/hack/install/install_critest.sh b/hack/install/install_critest.sh index 5988f4f56e..c31f7d0e70 100755 --- a/hack/install/install_critest.sh +++ b/hack/install/install_critest.sh @@ -2,7 +2,7 @@ set -euo pipefail -readonly CRITEST_VERSION=1.0.0-beta.0 +CRITEST_VERSION=1.0.0-beta.0 # keep the first one only GOPATH="${GOPATH%%:*}" @@ -60,7 +60,15 @@ critest::install_ginkgo() { main() { critest::install_ginkgo - local has_installed + local cri_runtime has_installed + cri_runtime=$1 + + if [[ "${cri_runtime}" == "v1alpha1" ]]; then + CRITEST_VERSION="1.0.0-alpha.0" + else + CRITEST_VERSION="1.0.0-beta.0" + fi + has_installed="$(critest::check_version)" if [[ "${has_installed}" = "true" ]]; then echo "critest-${CRITEST_VERSION} has been installed." @@ -74,4 +82,4 @@ main() { command -v ginkgo > /dev/null } -main +main "$@" diff --git a/hack/testing/run_daemon_cri_integration.sh b/hack/testing/run_daemon_cri_integration.sh index 0fa9ec3684..cc67b50fbf 100755 --- a/hack/testing/run_daemon_cri_integration.sh +++ b/hack/testing/run_daemon_cri_integration.sh @@ -35,14 +35,11 @@ pouchd_log="${tmplog_dir}/pouchd.log" local_persist_log="${tmplog_dir}/local_persist.log" trap 'rm -rf /tmp/integration-daemon-cri-testing-*' EXIT -# daemon cri integration coverage profile -coverage_profile="${REPO_BASE}/coverage/integration_daemon_cri_profile.out" -rm -rf "${coverage_profile}" - - # integration::install_critest installs test case. integration::install_critest() { - hack/install/install_critest.sh + local cri_runtime + cri_runtime=$1 + hack/install/install_critest.sh "${cri_runtime}" } # integration::install_cni installs cni plugins. @@ -105,11 +102,19 @@ EOF' # integration::run_daemon_cri_test_cases runs CRI test cases. integration::run_daemon_cri_test_cases() { echo "start pouch daemon cri integration test..." - local code + local cri_runtime code + cri_runtime=$1 set +e - critest --runtime-endpoint=${POUCH_SOCK} \ - --ginkgo.focus="${CRI_FOCUS}" --ginkgo.skip="${CRI_SKIP}" + if [[ "${cri_runtime}" == "v1alpha1" ]]; then + echo "run v1alpha1 test" + critest --runtime-endpoint=${POUCH_SOCK} \ + --focus="${CRI_FOCUS}" --ginkgo-flags="--skip=\"${CRI_SKIP}\"" validation + else + echo "run v1alpha2 test" + critest --runtime-endpoint=${POUCH_SOCK} \ + --ginkgo.focus="${CRI_FOCUS}" --ginkgo.skip="${CRI_SKIP}" + fi code=$? integration::stop_local_persist @@ -127,14 +132,19 @@ integration::run_daemon_cri_test_cases() { sleep 5 } -main() { - local cmd flags +integration::run_cri_test(){ + local cri_runtime cmd flags coverage_profile + cri_runtime=$1 + + # daemon cri integration coverage profile + coverage_profile="${REPO_BASE}/coverage/integration_daemon_cri_${cri_runtime}_profile.out" + rm -rf "${coverage_profile}" + cmd="pouchd-integration" flags=" -test.coverprofile=${coverage_profile} DEVEL" - flags="${flags} --enable-cri --sandbox-image=gcr.io/google_containers/pause-amd64:3.0" + flags="${flags} --enable-cri --cri-version ${cri_runtime} --sandbox-image=gcr.io/google_containers/pause-amd64:3.0" - integration::install_cni - integration::install_critest + integration::install_critest "${cri_runtime}" integration::stop_local_persist integration::run_local_persist_background "${local_persist_log}" @@ -147,7 +157,15 @@ main() { cat "${pouchd_log}" exit ${code} fi - integration::run_daemon_cri_test_cases + integration::run_daemon_cri_test_cases "${cri_runtime}" +} + +main() { + local cri_runtime + cri_runtime=$1 + + integration::install_cni + integration::run_cri_test "${cri_runtime}" } main "$@" diff --git a/vendor/k8s.io/kubernetes/LICENSE b/vendor/k8s.io/kubernetes/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/vendor/k8s.io/kubernetes/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/cri/apis/v1alpha1/BUILD b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD similarity index 100% rename from cri/apis/v1alpha1/BUILD rename to vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD diff --git a/cri/apis/v1alpha1/api.pb.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go similarity index 87% rename from cri/apis/v1alpha1/api.pb.go rename to vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go index 0b771079af..f0b41f00a5 100644 --- a/cri/apis/v1alpha1/api.pb.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright 2017 The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -13,12 +13,13 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ + // Code generated by protoc-gen-gogo. // source: api.proto // DO NOT EDIT! /* - Package v1alpha1 is a generated protocol buffer package. + Package runtime is a generated protocol buffer package. It is generated from these files: api.proto @@ -55,9 +56,6 @@ limitations under the License. ImageSpec KeyValue LinuxContainerResources - WeightDevice - ThrottleDevice - Ulimit SELinuxOption Capability LinuxContainerSecurityContext @@ -80,7 +78,6 @@ limitations under the License. ListContainersResponse ContainerStatusRequest ContainerStatus - Volume ContainerStatusResponse UpdateContainerResourcesRequest UpdateContainerResourcesResponse @@ -126,7 +123,7 @@ limitations under the License. CpuUsage MemoryUsage */ -package v1alpha1 +package runtime import proto "github.com/gogo/protobuf/proto" import fmt "fmt" @@ -352,7 +349,7 @@ func (m *DNSConfig) GetOptions() []string { // PortMapping specifies the port mapping configurations of a sandbox. type PortMapping struct { // Protocol of the port mapping. - Protocol Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=v1alpha1.Protocol" json:"protocol,omitempty"` + Protocol Protocol `protobuf:"varint,1,opt,name=protocol,proto3,enum=runtime.Protocol" json:"protocol,omitempty"` // Port number within the container. Default: 0 (not specified). ContainerPort int32 `protobuf:"varint,2,opt,name=container_port,json=containerPort,proto3" json:"container_port,omitempty"` // Port number on the host. Default: 0 (not specified). @@ -404,7 +401,7 @@ type Mount struct { // If set, the mount needs SELinux relabeling. SelinuxRelabel bool `protobuf:"varint,4,opt,name=selinux_relabel,json=selinuxRelabel,proto3" json:"selinux_relabel,omitempty"` // Requested propagation mode. - Propagation MountPropagation `protobuf:"varint,5,opt,name=propagation,proto3,enum=v1alpha1.MountPropagation" json:"propagation,omitempty"` + Propagation MountPropagation `protobuf:"varint,5,opt,name=propagation,proto3,enum=runtime.MountPropagation" json:"propagation,omitempty"` } func (m *Mount) Reset() { *m = Mount{} } @@ -943,7 +940,7 @@ type PodSandboxStatus struct { // Metadata of the sandbox. Metadata *PodSandboxMetadata `protobuf:"bytes,2,opt,name=metadata" json:"metadata,omitempty"` // State of the sandbox. - State PodSandboxState `protobuf:"varint,3,opt,name=state,proto3,enum=v1alpha1.PodSandboxState" json:"state,omitempty"` + State PodSandboxState `protobuf:"varint,3,opt,name=state,proto3,enum=runtime.PodSandboxState" json:"state,omitempty"` // Creation timestamp of the sandbox in nanoseconds. Must be > 0. CreatedAt int64 `protobuf:"varint,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // Network contains network status if network is handled by the runtime. @@ -1050,7 +1047,7 @@ func (m *PodSandboxStatusResponse) GetInfo() map[string]string { // PodSandboxStateValue is the wrapper of PodSandboxState. type PodSandboxStateValue struct { // State of the sandbox. - State PodSandboxState `protobuf:"varint,1,opt,name=state,proto3,enum=v1alpha1.PodSandboxState" json:"state,omitempty"` + State PodSandboxState `protobuf:"varint,1,opt,name=state,proto3,enum=runtime.PodSandboxState" json:"state,omitempty"` } func (m *PodSandboxStateValue) Reset() { *m = PodSandboxStateValue{} } @@ -1125,7 +1122,7 @@ type PodSandbox struct { // Metadata of the PodSandbox. Metadata *PodSandboxMetadata `protobuf:"bytes,2,opt,name=metadata" json:"metadata,omitempty"` // State of the PodSandbox. - State PodSandboxState `protobuf:"varint,3,opt,name=state,proto3,enum=v1alpha1.PodSandboxState" json:"state,omitempty"` + State PodSandboxState `protobuf:"varint,3,opt,name=state,proto3,enum=runtime.PodSandboxState" json:"state,omitempty"` // Creation timestamps of the PodSandbox in nanoseconds. Must be > 0. CreatedAt int64 `protobuf:"varint,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // Labels of the PodSandbox. @@ -1259,23 +1256,6 @@ type LinuxContainerResources struct { CpusetCpus string `protobuf:"bytes,6,opt,name=cpuset_cpus,json=cpusetCpus,proto3" json:"cpuset_cpus,omitempty"` // CpusetMems constrains the allowed set of memory nodes. Default: "" (not specified). CpusetMems string `protobuf:"bytes,7,opt,name=cpuset_mems,json=cpusetMems,proto3" json:"cpuset_mems,omitempty"` - // DiskQuota constrains the disk - DiskQuota map[string]string `protobuf:"bytes,100,rep,name=disk_quota,json=diskQuota" json:"disk_quota,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // Block IO weight (relative weight vs. other containers) - BlkioWeight uint32 `protobuf:"varint,101,opt,name=blkio_weight,json=blkioWeight,proto3" json:"blkio_weight,omitempty"` - BlkioWeightDevice []*WeightDevice `protobuf:"bytes,102,rep,name=blkio_weight_device,json=blkioWeightDevice" json:"blkio_weight_device,omitempty"` - BlkioDeviceReadBps []*ThrottleDevice `protobuf:"bytes,103,rep,name=blkio_device_read_bps,json=blkioDeviceReadBps" json:"blkio_device_read_bps,omitempty"` - BlkioDeviceWriteBps []*ThrottleDevice `protobuf:"bytes,104,rep,name=blkio_device_write_bps,json=blkioDeviceWriteBps" json:"blkio_device_write_bps,omitempty"` - BlkioDeviceRead_IOps []*ThrottleDevice `protobuf:"bytes,105,rep,name=blkio_device_read_IOps,json=blkioDeviceReadIOps" json:"blkio_device_read_IOps,omitempty"` - BlkioDeviceWrite_IOps []*ThrottleDevice `protobuf:"bytes,106,rep,name=blkio_device_write_IOps,json=blkioDeviceWriteIOps" json:"blkio_device_write_IOps,omitempty"` - // Kernel memory limit (in bytes) - KernelMemory int64 `protobuf:"varint,107,opt,name=kernel_memory,json=kernelMemory,proto3" json:"kernel_memory,omitempty"` - // Memory soft limit (in bytes) - MemoryReservation int64 `protobuf:"varint,108,opt,name=memory_reservation,json=memoryReservation,proto3" json:"memory_reservation,omitempty"` - // Tuning container memory swappiness behaviour - MemorySwappiness *Int64Value `protobuf:"bytes,109,opt,name=memory_swappiness,json=memorySwappiness" json:"memory_swappiness,omitempty"` - // List of ulimits to be set in the container - Ulimits []*Ulimit `protobuf:"bytes,110,rep,name=ulimits" json:"ulimits,omitempty"` } func (m *LinuxContainerResources) Reset() { *m = LinuxContainerResources{} } @@ -1331,170 +1311,6 @@ func (m *LinuxContainerResources) GetCpusetMems() string { return "" } -func (m *LinuxContainerResources) GetDiskQuota() map[string]string { - if m != nil { - return m.DiskQuota - } - return nil -} - -func (m *LinuxContainerResources) GetBlkioWeight() uint32 { - if m != nil { - return m.BlkioWeight - } - return 0 -} - -func (m *LinuxContainerResources) GetBlkioWeightDevice() []*WeightDevice { - if m != nil { - return m.BlkioWeightDevice - } - return nil -} - -func (m *LinuxContainerResources) GetBlkioDeviceReadBps() []*ThrottleDevice { - if m != nil { - return m.BlkioDeviceReadBps - } - return nil -} - -func (m *LinuxContainerResources) GetBlkioDeviceWriteBps() []*ThrottleDevice { - if m != nil { - return m.BlkioDeviceWriteBps - } - return nil -} - -func (m *LinuxContainerResources) GetBlkioDeviceRead_IOps() []*ThrottleDevice { - if m != nil { - return m.BlkioDeviceRead_IOps - } - return nil -} - -func (m *LinuxContainerResources) GetBlkioDeviceWrite_IOps() []*ThrottleDevice { - if m != nil { - return m.BlkioDeviceWrite_IOps - } - return nil -} - -func (m *LinuxContainerResources) GetKernelMemory() int64 { - if m != nil { - return m.KernelMemory - } - return 0 -} - -func (m *LinuxContainerResources) GetMemoryReservation() int64 { - if m != nil { - return m.MemoryReservation - } - return 0 -} - -func (m *LinuxContainerResources) GetMemorySwappiness() *Int64Value { - if m != nil { - return m.MemorySwappiness - } - return nil -} - -func (m *LinuxContainerResources) GetUlimits() []*Ulimit { - if m != nil { - return m.Ulimits - } - return nil -} - -// WeightDevice is a structure that holds device:weight pair -type WeightDevice struct { - // Path of weightdevice. - Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` - // Weight of weightdevice. - Weight uint32 `protobuf:"varint,2,opt,name=Weight,proto3" json:"Weight,omitempty"` -} - -func (m *WeightDevice) Reset() { *m = WeightDevice{} } -func (*WeightDevice) ProtoMessage() {} -func (*WeightDevice) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{31} } - -func (m *WeightDevice) GetPath() string { - if m != nil { - return m.Path - } - return "" -} - -func (m *WeightDevice) GetWeight() uint32 { - if m != nil { - return m.Weight - } - return 0 -} - -// ThrottleDevice is a structure that holds device:rate_per_second pair -type ThrottleDevice struct { - // Path of throttledevice. - Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` - // Rate of throttledevice. - Rate uint64 `protobuf:"varint,2,opt,name=rate,proto3" json:"rate,omitempty"` -} - -func (m *ThrottleDevice) Reset() { *m = ThrottleDevice{} } -func (*ThrottleDevice) ProtoMessage() {} -func (*ThrottleDevice) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{32} } - -func (m *ThrottleDevice) GetPath() string { - if m != nil { - return m.Path - } - return "" -} - -func (m *ThrottleDevice) GetRate() uint64 { - if m != nil { - return m.Rate - } - return 0 -} - -// Ulimit is a human friendly version of Rlimit. -type Ulimit struct { - // Name of ulimit. - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Hard limit of ulimit. - Hard int64 `protobuf:"varint,2,opt,name=hard,proto3" json:"hard,omitempty"` - // Soft limit of Ulimit. - Soft int64 `protobuf:"varint,3,opt,name=soft,proto3" json:"soft,omitempty"` -} - -func (m *Ulimit) Reset() { *m = Ulimit{} } -func (*Ulimit) ProtoMessage() {} -func (*Ulimit) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{33} } - -func (m *Ulimit) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *Ulimit) GetHard() int64 { - if m != nil { - return m.Hard - } - return 0 -} - -func (m *Ulimit) GetSoft() int64 { - if m != nil { - return m.Soft - } - return 0 -} - // SELinuxOption are the labels to be applied to the container. type SELinuxOption struct { User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` @@ -1505,7 +1321,7 @@ type SELinuxOption struct { func (m *SELinuxOption) Reset() { *m = SELinuxOption{} } func (*SELinuxOption) ProtoMessage() {} -func (*SELinuxOption) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{34} } +func (*SELinuxOption) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{31} } func (m *SELinuxOption) GetUser() string { if m != nil { @@ -1545,7 +1361,7 @@ type Capability struct { func (m *Capability) Reset() { *m = Capability{} } func (*Capability) ProtoMessage() {} -func (*Capability) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{35} } +func (*Capability) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{32} } func (m *Capability) GetAddCapabilities() []string { if m != nil { @@ -1622,7 +1438,7 @@ type LinuxContainerSecurityContext struct { func (m *LinuxContainerSecurityContext) Reset() { *m = LinuxContainerSecurityContext{} } func (*LinuxContainerSecurityContext) ProtoMessage() {} func (*LinuxContainerSecurityContext) Descriptor() ([]byte, []int) { - return fileDescriptorApi, []int{36} + return fileDescriptorApi, []int{33} } func (m *LinuxContainerSecurityContext) GetCapabilities() *Capability { @@ -1713,7 +1529,7 @@ type LinuxContainerConfig struct { func (m *LinuxContainerConfig) Reset() { *m = LinuxContainerConfig{} } func (*LinuxContainerConfig) ProtoMessage() {} -func (*LinuxContainerConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{37} } +func (*LinuxContainerConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{34} } func (m *LinuxContainerConfig) GetResources() *LinuxContainerResources { if m != nil { @@ -1743,7 +1559,7 @@ type ContainerMetadata struct { func (m *ContainerMetadata) Reset() { *m = ContainerMetadata{} } func (*ContainerMetadata) ProtoMessage() {} -func (*ContainerMetadata) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{38} } +func (*ContainerMetadata) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{35} } func (m *ContainerMetadata) GetName() string { if m != nil { @@ -1774,7 +1590,7 @@ type Device struct { func (m *Device) Reset() { *m = Device{} } func (*Device) ProtoMessage() {} -func (*Device) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{39} } +func (*Device) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{36} } func (m *Device) GetContainerPath() string { if m != nil { @@ -1857,13 +1673,11 @@ type ContainerConfig struct { Tty bool `protobuf:"varint,14,opt,name=tty,proto3" json:"tty,omitempty"` // Configuration specific to Linux containers. Linux *LinuxContainerConfig `protobuf:"bytes,15,opt,name=linux" json:"linux,omitempty"` - // NetPriority of the container - NetPriority int64 `protobuf:"varint,100,opt,name=net_priority,json=netPriority,proto3" json:"net_priority,omitempty"` } func (m *ContainerConfig) Reset() { *m = ContainerConfig{} } func (*ContainerConfig) ProtoMessage() {} -func (*ContainerConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{40} } +func (*ContainerConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{37} } func (m *ContainerConfig) GetMetadata() *ContainerMetadata { if m != nil { @@ -1970,13 +1784,6 @@ func (m *ContainerConfig) GetLinux() *LinuxContainerConfig { return nil } -func (m *ContainerConfig) GetNetPriority() int64 { - if m != nil { - return m.NetPriority - } - return 0 -} - type CreateContainerRequest struct { // ID of the PodSandbox in which the container should be created. PodSandboxId string `protobuf:"bytes,1,opt,name=pod_sandbox_id,json=podSandboxId,proto3" json:"pod_sandbox_id,omitempty"` @@ -1991,7 +1798,7 @@ type CreateContainerRequest struct { func (m *CreateContainerRequest) Reset() { *m = CreateContainerRequest{} } func (*CreateContainerRequest) ProtoMessage() {} -func (*CreateContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{41} } +func (*CreateContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{38} } func (m *CreateContainerRequest) GetPodSandboxId() string { if m != nil { @@ -2021,7 +1828,7 @@ type CreateContainerResponse struct { func (m *CreateContainerResponse) Reset() { *m = CreateContainerResponse{} } func (*CreateContainerResponse) ProtoMessage() {} -func (*CreateContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{42} } +func (*CreateContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{39} } func (m *CreateContainerResponse) GetContainerId() string { if m != nil { @@ -2037,7 +1844,7 @@ type StartContainerRequest struct { func (m *StartContainerRequest) Reset() { *m = StartContainerRequest{} } func (*StartContainerRequest) ProtoMessage() {} -func (*StartContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{43} } +func (*StartContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{40} } func (m *StartContainerRequest) GetContainerId() string { if m != nil { @@ -2051,7 +1858,7 @@ type StartContainerResponse struct { func (m *StartContainerResponse) Reset() { *m = StartContainerResponse{} } func (*StartContainerResponse) ProtoMessage() {} -func (*StartContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{44} } +func (*StartContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{41} } type StopContainerRequest struct { // ID of the container to stop. @@ -2063,7 +1870,7 @@ type StopContainerRequest struct { func (m *StopContainerRequest) Reset() { *m = StopContainerRequest{} } func (*StopContainerRequest) ProtoMessage() {} -func (*StopContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{45} } +func (*StopContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{42} } func (m *StopContainerRequest) GetContainerId() string { if m != nil { @@ -2084,7 +1891,7 @@ type StopContainerResponse struct { func (m *StopContainerResponse) Reset() { *m = StopContainerResponse{} } func (*StopContainerResponse) ProtoMessage() {} -func (*StopContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{46} } +func (*StopContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{43} } type RemoveContainerRequest struct { // ID of the container to remove. @@ -2093,7 +1900,7 @@ type RemoveContainerRequest struct { func (m *RemoveContainerRequest) Reset() { *m = RemoveContainerRequest{} } func (*RemoveContainerRequest) ProtoMessage() {} -func (*RemoveContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{47} } +func (*RemoveContainerRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{44} } func (m *RemoveContainerRequest) GetContainerId() string { if m != nil { @@ -2107,17 +1914,17 @@ type RemoveContainerResponse struct { func (m *RemoveContainerResponse) Reset() { *m = RemoveContainerResponse{} } func (*RemoveContainerResponse) ProtoMessage() {} -func (*RemoveContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{48} } +func (*RemoveContainerResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{45} } // ContainerStateValue is the wrapper of ContainerState. type ContainerStateValue struct { // State of the container. - State ContainerState `protobuf:"varint,1,opt,name=state,proto3,enum=v1alpha1.ContainerState" json:"state,omitempty"` + State ContainerState `protobuf:"varint,1,opt,name=state,proto3,enum=runtime.ContainerState" json:"state,omitempty"` } func (m *ContainerStateValue) Reset() { *m = ContainerStateValue{} } func (*ContainerStateValue) ProtoMessage() {} -func (*ContainerStateValue) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{49} } +func (*ContainerStateValue) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{46} } func (m *ContainerStateValue) GetState() ContainerState { if m != nil { @@ -2143,7 +1950,7 @@ type ContainerFilter struct { func (m *ContainerFilter) Reset() { *m = ContainerFilter{} } func (*ContainerFilter) ProtoMessage() {} -func (*ContainerFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{50} } +func (*ContainerFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{47} } func (m *ContainerFilter) GetId() string { if m != nil { @@ -2179,7 +1986,7 @@ type ListContainersRequest struct { func (m *ListContainersRequest) Reset() { *m = ListContainersRequest{} } func (*ListContainersRequest) ProtoMessage() {} -func (*ListContainersRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{51} } +func (*ListContainersRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{48} } func (m *ListContainersRequest) GetFilter() *ContainerFilter { if m != nil { @@ -2204,7 +2011,7 @@ type Container struct { // image ID. ImageRef string `protobuf:"bytes,5,opt,name=image_ref,json=imageRef,proto3" json:"image_ref,omitempty"` // State of the container. - State ContainerState `protobuf:"varint,6,opt,name=state,proto3,enum=v1alpha1.ContainerState" json:"state,omitempty"` + State ContainerState `protobuf:"varint,6,opt,name=state,proto3,enum=runtime.ContainerState" json:"state,omitempty"` // Creation time of the container in nanoseconds. CreatedAt int64 `protobuf:"varint,7,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // Key-value pairs that may be used to scope and select individual resources. @@ -2218,7 +2025,7 @@ type Container struct { func (m *Container) Reset() { *m = Container{} } func (*Container) ProtoMessage() {} -func (*Container) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{52} } +func (*Container) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{49} } func (m *Container) GetId() string { if m != nil { @@ -2290,7 +2097,7 @@ type ListContainersResponse struct { func (m *ListContainersResponse) Reset() { *m = ListContainersResponse{} } func (*ListContainersResponse) ProtoMessage() {} -func (*ListContainersResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{53} } +func (*ListContainersResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{50} } func (m *ListContainersResponse) GetContainers() []*Container { if m != nil { @@ -2308,7 +2115,7 @@ type ContainerStatusRequest struct { func (m *ContainerStatusRequest) Reset() { *m = ContainerStatusRequest{} } func (*ContainerStatusRequest) ProtoMessage() {} -func (*ContainerStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{54} } +func (*ContainerStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{51} } func (m *ContainerStatusRequest) GetContainerId() string { if m != nil { @@ -2331,7 +2138,7 @@ type ContainerStatus struct { // Metadata of the container. Metadata *ContainerMetadata `protobuf:"bytes,2,opt,name=metadata" json:"metadata,omitempty"` // Status of the container. - State ContainerState `protobuf:"varint,3,opt,name=state,proto3,enum=v1alpha1.ContainerState" json:"state,omitempty"` + State ContainerState `protobuf:"varint,3,opt,name=state,proto3,enum=runtime.ContainerState" json:"state,omitempty"` // Creation time of the container in nanoseconds. CreatedAt int64 `protobuf:"varint,4,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // Start time of the container in nanoseconds. Default: 0 (not specified). @@ -2361,15 +2168,11 @@ type ContainerStatus struct { Mounts []*Mount `protobuf:"bytes,14,rep,name=mounts" json:"mounts,omitempty"` // Log path of container. LogPath string `protobuf:"bytes,15,opt,name=log_path,json=logPath,proto3" json:"log_path,omitempty"` - // Volumes of container - Volumes map[string]*Volume `protobuf:"bytes,100,rep,name=volumes" json:"volumes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` - // Resources specification for the container - Resources *LinuxContainerResources `protobuf:"bytes,101,opt,name=resources" json:"resources,omitempty"` } func (m *ContainerStatus) Reset() { *m = ContainerStatus{} } func (*ContainerStatus) ProtoMessage() {} -func (*ContainerStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{55} } +func (*ContainerStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{52} } func (m *ContainerStatus) GetId() string { if m != nil { @@ -2476,27 +2279,6 @@ func (m *ContainerStatus) GetLogPath() string { return "" } -func (m *ContainerStatus) GetVolumes() map[string]*Volume { - if m != nil { - return m.Volumes - } - return nil -} - -func (m *ContainerStatus) GetResources() *LinuxContainerResources { - if m != nil { - return m.Resources - } - return nil -} - -type Volume struct { -} - -func (m *Volume) Reset() { *m = Volume{} } -func (*Volume) ProtoMessage() {} -func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{56} } - type ContainerStatusResponse struct { // Status of the container. Status *ContainerStatus `protobuf:"bytes,1,opt,name=status" json:"status,omitempty"` @@ -2509,7 +2291,7 @@ type ContainerStatusResponse struct { func (m *ContainerStatusResponse) Reset() { *m = ContainerStatusResponse{} } func (*ContainerStatusResponse) ProtoMessage() {} -func (*ContainerStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{57} } +func (*ContainerStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{53} } func (m *ContainerStatusResponse) GetStatus() *ContainerStatus { if m != nil { @@ -2535,7 +2317,7 @@ type UpdateContainerResourcesRequest struct { func (m *UpdateContainerResourcesRequest) Reset() { *m = UpdateContainerResourcesRequest{} } func (*UpdateContainerResourcesRequest) ProtoMessage() {} func (*UpdateContainerResourcesRequest) Descriptor() ([]byte, []int) { - return fileDescriptorApi, []int{58} + return fileDescriptorApi, []int{54} } func (m *UpdateContainerResourcesRequest) GetContainerId() string { @@ -2558,7 +2340,7 @@ type UpdateContainerResourcesResponse struct { func (m *UpdateContainerResourcesResponse) Reset() { *m = UpdateContainerResourcesResponse{} } func (*UpdateContainerResourcesResponse) ProtoMessage() {} func (*UpdateContainerResourcesResponse) Descriptor() ([]byte, []int) { - return fileDescriptorApi, []int{59} + return fileDescriptorApi, []int{55} } type ExecSyncRequest struct { @@ -2572,7 +2354,7 @@ type ExecSyncRequest struct { func (m *ExecSyncRequest) Reset() { *m = ExecSyncRequest{} } func (*ExecSyncRequest) ProtoMessage() {} -func (*ExecSyncRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{60} } +func (*ExecSyncRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{56} } func (m *ExecSyncRequest) GetContainerId() string { if m != nil { @@ -2606,7 +2388,7 @@ type ExecSyncResponse struct { func (m *ExecSyncResponse) Reset() { *m = ExecSyncResponse{} } func (*ExecSyncResponse) ProtoMessage() {} -func (*ExecSyncResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{61} } +func (*ExecSyncResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{57} } func (m *ExecSyncResponse) GetStdout() []byte { if m != nil { @@ -2652,7 +2434,7 @@ type ExecRequest struct { func (m *ExecRequest) Reset() { *m = ExecRequest{} } func (*ExecRequest) ProtoMessage() {} -func (*ExecRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{62} } +func (*ExecRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{58} } func (m *ExecRequest) GetContainerId() string { if m != nil { @@ -2703,7 +2485,7 @@ type ExecResponse struct { func (m *ExecResponse) Reset() { *m = ExecResponse{} } func (*ExecResponse) ProtoMessage() {} -func (*ExecResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{63} } +func (*ExecResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{59} } func (m *ExecResponse) GetUrl() string { if m != nil { @@ -2734,7 +2516,7 @@ type AttachRequest struct { func (m *AttachRequest) Reset() { *m = AttachRequest{} } func (*AttachRequest) ProtoMessage() {} -func (*AttachRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{64} } +func (*AttachRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{60} } func (m *AttachRequest) GetContainerId() string { if m != nil { @@ -2778,7 +2560,7 @@ type AttachResponse struct { func (m *AttachResponse) Reset() { *m = AttachResponse{} } func (*AttachResponse) ProtoMessage() {} -func (*AttachResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{65} } +func (*AttachResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{61} } func (m *AttachResponse) GetUrl() string { if m != nil { @@ -2796,7 +2578,7 @@ type PortForwardRequest struct { func (m *PortForwardRequest) Reset() { *m = PortForwardRequest{} } func (*PortForwardRequest) ProtoMessage() {} -func (*PortForwardRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{66} } +func (*PortForwardRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{62} } func (m *PortForwardRequest) GetPodSandboxId() string { if m != nil { @@ -2819,7 +2601,7 @@ type PortForwardResponse struct { func (m *PortForwardResponse) Reset() { *m = PortForwardResponse{} } func (*PortForwardResponse) ProtoMessage() {} -func (*PortForwardResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{67} } +func (*PortForwardResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{63} } func (m *PortForwardResponse) GetUrl() string { if m != nil { @@ -2835,7 +2617,7 @@ type ImageFilter struct { func (m *ImageFilter) Reset() { *m = ImageFilter{} } func (*ImageFilter) ProtoMessage() {} -func (*ImageFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{68} } +func (*ImageFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{64} } func (m *ImageFilter) GetImage() *ImageSpec { if m != nil { @@ -2851,7 +2633,7 @@ type ListImagesRequest struct { func (m *ListImagesRequest) Reset() { *m = ListImagesRequest{} } func (*ListImagesRequest) ProtoMessage() {} -func (*ListImagesRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{69} } +func (*ListImagesRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{65} } func (m *ListImagesRequest) GetFilter() *ImageFilter { if m != nil { @@ -2877,13 +2659,11 @@ type Image struct { // User name that will run the command(s). This is used if UID is not set // and no user is specified when creating container. Username string `protobuf:"bytes,6,opt,name=username,proto3" json:"username,omitempty"` - // Volumes of image - Volumes map[string]*Volume `protobuf:"bytes,100,rep,name=volumes" json:"volumes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value"` } func (m *Image) Reset() { *m = Image{} } func (*Image) ProtoMessage() {} -func (*Image) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{70} } +func (*Image) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{66} } func (m *Image) GetId() string { if m != nil { @@ -2927,13 +2707,6 @@ func (m *Image) GetUsername() string { return "" } -func (m *Image) GetVolumes() map[string]*Volume { - if m != nil { - return m.Volumes - } - return nil -} - type ListImagesResponse struct { // List of images. Images []*Image `protobuf:"bytes,1,rep,name=images" json:"images,omitempty"` @@ -2941,7 +2714,7 @@ type ListImagesResponse struct { func (m *ListImagesResponse) Reset() { *m = ListImagesResponse{} } func (*ListImagesResponse) ProtoMessage() {} -func (*ListImagesResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{71} } +func (*ListImagesResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{67} } func (m *ListImagesResponse) GetImages() []*Image { if m != nil { @@ -2959,7 +2732,7 @@ type ImageStatusRequest struct { func (m *ImageStatusRequest) Reset() { *m = ImageStatusRequest{} } func (*ImageStatusRequest) ProtoMessage() {} -func (*ImageStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{72} } +func (*ImageStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{68} } func (m *ImageStatusRequest) GetImage() *ImageSpec { if m != nil { @@ -2987,7 +2760,7 @@ type ImageStatusResponse struct { func (m *ImageStatusResponse) Reset() { *m = ImageStatusResponse{} } func (*ImageStatusResponse) ProtoMessage() {} -func (*ImageStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{73} } +func (*ImageStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{69} } func (m *ImageStatusResponse) GetImage() *Image { if m != nil { @@ -3018,7 +2791,7 @@ type AuthConfig struct { func (m *AuthConfig) Reset() { *m = AuthConfig{} } func (*AuthConfig) ProtoMessage() {} -func (*AuthConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{74} } +func (*AuthConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{70} } func (m *AuthConfig) GetUsername() string { if m != nil { @@ -3073,7 +2846,7 @@ type PullImageRequest struct { func (m *PullImageRequest) Reset() { *m = PullImageRequest{} } func (*PullImageRequest) ProtoMessage() {} -func (*PullImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{75} } +func (*PullImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{71} } func (m *PullImageRequest) GetImage() *ImageSpec { if m != nil { @@ -3104,7 +2877,7 @@ type PullImageResponse struct { func (m *PullImageResponse) Reset() { *m = PullImageResponse{} } func (*PullImageResponse) ProtoMessage() {} -func (*PullImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{76} } +func (*PullImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{72} } func (m *PullImageResponse) GetImageRef() string { if m != nil { @@ -3120,7 +2893,7 @@ type RemoveImageRequest struct { func (m *RemoveImageRequest) Reset() { *m = RemoveImageRequest{} } func (*RemoveImageRequest) ProtoMessage() {} -func (*RemoveImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{77} } +func (*RemoveImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{73} } func (m *RemoveImageRequest) GetImage() *ImageSpec { if m != nil { @@ -3134,7 +2907,7 @@ type RemoveImageResponse struct { func (m *RemoveImageResponse) Reset() { *m = RemoveImageResponse{} } func (*RemoveImageResponse) ProtoMessage() {} -func (*RemoveImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{78} } +func (*RemoveImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{74} } type NetworkConfig struct { // CIDR to use for pod IP addresses. @@ -3143,7 +2916,7 @@ type NetworkConfig struct { func (m *NetworkConfig) Reset() { *m = NetworkConfig{} } func (*NetworkConfig) ProtoMessage() {} -func (*NetworkConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{79} } +func (*NetworkConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{75} } func (m *NetworkConfig) GetPodCidr() string { if m != nil { @@ -3158,7 +2931,7 @@ type RuntimeConfig struct { func (m *RuntimeConfig) Reset() { *m = RuntimeConfig{} } func (*RuntimeConfig) ProtoMessage() {} -func (*RuntimeConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{80} } +func (*RuntimeConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{76} } func (m *RuntimeConfig) GetNetworkConfig() *NetworkConfig { if m != nil { @@ -3173,7 +2946,7 @@ type UpdateRuntimeConfigRequest struct { func (m *UpdateRuntimeConfigRequest) Reset() { *m = UpdateRuntimeConfigRequest{} } func (*UpdateRuntimeConfigRequest) ProtoMessage() {} -func (*UpdateRuntimeConfigRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{81} } +func (*UpdateRuntimeConfigRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{77} } func (m *UpdateRuntimeConfigRequest) GetRuntimeConfig() *RuntimeConfig { if m != nil { @@ -3187,7 +2960,7 @@ type UpdateRuntimeConfigResponse struct { func (m *UpdateRuntimeConfigResponse) Reset() { *m = UpdateRuntimeConfigResponse{} } func (*UpdateRuntimeConfigResponse) ProtoMessage() {} -func (*UpdateRuntimeConfigResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{82} } +func (*UpdateRuntimeConfigResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{78} } // RuntimeCondition contains condition information for the runtime. // There are 2 kinds of runtime conditions: @@ -3215,7 +2988,7 @@ type RuntimeCondition struct { func (m *RuntimeCondition) Reset() { *m = RuntimeCondition{} } func (*RuntimeCondition) ProtoMessage() {} -func (*RuntimeCondition) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{83} } +func (*RuntimeCondition) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{79} } func (m *RuntimeCondition) GetType() string { if m != nil { @@ -3253,7 +3026,7 @@ type RuntimeStatus struct { func (m *RuntimeStatus) Reset() { *m = RuntimeStatus{} } func (*RuntimeStatus) ProtoMessage() {} -func (*RuntimeStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{84} } +func (*RuntimeStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{80} } func (m *RuntimeStatus) GetConditions() []*RuntimeCondition { if m != nil { @@ -3269,7 +3042,7 @@ type StatusRequest struct { func (m *StatusRequest) Reset() { *m = StatusRequest{} } func (*StatusRequest) ProtoMessage() {} -func (*StatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{85} } +func (*StatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{81} } func (m *StatusRequest) GetVerbose() bool { if m != nil { @@ -3290,7 +3063,7 @@ type StatusResponse struct { func (m *StatusResponse) Reset() { *m = StatusResponse{} } func (*StatusResponse) ProtoMessage() {} -func (*StatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{86} } +func (*StatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{82} } func (m *StatusResponse) GetStatus() *RuntimeStatus { if m != nil { @@ -3311,7 +3084,7 @@ type ImageFsInfoRequest struct { func (m *ImageFsInfoRequest) Reset() { *m = ImageFsInfoRequest{} } func (*ImageFsInfoRequest) ProtoMessage() {} -func (*ImageFsInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{87} } +func (*ImageFsInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{83} } // UInt64Value is the wrapper of uint64. type UInt64Value struct { @@ -3321,7 +3094,7 @@ type UInt64Value struct { func (m *UInt64Value) Reset() { *m = UInt64Value{} } func (*UInt64Value) ProtoMessage() {} -func (*UInt64Value) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{88} } +func (*UInt64Value) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{84} } func (m *UInt64Value) GetValue() uint64 { if m != nil { @@ -3338,7 +3111,7 @@ type StorageIdentifier struct { func (m *StorageIdentifier) Reset() { *m = StorageIdentifier{} } func (*StorageIdentifier) ProtoMessage() {} -func (*StorageIdentifier) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{89} } +func (*StorageIdentifier) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{85} } func (m *StorageIdentifier) GetUuid() string { if m != nil { @@ -3365,7 +3138,7 @@ type FilesystemUsage struct { func (m *FilesystemUsage) Reset() { *m = FilesystemUsage{} } func (*FilesystemUsage) ProtoMessage() {} -func (*FilesystemUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{90} } +func (*FilesystemUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{86} } func (m *FilesystemUsage) GetTimestamp() int64 { if m != nil { @@ -3402,7 +3175,7 @@ type ImageFsInfoResponse struct { func (m *ImageFsInfoResponse) Reset() { *m = ImageFsInfoResponse{} } func (*ImageFsInfoResponse) ProtoMessage() {} -func (*ImageFsInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{91} } +func (*ImageFsInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{87} } func (m *ImageFsInfoResponse) GetImageFilesystems() []*FilesystemUsage { if m != nil { @@ -3418,7 +3191,7 @@ type ContainerStatsRequest struct { func (m *ContainerStatsRequest) Reset() { *m = ContainerStatsRequest{} } func (*ContainerStatsRequest) ProtoMessage() {} -func (*ContainerStatsRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{92} } +func (*ContainerStatsRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{88} } func (m *ContainerStatsRequest) GetContainerId() string { if m != nil { @@ -3434,7 +3207,7 @@ type ContainerStatsResponse struct { func (m *ContainerStatsResponse) Reset() { *m = ContainerStatsResponse{} } func (*ContainerStatsResponse) ProtoMessage() {} -func (*ContainerStatsResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{93} } +func (*ContainerStatsResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{89} } func (m *ContainerStatsResponse) GetStats() *ContainerStats { if m != nil { @@ -3450,7 +3223,7 @@ type ListContainerStatsRequest struct { func (m *ListContainerStatsRequest) Reset() { *m = ListContainerStatsRequest{} } func (*ListContainerStatsRequest) ProtoMessage() {} -func (*ListContainerStatsRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{94} } +func (*ListContainerStatsRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{90} } func (m *ListContainerStatsRequest) GetFilter() *ContainerStatsFilter { if m != nil { @@ -3474,7 +3247,7 @@ type ContainerStatsFilter struct { func (m *ContainerStatsFilter) Reset() { *m = ContainerStatsFilter{} } func (*ContainerStatsFilter) ProtoMessage() {} -func (*ContainerStatsFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{95} } +func (*ContainerStatsFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{91} } func (m *ContainerStatsFilter) GetId() string { if m != nil { @@ -3504,7 +3277,7 @@ type ListContainerStatsResponse struct { func (m *ListContainerStatsResponse) Reset() { *m = ListContainerStatsResponse{} } func (*ListContainerStatsResponse) ProtoMessage() {} -func (*ListContainerStatsResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{96} } +func (*ListContainerStatsResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{92} } func (m *ListContainerStatsResponse) GetStats() []*ContainerStats { if m != nil { @@ -3530,7 +3303,7 @@ type ContainerAttributes struct { func (m *ContainerAttributes) Reset() { *m = ContainerAttributes{} } func (*ContainerAttributes) ProtoMessage() {} -func (*ContainerAttributes) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{97} } +func (*ContainerAttributes) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{93} } func (m *ContainerAttributes) GetId() string { if m != nil { @@ -3574,7 +3347,7 @@ type ContainerStats struct { func (m *ContainerStats) Reset() { *m = ContainerStats{} } func (*ContainerStats) ProtoMessage() {} -func (*ContainerStats) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{98} } +func (*ContainerStats) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{94} } func (m *ContainerStats) GetAttributes() *ContainerAttributes { if m != nil { @@ -3614,7 +3387,7 @@ type CpuUsage struct { func (m *CpuUsage) Reset() { *m = CpuUsage{} } func (*CpuUsage) ProtoMessage() {} -func (*CpuUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{99} } +func (*CpuUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{95} } func (m *CpuUsage) GetTimestamp() int64 { if m != nil { @@ -3640,7 +3413,7 @@ type MemoryUsage struct { func (m *MemoryUsage) Reset() { *m = MemoryUsage{} } func (*MemoryUsage) ProtoMessage() {} -func (*MemoryUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{100} } +func (*MemoryUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{96} } func (m *MemoryUsage) GetTimestamp() int64 { if m != nil { @@ -3657,111 +3430,107 @@ func (m *MemoryUsage) GetWorkingSetBytes() *UInt64Value { } func init() { - proto.RegisterType((*VersionRequest)(nil), "v1alpha1.VersionRequest") - proto.RegisterType((*VersionResponse)(nil), "v1alpha1.VersionResponse") - proto.RegisterType((*DNSConfig)(nil), "v1alpha1.DNSConfig") - proto.RegisterType((*PortMapping)(nil), "v1alpha1.PortMapping") - proto.RegisterType((*Mount)(nil), "v1alpha1.Mount") - proto.RegisterType((*NamespaceOption)(nil), "v1alpha1.NamespaceOption") - proto.RegisterType((*Int64Value)(nil), "v1alpha1.Int64Value") - proto.RegisterType((*LinuxSandboxSecurityContext)(nil), "v1alpha1.LinuxSandboxSecurityContext") - proto.RegisterType((*LinuxPodSandboxConfig)(nil), "v1alpha1.LinuxPodSandboxConfig") - proto.RegisterType((*PodSandboxMetadata)(nil), "v1alpha1.PodSandboxMetadata") - proto.RegisterType((*PodSandboxConfig)(nil), "v1alpha1.PodSandboxConfig") - proto.RegisterType((*RunPodSandboxRequest)(nil), "v1alpha1.RunPodSandboxRequest") - proto.RegisterType((*RunPodSandboxResponse)(nil), "v1alpha1.RunPodSandboxResponse") - proto.RegisterType((*StopPodSandboxRequest)(nil), "v1alpha1.StopPodSandboxRequest") - proto.RegisterType((*StopPodSandboxResponse)(nil), "v1alpha1.StopPodSandboxResponse") - proto.RegisterType((*RemovePodSandboxRequest)(nil), "v1alpha1.RemovePodSandboxRequest") - proto.RegisterType((*RemovePodSandboxResponse)(nil), "v1alpha1.RemovePodSandboxResponse") - proto.RegisterType((*PodSandboxStatusRequest)(nil), "v1alpha1.PodSandboxStatusRequest") - proto.RegisterType((*PodSandboxNetworkStatus)(nil), "v1alpha1.PodSandboxNetworkStatus") - proto.RegisterType((*Namespace)(nil), "v1alpha1.Namespace") - proto.RegisterType((*LinuxPodSandboxStatus)(nil), "v1alpha1.LinuxPodSandboxStatus") - proto.RegisterType((*PodSandboxStatus)(nil), "v1alpha1.PodSandboxStatus") - proto.RegisterType((*PodSandboxStatusResponse)(nil), "v1alpha1.PodSandboxStatusResponse") - proto.RegisterType((*PodSandboxStateValue)(nil), "v1alpha1.PodSandboxStateValue") - proto.RegisterType((*PodSandboxFilter)(nil), "v1alpha1.PodSandboxFilter") - proto.RegisterType((*ListPodSandboxRequest)(nil), "v1alpha1.ListPodSandboxRequest") - proto.RegisterType((*PodSandbox)(nil), "v1alpha1.PodSandbox") - proto.RegisterType((*ListPodSandboxResponse)(nil), "v1alpha1.ListPodSandboxResponse") - proto.RegisterType((*ImageSpec)(nil), "v1alpha1.ImageSpec") - proto.RegisterType((*KeyValue)(nil), "v1alpha1.KeyValue") - proto.RegisterType((*LinuxContainerResources)(nil), "v1alpha1.LinuxContainerResources") - proto.RegisterType((*WeightDevice)(nil), "v1alpha1.WeightDevice") - proto.RegisterType((*ThrottleDevice)(nil), "v1alpha1.ThrottleDevice") - proto.RegisterType((*Ulimit)(nil), "v1alpha1.Ulimit") - proto.RegisterType((*SELinuxOption)(nil), "v1alpha1.SELinuxOption") - proto.RegisterType((*Capability)(nil), "v1alpha1.Capability") - proto.RegisterType((*LinuxContainerSecurityContext)(nil), "v1alpha1.LinuxContainerSecurityContext") - proto.RegisterType((*LinuxContainerConfig)(nil), "v1alpha1.LinuxContainerConfig") - proto.RegisterType((*ContainerMetadata)(nil), "v1alpha1.ContainerMetadata") - proto.RegisterType((*Device)(nil), "v1alpha1.Device") - proto.RegisterType((*ContainerConfig)(nil), "v1alpha1.ContainerConfig") - proto.RegisterType((*CreateContainerRequest)(nil), "v1alpha1.CreateContainerRequest") - proto.RegisterType((*CreateContainerResponse)(nil), "v1alpha1.CreateContainerResponse") - proto.RegisterType((*StartContainerRequest)(nil), "v1alpha1.StartContainerRequest") - proto.RegisterType((*StartContainerResponse)(nil), "v1alpha1.StartContainerResponse") - proto.RegisterType((*StopContainerRequest)(nil), "v1alpha1.StopContainerRequest") - proto.RegisterType((*StopContainerResponse)(nil), "v1alpha1.StopContainerResponse") - proto.RegisterType((*RemoveContainerRequest)(nil), "v1alpha1.RemoveContainerRequest") - proto.RegisterType((*RemoveContainerResponse)(nil), "v1alpha1.RemoveContainerResponse") - proto.RegisterType((*ContainerStateValue)(nil), "v1alpha1.ContainerStateValue") - proto.RegisterType((*ContainerFilter)(nil), "v1alpha1.ContainerFilter") - proto.RegisterType((*ListContainersRequest)(nil), "v1alpha1.ListContainersRequest") - proto.RegisterType((*Container)(nil), "v1alpha1.Container") - proto.RegisterType((*ListContainersResponse)(nil), "v1alpha1.ListContainersResponse") - proto.RegisterType((*ContainerStatusRequest)(nil), "v1alpha1.ContainerStatusRequest") - proto.RegisterType((*ContainerStatus)(nil), "v1alpha1.ContainerStatus") - proto.RegisterType((*Volume)(nil), "v1alpha1.Volume") - proto.RegisterType((*ContainerStatusResponse)(nil), "v1alpha1.ContainerStatusResponse") - proto.RegisterType((*UpdateContainerResourcesRequest)(nil), "v1alpha1.UpdateContainerResourcesRequest") - proto.RegisterType((*UpdateContainerResourcesResponse)(nil), "v1alpha1.UpdateContainerResourcesResponse") - proto.RegisterType((*ExecSyncRequest)(nil), "v1alpha1.ExecSyncRequest") - proto.RegisterType((*ExecSyncResponse)(nil), "v1alpha1.ExecSyncResponse") - proto.RegisterType((*ExecRequest)(nil), "v1alpha1.ExecRequest") - proto.RegisterType((*ExecResponse)(nil), "v1alpha1.ExecResponse") - proto.RegisterType((*AttachRequest)(nil), "v1alpha1.AttachRequest") - proto.RegisterType((*AttachResponse)(nil), "v1alpha1.AttachResponse") - proto.RegisterType((*PortForwardRequest)(nil), "v1alpha1.PortForwardRequest") - proto.RegisterType((*PortForwardResponse)(nil), "v1alpha1.PortForwardResponse") - proto.RegisterType((*ImageFilter)(nil), "v1alpha1.ImageFilter") - proto.RegisterType((*ListImagesRequest)(nil), "v1alpha1.ListImagesRequest") - proto.RegisterType((*Image)(nil), "v1alpha1.Image") - proto.RegisterType((*ListImagesResponse)(nil), "v1alpha1.ListImagesResponse") - proto.RegisterType((*ImageStatusRequest)(nil), "v1alpha1.ImageStatusRequest") - proto.RegisterType((*ImageStatusResponse)(nil), "v1alpha1.ImageStatusResponse") - proto.RegisterType((*AuthConfig)(nil), "v1alpha1.AuthConfig") - proto.RegisterType((*PullImageRequest)(nil), "v1alpha1.PullImageRequest") - proto.RegisterType((*PullImageResponse)(nil), "v1alpha1.PullImageResponse") - proto.RegisterType((*RemoveImageRequest)(nil), "v1alpha1.RemoveImageRequest") - proto.RegisterType((*RemoveImageResponse)(nil), "v1alpha1.RemoveImageResponse") - proto.RegisterType((*NetworkConfig)(nil), "v1alpha1.NetworkConfig") - proto.RegisterType((*RuntimeConfig)(nil), "v1alpha1.RuntimeConfig") - proto.RegisterType((*UpdateRuntimeConfigRequest)(nil), "v1alpha1.UpdateRuntimeConfigRequest") - proto.RegisterType((*UpdateRuntimeConfigResponse)(nil), "v1alpha1.UpdateRuntimeConfigResponse") - proto.RegisterType((*RuntimeCondition)(nil), "v1alpha1.RuntimeCondition") - proto.RegisterType((*RuntimeStatus)(nil), "v1alpha1.RuntimeStatus") - proto.RegisterType((*StatusRequest)(nil), "v1alpha1.StatusRequest") - proto.RegisterType((*StatusResponse)(nil), "v1alpha1.StatusResponse") - proto.RegisterType((*ImageFsInfoRequest)(nil), "v1alpha1.ImageFsInfoRequest") - proto.RegisterType((*UInt64Value)(nil), "v1alpha1.UInt64Value") - proto.RegisterType((*StorageIdentifier)(nil), "v1alpha1.StorageIdentifier") - proto.RegisterType((*FilesystemUsage)(nil), "v1alpha1.FilesystemUsage") - proto.RegisterType((*ImageFsInfoResponse)(nil), "v1alpha1.ImageFsInfoResponse") - proto.RegisterType((*ContainerStatsRequest)(nil), "v1alpha1.ContainerStatsRequest") - proto.RegisterType((*ContainerStatsResponse)(nil), "v1alpha1.ContainerStatsResponse") - proto.RegisterType((*ListContainerStatsRequest)(nil), "v1alpha1.ListContainerStatsRequest") - proto.RegisterType((*ContainerStatsFilter)(nil), "v1alpha1.ContainerStatsFilter") - proto.RegisterType((*ListContainerStatsResponse)(nil), "v1alpha1.ListContainerStatsResponse") - proto.RegisterType((*ContainerAttributes)(nil), "v1alpha1.ContainerAttributes") - proto.RegisterType((*ContainerStats)(nil), "v1alpha1.ContainerStats") - proto.RegisterType((*CpuUsage)(nil), "v1alpha1.CpuUsage") - proto.RegisterType((*MemoryUsage)(nil), "v1alpha1.MemoryUsage") - proto.RegisterEnum("v1alpha1.Protocol", Protocol_name, Protocol_value) - proto.RegisterEnum("v1alpha1.MountPropagation", MountPropagation_name, MountPropagation_value) - proto.RegisterEnum("v1alpha1.PodSandboxState", PodSandboxState_name, PodSandboxState_value) - proto.RegisterEnum("v1alpha1.ContainerState", ContainerState_name, ContainerState_value) + proto.RegisterType((*VersionRequest)(nil), "runtime.VersionRequest") + proto.RegisterType((*VersionResponse)(nil), "runtime.VersionResponse") + proto.RegisterType((*DNSConfig)(nil), "runtime.DNSConfig") + proto.RegisterType((*PortMapping)(nil), "runtime.PortMapping") + proto.RegisterType((*Mount)(nil), "runtime.Mount") + proto.RegisterType((*NamespaceOption)(nil), "runtime.NamespaceOption") + proto.RegisterType((*Int64Value)(nil), "runtime.Int64Value") + proto.RegisterType((*LinuxSandboxSecurityContext)(nil), "runtime.LinuxSandboxSecurityContext") + proto.RegisterType((*LinuxPodSandboxConfig)(nil), "runtime.LinuxPodSandboxConfig") + proto.RegisterType((*PodSandboxMetadata)(nil), "runtime.PodSandboxMetadata") + proto.RegisterType((*PodSandboxConfig)(nil), "runtime.PodSandboxConfig") + proto.RegisterType((*RunPodSandboxRequest)(nil), "runtime.RunPodSandboxRequest") + proto.RegisterType((*RunPodSandboxResponse)(nil), "runtime.RunPodSandboxResponse") + proto.RegisterType((*StopPodSandboxRequest)(nil), "runtime.StopPodSandboxRequest") + proto.RegisterType((*StopPodSandboxResponse)(nil), "runtime.StopPodSandboxResponse") + proto.RegisterType((*RemovePodSandboxRequest)(nil), "runtime.RemovePodSandboxRequest") + proto.RegisterType((*RemovePodSandboxResponse)(nil), "runtime.RemovePodSandboxResponse") + proto.RegisterType((*PodSandboxStatusRequest)(nil), "runtime.PodSandboxStatusRequest") + proto.RegisterType((*PodSandboxNetworkStatus)(nil), "runtime.PodSandboxNetworkStatus") + proto.RegisterType((*Namespace)(nil), "runtime.Namespace") + proto.RegisterType((*LinuxPodSandboxStatus)(nil), "runtime.LinuxPodSandboxStatus") + proto.RegisterType((*PodSandboxStatus)(nil), "runtime.PodSandboxStatus") + proto.RegisterType((*PodSandboxStatusResponse)(nil), "runtime.PodSandboxStatusResponse") + proto.RegisterType((*PodSandboxStateValue)(nil), "runtime.PodSandboxStateValue") + proto.RegisterType((*PodSandboxFilter)(nil), "runtime.PodSandboxFilter") + proto.RegisterType((*ListPodSandboxRequest)(nil), "runtime.ListPodSandboxRequest") + proto.RegisterType((*PodSandbox)(nil), "runtime.PodSandbox") + proto.RegisterType((*ListPodSandboxResponse)(nil), "runtime.ListPodSandboxResponse") + proto.RegisterType((*ImageSpec)(nil), "runtime.ImageSpec") + proto.RegisterType((*KeyValue)(nil), "runtime.KeyValue") + proto.RegisterType((*LinuxContainerResources)(nil), "runtime.LinuxContainerResources") + proto.RegisterType((*SELinuxOption)(nil), "runtime.SELinuxOption") + proto.RegisterType((*Capability)(nil), "runtime.Capability") + proto.RegisterType((*LinuxContainerSecurityContext)(nil), "runtime.LinuxContainerSecurityContext") + proto.RegisterType((*LinuxContainerConfig)(nil), "runtime.LinuxContainerConfig") + proto.RegisterType((*ContainerMetadata)(nil), "runtime.ContainerMetadata") + proto.RegisterType((*Device)(nil), "runtime.Device") + proto.RegisterType((*ContainerConfig)(nil), "runtime.ContainerConfig") + proto.RegisterType((*CreateContainerRequest)(nil), "runtime.CreateContainerRequest") + proto.RegisterType((*CreateContainerResponse)(nil), "runtime.CreateContainerResponse") + proto.RegisterType((*StartContainerRequest)(nil), "runtime.StartContainerRequest") + proto.RegisterType((*StartContainerResponse)(nil), "runtime.StartContainerResponse") + proto.RegisterType((*StopContainerRequest)(nil), "runtime.StopContainerRequest") + proto.RegisterType((*StopContainerResponse)(nil), "runtime.StopContainerResponse") + proto.RegisterType((*RemoveContainerRequest)(nil), "runtime.RemoveContainerRequest") + proto.RegisterType((*RemoveContainerResponse)(nil), "runtime.RemoveContainerResponse") + proto.RegisterType((*ContainerStateValue)(nil), "runtime.ContainerStateValue") + proto.RegisterType((*ContainerFilter)(nil), "runtime.ContainerFilter") + proto.RegisterType((*ListContainersRequest)(nil), "runtime.ListContainersRequest") + proto.RegisterType((*Container)(nil), "runtime.Container") + proto.RegisterType((*ListContainersResponse)(nil), "runtime.ListContainersResponse") + proto.RegisterType((*ContainerStatusRequest)(nil), "runtime.ContainerStatusRequest") + proto.RegisterType((*ContainerStatus)(nil), "runtime.ContainerStatus") + proto.RegisterType((*ContainerStatusResponse)(nil), "runtime.ContainerStatusResponse") + proto.RegisterType((*UpdateContainerResourcesRequest)(nil), "runtime.UpdateContainerResourcesRequest") + proto.RegisterType((*UpdateContainerResourcesResponse)(nil), "runtime.UpdateContainerResourcesResponse") + proto.RegisterType((*ExecSyncRequest)(nil), "runtime.ExecSyncRequest") + proto.RegisterType((*ExecSyncResponse)(nil), "runtime.ExecSyncResponse") + proto.RegisterType((*ExecRequest)(nil), "runtime.ExecRequest") + proto.RegisterType((*ExecResponse)(nil), "runtime.ExecResponse") + proto.RegisterType((*AttachRequest)(nil), "runtime.AttachRequest") + proto.RegisterType((*AttachResponse)(nil), "runtime.AttachResponse") + proto.RegisterType((*PortForwardRequest)(nil), "runtime.PortForwardRequest") + proto.RegisterType((*PortForwardResponse)(nil), "runtime.PortForwardResponse") + proto.RegisterType((*ImageFilter)(nil), "runtime.ImageFilter") + proto.RegisterType((*ListImagesRequest)(nil), "runtime.ListImagesRequest") + proto.RegisterType((*Image)(nil), "runtime.Image") + proto.RegisterType((*ListImagesResponse)(nil), "runtime.ListImagesResponse") + proto.RegisterType((*ImageStatusRequest)(nil), "runtime.ImageStatusRequest") + proto.RegisterType((*ImageStatusResponse)(nil), "runtime.ImageStatusResponse") + proto.RegisterType((*AuthConfig)(nil), "runtime.AuthConfig") + proto.RegisterType((*PullImageRequest)(nil), "runtime.PullImageRequest") + proto.RegisterType((*PullImageResponse)(nil), "runtime.PullImageResponse") + proto.RegisterType((*RemoveImageRequest)(nil), "runtime.RemoveImageRequest") + proto.RegisterType((*RemoveImageResponse)(nil), "runtime.RemoveImageResponse") + proto.RegisterType((*NetworkConfig)(nil), "runtime.NetworkConfig") + proto.RegisterType((*RuntimeConfig)(nil), "runtime.RuntimeConfig") + proto.RegisterType((*UpdateRuntimeConfigRequest)(nil), "runtime.UpdateRuntimeConfigRequest") + proto.RegisterType((*UpdateRuntimeConfigResponse)(nil), "runtime.UpdateRuntimeConfigResponse") + proto.RegisterType((*RuntimeCondition)(nil), "runtime.RuntimeCondition") + proto.RegisterType((*RuntimeStatus)(nil), "runtime.RuntimeStatus") + proto.RegisterType((*StatusRequest)(nil), "runtime.StatusRequest") + proto.RegisterType((*StatusResponse)(nil), "runtime.StatusResponse") + proto.RegisterType((*ImageFsInfoRequest)(nil), "runtime.ImageFsInfoRequest") + proto.RegisterType((*UInt64Value)(nil), "runtime.UInt64Value") + proto.RegisterType((*StorageIdentifier)(nil), "runtime.StorageIdentifier") + proto.RegisterType((*FilesystemUsage)(nil), "runtime.FilesystemUsage") + proto.RegisterType((*ImageFsInfoResponse)(nil), "runtime.ImageFsInfoResponse") + proto.RegisterType((*ContainerStatsRequest)(nil), "runtime.ContainerStatsRequest") + proto.RegisterType((*ContainerStatsResponse)(nil), "runtime.ContainerStatsResponse") + proto.RegisterType((*ListContainerStatsRequest)(nil), "runtime.ListContainerStatsRequest") + proto.RegisterType((*ContainerStatsFilter)(nil), "runtime.ContainerStatsFilter") + proto.RegisterType((*ListContainerStatsResponse)(nil), "runtime.ListContainerStatsResponse") + proto.RegisterType((*ContainerAttributes)(nil), "runtime.ContainerAttributes") + proto.RegisterType((*ContainerStats)(nil), "runtime.ContainerStats") + proto.RegisterType((*CpuUsage)(nil), "runtime.CpuUsage") + proto.RegisterType((*MemoryUsage)(nil), "runtime.MemoryUsage") + proto.RegisterEnum("runtime.Protocol", Protocol_name, Protocol_value) + proto.RegisterEnum("runtime.MountPropagation", MountPropagation_name, MountPropagation_value) + proto.RegisterEnum("runtime.PodSandboxState", PodSandboxState_name, PodSandboxState_value) + proto.RegisterEnum("runtime.ContainerState", ContainerState_name, ContainerState_value) } // Reference imports to suppress errors if they are not otherwise used. @@ -3850,7 +3619,7 @@ func NewRuntimeServiceClient(cc *grpc.ClientConn) RuntimeServiceClient { func (c *runtimeServiceClient) Version(ctx context.Context, in *VersionRequest, opts ...grpc.CallOption) (*VersionResponse, error) { out := new(VersionResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/Version", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/Version", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3859,7 +3628,7 @@ func (c *runtimeServiceClient) Version(ctx context.Context, in *VersionRequest, func (c *runtimeServiceClient) RunPodSandbox(ctx context.Context, in *RunPodSandboxRequest, opts ...grpc.CallOption) (*RunPodSandboxResponse, error) { out := new(RunPodSandboxResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/RunPodSandbox", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/RunPodSandbox", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3868,7 +3637,7 @@ func (c *runtimeServiceClient) RunPodSandbox(ctx context.Context, in *RunPodSand func (c *runtimeServiceClient) StopPodSandbox(ctx context.Context, in *StopPodSandboxRequest, opts ...grpc.CallOption) (*StopPodSandboxResponse, error) { out := new(StopPodSandboxResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/StopPodSandbox", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/StopPodSandbox", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3877,7 +3646,7 @@ func (c *runtimeServiceClient) StopPodSandbox(ctx context.Context, in *StopPodSa func (c *runtimeServiceClient) RemovePodSandbox(ctx context.Context, in *RemovePodSandboxRequest, opts ...grpc.CallOption) (*RemovePodSandboxResponse, error) { out := new(RemovePodSandboxResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/RemovePodSandbox", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/RemovePodSandbox", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3886,7 +3655,7 @@ func (c *runtimeServiceClient) RemovePodSandbox(ctx context.Context, in *RemoveP func (c *runtimeServiceClient) PodSandboxStatus(ctx context.Context, in *PodSandboxStatusRequest, opts ...grpc.CallOption) (*PodSandboxStatusResponse, error) { out := new(PodSandboxStatusResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/PodSandboxStatus", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/PodSandboxStatus", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3895,7 +3664,7 @@ func (c *runtimeServiceClient) PodSandboxStatus(ctx context.Context, in *PodSand func (c *runtimeServiceClient) ListPodSandbox(ctx context.Context, in *ListPodSandboxRequest, opts ...grpc.CallOption) (*ListPodSandboxResponse, error) { out := new(ListPodSandboxResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/ListPodSandbox", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/ListPodSandbox", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3904,7 +3673,7 @@ func (c *runtimeServiceClient) ListPodSandbox(ctx context.Context, in *ListPodSa func (c *runtimeServiceClient) CreateContainer(ctx context.Context, in *CreateContainerRequest, opts ...grpc.CallOption) (*CreateContainerResponse, error) { out := new(CreateContainerResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/CreateContainer", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/CreateContainer", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3913,7 +3682,7 @@ func (c *runtimeServiceClient) CreateContainer(ctx context.Context, in *CreateCo func (c *runtimeServiceClient) StartContainer(ctx context.Context, in *StartContainerRequest, opts ...grpc.CallOption) (*StartContainerResponse, error) { out := new(StartContainerResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/StartContainer", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/StartContainer", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3922,7 +3691,7 @@ func (c *runtimeServiceClient) StartContainer(ctx context.Context, in *StartCont func (c *runtimeServiceClient) StopContainer(ctx context.Context, in *StopContainerRequest, opts ...grpc.CallOption) (*StopContainerResponse, error) { out := new(StopContainerResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/StopContainer", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/StopContainer", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3931,7 +3700,7 @@ func (c *runtimeServiceClient) StopContainer(ctx context.Context, in *StopContai func (c *runtimeServiceClient) RemoveContainer(ctx context.Context, in *RemoveContainerRequest, opts ...grpc.CallOption) (*RemoveContainerResponse, error) { out := new(RemoveContainerResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/RemoveContainer", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/RemoveContainer", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3940,7 +3709,7 @@ func (c *runtimeServiceClient) RemoveContainer(ctx context.Context, in *RemoveCo func (c *runtimeServiceClient) ListContainers(ctx context.Context, in *ListContainersRequest, opts ...grpc.CallOption) (*ListContainersResponse, error) { out := new(ListContainersResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/ListContainers", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/ListContainers", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3949,7 +3718,7 @@ func (c *runtimeServiceClient) ListContainers(ctx context.Context, in *ListConta func (c *runtimeServiceClient) ContainerStatus(ctx context.Context, in *ContainerStatusRequest, opts ...grpc.CallOption) (*ContainerStatusResponse, error) { out := new(ContainerStatusResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/ContainerStatus", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/ContainerStatus", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3958,7 +3727,7 @@ func (c *runtimeServiceClient) ContainerStatus(ctx context.Context, in *Containe func (c *runtimeServiceClient) UpdateContainerResources(ctx context.Context, in *UpdateContainerResourcesRequest, opts ...grpc.CallOption) (*UpdateContainerResourcesResponse, error) { out := new(UpdateContainerResourcesResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/UpdateContainerResources", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/UpdateContainerResources", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3967,7 +3736,7 @@ func (c *runtimeServiceClient) UpdateContainerResources(ctx context.Context, in func (c *runtimeServiceClient) ExecSync(ctx context.Context, in *ExecSyncRequest, opts ...grpc.CallOption) (*ExecSyncResponse, error) { out := new(ExecSyncResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/ExecSync", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/ExecSync", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3976,7 +3745,7 @@ func (c *runtimeServiceClient) ExecSync(ctx context.Context, in *ExecSyncRequest func (c *runtimeServiceClient) Exec(ctx context.Context, in *ExecRequest, opts ...grpc.CallOption) (*ExecResponse, error) { out := new(ExecResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/Exec", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/Exec", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3985,7 +3754,7 @@ func (c *runtimeServiceClient) Exec(ctx context.Context, in *ExecRequest, opts . func (c *runtimeServiceClient) Attach(ctx context.Context, in *AttachRequest, opts ...grpc.CallOption) (*AttachResponse, error) { out := new(AttachResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/Attach", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/Attach", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -3994,7 +3763,7 @@ func (c *runtimeServiceClient) Attach(ctx context.Context, in *AttachRequest, op func (c *runtimeServiceClient) PortForward(ctx context.Context, in *PortForwardRequest, opts ...grpc.CallOption) (*PortForwardResponse, error) { out := new(PortForwardResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/PortForward", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/PortForward", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4003,7 +3772,7 @@ func (c *runtimeServiceClient) PortForward(ctx context.Context, in *PortForwardR func (c *runtimeServiceClient) ContainerStats(ctx context.Context, in *ContainerStatsRequest, opts ...grpc.CallOption) (*ContainerStatsResponse, error) { out := new(ContainerStatsResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/ContainerStats", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/ContainerStats", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4012,7 +3781,7 @@ func (c *runtimeServiceClient) ContainerStats(ctx context.Context, in *Container func (c *runtimeServiceClient) ListContainerStats(ctx context.Context, in *ListContainerStatsRequest, opts ...grpc.CallOption) (*ListContainerStatsResponse, error) { out := new(ListContainerStatsResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/ListContainerStats", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/ListContainerStats", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4021,7 +3790,7 @@ func (c *runtimeServiceClient) ListContainerStats(ctx context.Context, in *ListC func (c *runtimeServiceClient) UpdateRuntimeConfig(ctx context.Context, in *UpdateRuntimeConfigRequest, opts ...grpc.CallOption) (*UpdateRuntimeConfigResponse, error) { out := new(UpdateRuntimeConfigResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/UpdateRuntimeConfig", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/UpdateRuntimeConfig", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4030,7 +3799,7 @@ func (c *runtimeServiceClient) UpdateRuntimeConfig(ctx context.Context, in *Upda func (c *runtimeServiceClient) Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error) { out := new(StatusResponse) - err := grpc.Invoke(ctx, "/v1alpha1.RuntimeService/Status", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/Status", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4119,7 +3888,7 @@ func _RuntimeService_Version_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/Version", + FullMethod: "/runtime.RuntimeService/Version", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).Version(ctx, req.(*VersionRequest)) @@ -4137,7 +3906,7 @@ func _RuntimeService_RunPodSandbox_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/RunPodSandbox", + FullMethod: "/runtime.RuntimeService/RunPodSandbox", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).RunPodSandbox(ctx, req.(*RunPodSandboxRequest)) @@ -4155,7 +3924,7 @@ func _RuntimeService_StopPodSandbox_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/StopPodSandbox", + FullMethod: "/runtime.RuntimeService/StopPodSandbox", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).StopPodSandbox(ctx, req.(*StopPodSandboxRequest)) @@ -4173,7 +3942,7 @@ func _RuntimeService_RemovePodSandbox_Handler(srv interface{}, ctx context.Conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/RemovePodSandbox", + FullMethod: "/runtime.RuntimeService/RemovePodSandbox", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).RemovePodSandbox(ctx, req.(*RemovePodSandboxRequest)) @@ -4191,7 +3960,7 @@ func _RuntimeService_PodSandboxStatus_Handler(srv interface{}, ctx context.Conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/PodSandboxStatus", + FullMethod: "/runtime.RuntimeService/PodSandboxStatus", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).PodSandboxStatus(ctx, req.(*PodSandboxStatusRequest)) @@ -4209,7 +3978,7 @@ func _RuntimeService_ListPodSandbox_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/ListPodSandbox", + FullMethod: "/runtime.RuntimeService/ListPodSandbox", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).ListPodSandbox(ctx, req.(*ListPodSandboxRequest)) @@ -4227,7 +3996,7 @@ func _RuntimeService_CreateContainer_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/CreateContainer", + FullMethod: "/runtime.RuntimeService/CreateContainer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).CreateContainer(ctx, req.(*CreateContainerRequest)) @@ -4245,7 +4014,7 @@ func _RuntimeService_StartContainer_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/StartContainer", + FullMethod: "/runtime.RuntimeService/StartContainer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).StartContainer(ctx, req.(*StartContainerRequest)) @@ -4263,7 +4032,7 @@ func _RuntimeService_StopContainer_Handler(srv interface{}, ctx context.Context, } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/StopContainer", + FullMethod: "/runtime.RuntimeService/StopContainer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).StopContainer(ctx, req.(*StopContainerRequest)) @@ -4281,7 +4050,7 @@ func _RuntimeService_RemoveContainer_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/RemoveContainer", + FullMethod: "/runtime.RuntimeService/RemoveContainer", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).RemoveContainer(ctx, req.(*RemoveContainerRequest)) @@ -4299,7 +4068,7 @@ func _RuntimeService_ListContainers_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/ListContainers", + FullMethod: "/runtime.RuntimeService/ListContainers", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).ListContainers(ctx, req.(*ListContainersRequest)) @@ -4317,7 +4086,7 @@ func _RuntimeService_ContainerStatus_Handler(srv interface{}, ctx context.Contex } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/ContainerStatus", + FullMethod: "/runtime.RuntimeService/ContainerStatus", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).ContainerStatus(ctx, req.(*ContainerStatusRequest)) @@ -4335,7 +4104,7 @@ func _RuntimeService_UpdateContainerResources_Handler(srv interface{}, ctx conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/UpdateContainerResources", + FullMethod: "/runtime.RuntimeService/UpdateContainerResources", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).UpdateContainerResources(ctx, req.(*UpdateContainerResourcesRequest)) @@ -4353,7 +4122,7 @@ func _RuntimeService_ExecSync_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/ExecSync", + FullMethod: "/runtime.RuntimeService/ExecSync", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).ExecSync(ctx, req.(*ExecSyncRequest)) @@ -4371,7 +4140,7 @@ func _RuntimeService_Exec_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/Exec", + FullMethod: "/runtime.RuntimeService/Exec", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).Exec(ctx, req.(*ExecRequest)) @@ -4389,7 +4158,7 @@ func _RuntimeService_Attach_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/Attach", + FullMethod: "/runtime.RuntimeService/Attach", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).Attach(ctx, req.(*AttachRequest)) @@ -4407,7 +4176,7 @@ func _RuntimeService_PortForward_Handler(srv interface{}, ctx context.Context, d } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/PortForward", + FullMethod: "/runtime.RuntimeService/PortForward", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).PortForward(ctx, req.(*PortForwardRequest)) @@ -4425,7 +4194,7 @@ func _RuntimeService_ContainerStats_Handler(srv interface{}, ctx context.Context } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/ContainerStats", + FullMethod: "/runtime.RuntimeService/ContainerStats", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).ContainerStats(ctx, req.(*ContainerStatsRequest)) @@ -4443,7 +4212,7 @@ func _RuntimeService_ListContainerStats_Handler(srv interface{}, ctx context.Con } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/ListContainerStats", + FullMethod: "/runtime.RuntimeService/ListContainerStats", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).ListContainerStats(ctx, req.(*ListContainerStatsRequest)) @@ -4461,7 +4230,7 @@ func _RuntimeService_UpdateRuntimeConfig_Handler(srv interface{}, ctx context.Co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/UpdateRuntimeConfig", + FullMethod: "/runtime.RuntimeService/UpdateRuntimeConfig", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).UpdateRuntimeConfig(ctx, req.(*UpdateRuntimeConfigRequest)) @@ -4479,7 +4248,7 @@ func _RuntimeService_Status_Handler(srv interface{}, ctx context.Context, dec fu } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.RuntimeService/Status", + FullMethod: "/runtime.RuntimeService/Status", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(RuntimeServiceServer).Status(ctx, req.(*StatusRequest)) @@ -4488,7 +4257,7 @@ func _RuntimeService_Status_Handler(srv interface{}, ctx context.Context, dec fu } var _RuntimeService_serviceDesc = grpc.ServiceDesc{ - ServiceName: "v1alpha1.RuntimeService", + ServiceName: "runtime.RuntimeService", HandlerType: (*RuntimeServiceServer)(nil), Methods: []grpc.MethodDesc{ { @@ -4609,7 +4378,7 @@ func NewImageServiceClient(cc *grpc.ClientConn) ImageServiceClient { func (c *imageServiceClient) ListImages(ctx context.Context, in *ListImagesRequest, opts ...grpc.CallOption) (*ListImagesResponse, error) { out := new(ListImagesResponse) - err := grpc.Invoke(ctx, "/v1alpha1.ImageService/ListImages", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.ImageService/ListImages", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4618,7 +4387,7 @@ func (c *imageServiceClient) ListImages(ctx context.Context, in *ListImagesReque func (c *imageServiceClient) ImageStatus(ctx context.Context, in *ImageStatusRequest, opts ...grpc.CallOption) (*ImageStatusResponse, error) { out := new(ImageStatusResponse) - err := grpc.Invoke(ctx, "/v1alpha1.ImageService/ImageStatus", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.ImageService/ImageStatus", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4627,7 +4396,7 @@ func (c *imageServiceClient) ImageStatus(ctx context.Context, in *ImageStatusReq func (c *imageServiceClient) PullImage(ctx context.Context, in *PullImageRequest, opts ...grpc.CallOption) (*PullImageResponse, error) { out := new(PullImageResponse) - err := grpc.Invoke(ctx, "/v1alpha1.ImageService/PullImage", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.ImageService/PullImage", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4636,7 +4405,7 @@ func (c *imageServiceClient) PullImage(ctx context.Context, in *PullImageRequest func (c *imageServiceClient) RemoveImage(ctx context.Context, in *RemoveImageRequest, opts ...grpc.CallOption) (*RemoveImageResponse, error) { out := new(RemoveImageResponse) - err := grpc.Invoke(ctx, "/v1alpha1.ImageService/RemoveImage", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.ImageService/RemoveImage", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4645,7 +4414,7 @@ func (c *imageServiceClient) RemoveImage(ctx context.Context, in *RemoveImageReq func (c *imageServiceClient) ImageFsInfo(ctx context.Context, in *ImageFsInfoRequest, opts ...grpc.CallOption) (*ImageFsInfoResponse, error) { out := new(ImageFsInfoResponse) - err := grpc.Invoke(ctx, "/v1alpha1.ImageService/ImageFsInfo", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/runtime.ImageService/ImageFsInfo", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -4685,7 +4454,7 @@ func _ImageService_ListImages_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.ImageService/ListImages", + FullMethod: "/runtime.ImageService/ListImages", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ImageServiceServer).ListImages(ctx, req.(*ListImagesRequest)) @@ -4703,7 +4472,7 @@ func _ImageService_ImageStatus_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.ImageService/ImageStatus", + FullMethod: "/runtime.ImageService/ImageStatus", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ImageServiceServer).ImageStatus(ctx, req.(*ImageStatusRequest)) @@ -4721,7 +4490,7 @@ func _ImageService_PullImage_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.ImageService/PullImage", + FullMethod: "/runtime.ImageService/PullImage", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ImageServiceServer).PullImage(ctx, req.(*PullImageRequest)) @@ -4739,7 +4508,7 @@ func _ImageService_RemoveImage_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.ImageService/RemoveImage", + FullMethod: "/runtime.ImageService/RemoveImage", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ImageServiceServer).RemoveImage(ctx, req.(*RemoveImageRequest)) @@ -4757,7 +4526,7 @@ func _ImageService_ImageFsInfo_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/v1alpha1.ImageService/ImageFsInfo", + FullMethod: "/runtime.ImageService/ImageFsInfo", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(ImageServiceServer).ImageFsInfo(ctx, req.(*ImageFsInfoRequest)) @@ -4766,7 +4535,7 @@ func _ImageService_ImageFsInfo_Handler(srv interface{}, ctx context.Context, dec } var _ImageService_serviceDesc = grpc.ServiceDesc{ - ServiceName: "v1alpha1.ImageService", + ServiceName: "runtime.ImageService", HandlerType: (*ImageServiceServer)(nil), Methods: []grpc.MethodDesc{ { @@ -6087,146 +5856,10 @@ func (m *LinuxContainerResources) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintApi(dAtA, i, uint64(len(m.CpusetMems))) i += copy(dAtA[i:], m.CpusetMems) } - if len(m.DiskQuota) > 0 { - for k := range m.DiskQuota { - dAtA[i] = 0xa2 - i++ - dAtA[i] = 0x6 - i++ - v := m.DiskQuota[k] - mapSize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) - i = encodeVarintApi(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintApi(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintApi(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - if m.BlkioWeight != 0 { - dAtA[i] = 0xa8 - i++ - dAtA[i] = 0x6 - i++ - i = encodeVarintApi(dAtA, i, uint64(m.BlkioWeight)) - } - if len(m.BlkioWeightDevice) > 0 { - for _, msg := range m.BlkioWeightDevice { - dAtA[i] = 0xb2 - i++ - dAtA[i] = 0x6 - i++ - i = encodeVarintApi(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.BlkioDeviceReadBps) > 0 { - for _, msg := range m.BlkioDeviceReadBps { - dAtA[i] = 0xba - i++ - dAtA[i] = 0x6 - i++ - i = encodeVarintApi(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.BlkioDeviceWriteBps) > 0 { - for _, msg := range m.BlkioDeviceWriteBps { - dAtA[i] = 0xc2 - i++ - dAtA[i] = 0x6 - i++ - i = encodeVarintApi(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.BlkioDeviceRead_IOps) > 0 { - for _, msg := range m.BlkioDeviceRead_IOps { - dAtA[i] = 0xca - i++ - dAtA[i] = 0x6 - i++ - i = encodeVarintApi(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if len(m.BlkioDeviceWrite_IOps) > 0 { - for _, msg := range m.BlkioDeviceWrite_IOps { - dAtA[i] = 0xd2 - i++ - dAtA[i] = 0x6 - i++ - i = encodeVarintApi(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - if m.KernelMemory != 0 { - dAtA[i] = 0xd8 - i++ - dAtA[i] = 0x6 - i++ - i = encodeVarintApi(dAtA, i, uint64(m.KernelMemory)) - } - if m.MemoryReservation != 0 { - dAtA[i] = 0xe0 - i++ - dAtA[i] = 0x6 - i++ - i = encodeVarintApi(dAtA, i, uint64(m.MemoryReservation)) - } - if m.MemorySwappiness != nil { - dAtA[i] = 0xea - i++ - dAtA[i] = 0x6 - i++ - i = encodeVarintApi(dAtA, i, uint64(m.MemorySwappiness.Size())) - n20, err := m.MemorySwappiness.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n20 - } - if len(m.Ulimits) > 0 { - for _, msg := range m.Ulimits { - dAtA[i] = 0xf2 - i++ - dAtA[i] = 0x6 - i++ - i = encodeVarintApi(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } return i, nil } -func (m *WeightDevice) Marshal() (dAtA []byte, err error) { +func (m *SELinuxOption) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -6236,55 +5869,39 @@ func (m *WeightDevice) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *WeightDevice) MarshalTo(dAtA []byte) (int, error) { +func (m *SELinuxOption) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int _ = l - if len(m.Path) > 0 { + if len(m.User) > 0 { dAtA[i] = 0xa i++ - i = encodeVarintApi(dAtA, i, uint64(len(m.Path))) - i += copy(dAtA[i:], m.Path) + i = encodeVarintApi(dAtA, i, uint64(len(m.User))) + i += copy(dAtA[i:], m.User) } - if m.Weight != 0 { - dAtA[i] = 0x10 + if len(m.Role) > 0 { + dAtA[i] = 0x12 i++ - i = encodeVarintApi(dAtA, i, uint64(m.Weight)) - } - return i, nil -} - -func (m *ThrottleDevice) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err + i = encodeVarintApi(dAtA, i, uint64(len(m.Role))) + i += copy(dAtA[i:], m.Role) } - return dAtA[:n], nil -} - -func (m *ThrottleDevice) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Path) > 0 { - dAtA[i] = 0xa + if len(m.Type) > 0 { + dAtA[i] = 0x1a i++ - i = encodeVarintApi(dAtA, i, uint64(len(m.Path))) - i += copy(dAtA[i:], m.Path) + i = encodeVarintApi(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) } - if m.Rate != 0 { - dAtA[i] = 0x10 + if len(m.Level) > 0 { + dAtA[i] = 0x22 i++ - i = encodeVarintApi(dAtA, i, uint64(m.Rate)) + i = encodeVarintApi(dAtA, i, uint64(len(m.Level))) + i += copy(dAtA[i:], m.Level) } return i, nil } -func (m *Ulimit) Marshal() (dAtA []byte, err error) { +func (m *Capability) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) n, err := m.MarshalTo(dAtA) @@ -6294,83 +5911,7 @@ func (m *Ulimit) Marshal() (dAtA []byte, err error) { return dAtA[:n], nil } -func (m *Ulimit) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.Name) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintApi(dAtA, i, uint64(len(m.Name))) - i += copy(dAtA[i:], m.Name) - } - if m.Hard != 0 { - dAtA[i] = 0x10 - i++ - i = encodeVarintApi(dAtA, i, uint64(m.Hard)) - } - if m.Soft != 0 { - dAtA[i] = 0x18 - i++ - i = encodeVarintApi(dAtA, i, uint64(m.Soft)) - } - return i, nil -} - -func (m *SELinuxOption) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *SELinuxOption) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if len(m.User) > 0 { - dAtA[i] = 0xa - i++ - i = encodeVarintApi(dAtA, i, uint64(len(m.User))) - i += copy(dAtA[i:], m.User) - } - if len(m.Role) > 0 { - dAtA[i] = 0x12 - i++ - i = encodeVarintApi(dAtA, i, uint64(len(m.Role))) - i += copy(dAtA[i:], m.Role) - } - if len(m.Type) > 0 { - dAtA[i] = 0x1a - i++ - i = encodeVarintApi(dAtA, i, uint64(len(m.Type))) - i += copy(dAtA[i:], m.Type) - } - if len(m.Level) > 0 { - dAtA[i] = 0x22 - i++ - i = encodeVarintApi(dAtA, i, uint64(len(m.Level))) - i += copy(dAtA[i:], m.Level) - } - return i, nil -} - -func (m *Capability) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Capability) MarshalTo(dAtA []byte) (int, error) { +func (m *Capability) MarshalTo(dAtA []byte) (int, error) { var i int _ = i var l int @@ -6427,11 +5968,11 @@ func (m *LinuxContainerSecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Capabilities.Size())) - n21, err := m.Capabilities.MarshalTo(dAtA[i:]) + n20, err := m.Capabilities.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n21 + i += n20 } if m.Privileged { dAtA[i] = 0x10 @@ -6447,31 +5988,31 @@ func (m *LinuxContainerSecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintApi(dAtA, i, uint64(m.NamespaceOptions.Size())) - n22, err := m.NamespaceOptions.MarshalTo(dAtA[i:]) + n21, err := m.NamespaceOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n22 + i += n21 } if m.SelinuxOptions != nil { dAtA[i] = 0x22 i++ i = encodeVarintApi(dAtA, i, uint64(m.SelinuxOptions.Size())) - n23, err := m.SelinuxOptions.MarshalTo(dAtA[i:]) + n22, err := m.SelinuxOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n23 + i += n22 } if m.RunAsUser != nil { dAtA[i] = 0x2a i++ i = encodeVarintApi(dAtA, i, uint64(m.RunAsUser.Size())) - n24, err := m.RunAsUser.MarshalTo(dAtA[i:]) + n23, err := m.RunAsUser.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n24 + i += n23 } if len(m.RunAsUsername) > 0 { dAtA[i] = 0x32 @@ -6490,22 +6031,22 @@ func (m *LinuxContainerSecurityContext) MarshalTo(dAtA []byte) (int, error) { i++ } if len(m.SupplementalGroups) > 0 { - dAtA26 := make([]byte, len(m.SupplementalGroups)*10) - var j25 int + dAtA25 := make([]byte, len(m.SupplementalGroups)*10) + var j24 int for _, num1 := range m.SupplementalGroups { num := uint64(num1) for num >= 1<<7 { - dAtA26[j25] = uint8(uint64(num)&0x7f | 0x80) + dAtA25[j24] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j25++ + j24++ } - dAtA26[j25] = uint8(num) - j25++ + dAtA25[j24] = uint8(num) + j24++ } dAtA[i] = 0x42 i++ - i = encodeVarintApi(dAtA, i, uint64(j25)) - i += copy(dAtA[i:], dAtA26[:j25]) + i = encodeVarintApi(dAtA, i, uint64(j24)) + i += copy(dAtA[i:], dAtA25[:j24]) } if len(m.ApparmorProfile) > 0 { dAtA[i] = 0x4a @@ -6551,21 +6092,21 @@ func (m *LinuxContainerConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Resources.Size())) - n27, err := m.Resources.MarshalTo(dAtA[i:]) + n26, err := m.Resources.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n27 + i += n26 } if m.SecurityContext != nil { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.SecurityContext.Size())) - n28, err := m.SecurityContext.MarshalTo(dAtA[i:]) + n27, err := m.SecurityContext.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n28 + i += n27 } return i, nil } @@ -6654,21 +6195,21 @@ func (m *ContainerConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Metadata.Size())) - n29, err := m.Metadata.MarshalTo(dAtA[i:]) + n28, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n29 + i += n28 } if m.Image != nil { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n30, err := m.Image.MarshalTo(dAtA[i:]) + n29, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n30 + i += n29 } if len(m.Command) > 0 { for _, s := range m.Command { @@ -6816,18 +6357,11 @@ func (m *ContainerConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x7a i++ i = encodeVarintApi(dAtA, i, uint64(m.Linux.Size())) - n31, err := m.Linux.MarshalTo(dAtA[i:]) + n30, err := m.Linux.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n31 - } - if m.NetPriority != 0 { - dAtA[i] = 0xa0 - i++ - dAtA[i] = 0x6 - i++ - i = encodeVarintApi(dAtA, i, uint64(m.NetPriority)) + i += n30 } return i, nil } @@ -6857,21 +6391,21 @@ func (m *CreateContainerRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.Config.Size())) - n32, err := m.Config.MarshalTo(dAtA[i:]) + n31, err := m.Config.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n32 + i += n31 } if m.SandboxConfig != nil { dAtA[i] = 0x1a i++ i = encodeVarintApi(dAtA, i, uint64(m.SandboxConfig.Size())) - n33, err := m.SandboxConfig.MarshalTo(dAtA[i:]) + n32, err := m.SandboxConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n33 + i += n32 } return i, nil } @@ -7079,11 +6613,11 @@ func (m *ContainerFilter) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.State.Size())) - n34, err := m.State.MarshalTo(dAtA[i:]) + n33, err := m.State.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n34 + i += n33 } if len(m.PodSandboxId) > 0 { dAtA[i] = 0x1a @@ -7130,11 +6664,11 @@ func (m *ListContainersRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Filter.Size())) - n35, err := m.Filter.MarshalTo(dAtA[i:]) + n34, err := m.Filter.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n35 + i += n34 } return i, nil } @@ -7170,21 +6704,21 @@ func (m *Container) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintApi(dAtA, i, uint64(m.Metadata.Size())) - n36, err := m.Metadata.MarshalTo(dAtA[i:]) + n35, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n36 + i += n35 } if m.Image != nil { dAtA[i] = 0x22 i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n37, err := m.Image.MarshalTo(dAtA[i:]) + n36, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n37 + i += n36 } if len(m.ImageRef) > 0 { dAtA[i] = 0x2a @@ -7328,11 +6862,11 @@ func (m *ContainerStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.Metadata.Size())) - n38, err := m.Metadata.MarshalTo(dAtA[i:]) + n37, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n38 + i += n37 } if m.State != 0 { dAtA[i] = 0x18 @@ -7363,11 +6897,11 @@ func (m *ContainerStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x42 i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n39, err := m.Image.MarshalTo(dAtA[i:]) + n38, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n39 + i += n38 } if len(m.ImageRef) > 0 { dAtA[i] = 0x4a @@ -7439,66 +6973,6 @@ func (m *ContainerStatus) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintApi(dAtA, i, uint64(len(m.LogPath))) i += copy(dAtA[i:], m.LogPath) } - if len(m.Volumes) > 0 { - for k := range m.Volumes { - dAtA[i] = 0xa2 - i++ - dAtA[i] = 0x6 - i++ - v := m.Volumes[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovApi(uint64(msgSize)) - } - mapSize := 1 + len(k) + sovApi(uint64(len(k))) + msgSize - i = encodeVarintApi(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintApi(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintApi(dAtA, i, uint64(v.Size())) - n40, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n40 - } - } - } - if m.Resources != nil { - dAtA[i] = 0xaa - i++ - dAtA[i] = 0x6 - i++ - i = encodeVarintApi(dAtA, i, uint64(m.Resources.Size())) - n41, err := m.Resources.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n41 - } - return i, nil -} - -func (m *Volume) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Volume) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l return i, nil } @@ -7521,11 +6995,11 @@ func (m *ContainerStatusResponse) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Status.Size())) - n42, err := m.Status.MarshalTo(dAtA[i:]) + n39, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n42 + i += n39 } if len(m.Info) > 0 { for k := range m.Info { @@ -7572,11 +7046,11 @@ func (m *UpdateContainerResourcesRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.Linux.Size())) - n43, err := m.Linux.MarshalTo(dAtA[i:]) + n40, err := m.Linux.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n43 + i += n40 } return i, nil } @@ -7891,22 +7365,22 @@ func (m *PortForwardRequest) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], m.PodSandboxId) } if len(m.Port) > 0 { - dAtA45 := make([]byte, len(m.Port)*10) - var j44 int + dAtA42 := make([]byte, len(m.Port)*10) + var j41 int for _, num1 := range m.Port { num := uint64(num1) for num >= 1<<7 { - dAtA45[j44] = uint8(uint64(num)&0x7f | 0x80) + dAtA42[j41] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j44++ + j41++ } - dAtA45[j44] = uint8(num) - j44++ + dAtA42[j41] = uint8(num) + j41++ } dAtA[i] = 0x12 i++ - i = encodeVarintApi(dAtA, i, uint64(j44)) - i += copy(dAtA[i:], dAtA45[:j44]) + i = encodeVarintApi(dAtA, i, uint64(j41)) + i += copy(dAtA[i:], dAtA42[:j41]) } return i, nil } @@ -7954,11 +7428,11 @@ func (m *ImageFilter) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n46, err := m.Image.MarshalTo(dAtA[i:]) + n43, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n46 + i += n43 } return i, nil } @@ -7982,11 +7456,11 @@ func (m *ListImagesRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Filter.Size())) - n47, err := m.Filter.MarshalTo(dAtA[i:]) + n44, err := m.Filter.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n47 + i += n44 } return i, nil } @@ -8051,11 +7525,11 @@ func (m *Image) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintApi(dAtA, i, uint64(m.Uid.Size())) - n48, err := m.Uid.MarshalTo(dAtA[i:]) + n45, err := m.Uid.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n48 + i += n45 } if len(m.Username) > 0 { dAtA[i] = 0x32 @@ -8063,36 +7537,6 @@ func (m *Image) MarshalTo(dAtA []byte) (int, error) { i = encodeVarintApi(dAtA, i, uint64(len(m.Username))) i += copy(dAtA[i:], m.Username) } - if len(m.Volumes) > 0 { - for k := range m.Volumes { - dAtA[i] = 0xa2 - i++ - dAtA[i] = 0x6 - i++ - v := m.Volumes[k] - msgSize := 0 - if v != nil { - msgSize = v.Size() - msgSize += 1 + sovApi(uint64(msgSize)) - } - mapSize := 1 + len(k) + sovApi(uint64(len(k))) + msgSize - i = encodeVarintApi(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintApi(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - if v != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintApi(dAtA, i, uint64(v.Size())) - n49, err := v.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n49 - } - } - } return i, nil } @@ -8145,11 +7589,11 @@ func (m *ImageStatusRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n50, err := m.Image.MarshalTo(dAtA[i:]) + n46, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n50 + i += n46 } if m.Verbose { dAtA[i] = 0x10 @@ -8183,11 +7627,11 @@ func (m *ImageStatusResponse) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n51, err := m.Image.MarshalTo(dAtA[i:]) + n47, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n51 + i += n47 } if len(m.Info) > 0 { for k := range m.Info { @@ -8282,31 +7726,31 @@ func (m *PullImageRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n52, err := m.Image.MarshalTo(dAtA[i:]) + n48, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n52 + i += n48 } if m.Auth != nil { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.Auth.Size())) - n53, err := m.Auth.MarshalTo(dAtA[i:]) + n49, err := m.Auth.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n53 + i += n49 } if m.SandboxConfig != nil { dAtA[i] = 0x1a i++ i = encodeVarintApi(dAtA, i, uint64(m.SandboxConfig.Size())) - n54, err := m.SandboxConfig.MarshalTo(dAtA[i:]) + n50, err := m.SandboxConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n54 + i += n50 } return i, nil } @@ -8354,11 +7798,11 @@ func (m *RemoveImageRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n55, err := m.Image.MarshalTo(dAtA[i:]) + n51, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n55 + i += n51 } return i, nil } @@ -8424,11 +7868,11 @@ func (m *RuntimeConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.NetworkConfig.Size())) - n56, err := m.NetworkConfig.MarshalTo(dAtA[i:]) + n52, err := m.NetworkConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n56 + i += n52 } return i, nil } @@ -8452,11 +7896,11 @@ func (m *UpdateRuntimeConfigRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.RuntimeConfig.Size())) - n57, err := m.RuntimeConfig.MarshalTo(dAtA[i:]) + n53, err := m.RuntimeConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n57 + i += n53 } return i, nil } @@ -8602,11 +8046,11 @@ func (m *StatusResponse) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Status.Size())) - n58, err := m.Status.MarshalTo(dAtA[i:]) + n54, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n58 + i += n54 } if len(m.Info) > 0 { for k := range m.Info { @@ -8717,31 +8161,31 @@ func (m *FilesystemUsage) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.StorageId.Size())) - n59, err := m.StorageId.MarshalTo(dAtA[i:]) + n55, err := m.StorageId.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n59 + i += n55 } if m.UsedBytes != nil { dAtA[i] = 0x1a i++ i = encodeVarintApi(dAtA, i, uint64(m.UsedBytes.Size())) - n60, err := m.UsedBytes.MarshalTo(dAtA[i:]) + n56, err := m.UsedBytes.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n60 + i += n56 } if m.InodesUsed != nil { dAtA[i] = 0x22 i++ i = encodeVarintApi(dAtA, i, uint64(m.InodesUsed.Size())) - n61, err := m.InodesUsed.MarshalTo(dAtA[i:]) + n57, err := m.InodesUsed.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n61 + i += n57 } return i, nil } @@ -8819,11 +8263,11 @@ func (m *ContainerStatsResponse) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Stats.Size())) - n62, err := m.Stats.MarshalTo(dAtA[i:]) + n58, err := m.Stats.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n62 + i += n58 } return i, nil } @@ -8847,11 +8291,11 @@ func (m *ListContainerStatsRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Filter.Size())) - n63, err := m.Filter.MarshalTo(dAtA[i:]) + n59, err := m.Filter.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n63 + i += n59 } return i, nil } @@ -8958,11 +8402,11 @@ func (m *ContainerAttributes) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.Metadata.Size())) - n64, err := m.Metadata.MarshalTo(dAtA[i:]) + n60, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n64 + i += n60 } if len(m.Labels) > 0 { for k := range m.Labels { @@ -9020,41 +8464,41 @@ func (m *ContainerStats) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Attributes.Size())) - n65, err := m.Attributes.MarshalTo(dAtA[i:]) + n61, err := m.Attributes.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n65 + i += n61 } if m.Cpu != nil { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.Cpu.Size())) - n66, err := m.Cpu.MarshalTo(dAtA[i:]) + n62, err := m.Cpu.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n66 + i += n62 } if m.Memory != nil { dAtA[i] = 0x1a i++ i = encodeVarintApi(dAtA, i, uint64(m.Memory.Size())) - n67, err := m.Memory.MarshalTo(dAtA[i:]) + n63, err := m.Memory.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n67 + i += n63 } if m.WritableLayer != nil { dAtA[i] = 0x22 i++ i = encodeVarintApi(dAtA, i, uint64(m.WritableLayer.Size())) - n68, err := m.WritableLayer.MarshalTo(dAtA[i:]) + n64, err := m.WritableLayer.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n68 + i += n64 } return i, nil } @@ -9083,11 +8527,11 @@ func (m *CpuUsage) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.UsageCoreNanoSeconds.Size())) - n69, err := m.UsageCoreNanoSeconds.MarshalTo(dAtA[i:]) + n65, err := m.UsageCoreNanoSeconds.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n69 + i += n65 } return i, nil } @@ -9116,11 +8560,11 @@ func (m *MemoryUsage) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.WorkingSetBytes.Size())) - n70, err := m.WorkingSetBytes.MarshalTo(dAtA[i:]) + n66, err := m.WorkingSetBytes.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n70 + i += n66 } return i, nil } @@ -9696,131 +9140,32 @@ func (m *LinuxContainerResources) Size() (n int) { if l > 0 { n += 1 + l + sovApi(uint64(l)) } - if len(m.DiskQuota) > 0 { - for k, v := range m.DiskQuota { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + 1 + len(v) + sovApi(uint64(len(v))) - n += mapEntrySize + 2 + sovApi(uint64(mapEntrySize)) - } - } - if m.BlkioWeight != 0 { - n += 2 + sovApi(uint64(m.BlkioWeight)) - } - if len(m.BlkioWeightDevice) > 0 { - for _, e := range m.BlkioWeightDevice { - l = e.Size() - n += 2 + l + sovApi(uint64(l)) - } - } - if len(m.BlkioDeviceReadBps) > 0 { - for _, e := range m.BlkioDeviceReadBps { - l = e.Size() - n += 2 + l + sovApi(uint64(l)) - } - } - if len(m.BlkioDeviceWriteBps) > 0 { - for _, e := range m.BlkioDeviceWriteBps { - l = e.Size() - n += 2 + l + sovApi(uint64(l)) - } - } - if len(m.BlkioDeviceRead_IOps) > 0 { - for _, e := range m.BlkioDeviceRead_IOps { - l = e.Size() - n += 2 + l + sovApi(uint64(l)) - } - } - if len(m.BlkioDeviceWrite_IOps) > 0 { - for _, e := range m.BlkioDeviceWrite_IOps { - l = e.Size() - n += 2 + l + sovApi(uint64(l)) - } - } - if m.KernelMemory != 0 { - n += 2 + sovApi(uint64(m.KernelMemory)) - } - if m.MemoryReservation != 0 { - n += 2 + sovApi(uint64(m.MemoryReservation)) - } - if m.MemorySwappiness != nil { - l = m.MemorySwappiness.Size() - n += 2 + l + sovApi(uint64(l)) - } - if len(m.Ulimits) > 0 { - for _, e := range m.Ulimits { - l = e.Size() - n += 2 + l + sovApi(uint64(l)) - } - } return n } -func (m *WeightDevice) Size() (n int) { +func (m *SELinuxOption) Size() (n int) { var l int _ = l - l = len(m.Path) + l = len(m.User) if l > 0 { n += 1 + l + sovApi(uint64(l)) } - if m.Weight != 0 { - n += 1 + sovApi(uint64(m.Weight)) - } - return n -} - -func (m *ThrottleDevice) Size() (n int) { - var l int - _ = l - l = len(m.Path) + l = len(m.Role) if l > 0 { n += 1 + l + sovApi(uint64(l)) } - if m.Rate != 0 { - n += 1 + sovApi(uint64(m.Rate)) - } - return n -} - -func (m *Ulimit) Size() (n int) { - var l int - _ = l - l = len(m.Name) + l = len(m.Type) if l > 0 { n += 1 + l + sovApi(uint64(l)) } - if m.Hard != 0 { - n += 1 + sovApi(uint64(m.Hard)) - } - if m.Soft != 0 { - n += 1 + sovApi(uint64(m.Soft)) + l = len(m.Level) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) } return n } -func (m *SELinuxOption) Size() (n int) { - var l int - _ = l - l = len(m.User) - if l > 0 { - n += 1 + l + sovApi(uint64(l)) - } - l = len(m.Role) - if l > 0 { - n += 1 + l + sovApi(uint64(l)) - } - l = len(m.Type) - if l > 0 { - n += 1 + l + sovApi(uint64(l)) - } - l = len(m.Level) - if l > 0 { - n += 1 + l + sovApi(uint64(l)) - } - return n -} - -func (m *Capability) Size() (n int) { +func (m *Capability) Size() (n int) { var l int _ = l if len(m.AddCapabilities) > 0 { @@ -10011,9 +9356,6 @@ func (m *ContainerConfig) Size() (n int) { l = m.Linux.Size() n += 1 + l + sovApi(uint64(l)) } - if m.NetPriority != 0 { - n += 2 + sovApi(uint64(m.NetPriority)) - } return n } @@ -10282,29 +9624,6 @@ func (m *ContainerStatus) Size() (n int) { if l > 0 { n += 1 + l + sovApi(uint64(l)) } - if len(m.Volumes) > 0 { - for k, v := range m.Volumes { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovApi(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + l - n += mapEntrySize + 2 + sovApi(uint64(mapEntrySize)) - } - } - if m.Resources != nil { - l = m.Resources.Size() - n += 2 + l + sovApi(uint64(l)) - } - return n -} - -func (m *Volume) Size() (n int) { - var l int - _ = l return n } @@ -10529,19 +9848,6 @@ func (m *Image) Size() (n int) { if l > 0 { n += 1 + l + sovApi(uint64(l)) } - if len(m.Volumes) > 0 { - for k, v := range m.Volumes { - _ = k - _ = v - l = 0 - if v != nil { - l = v.Size() - l += 1 + sovApi(uint64(l)) - } - mapEntrySize := 1 + len(k) + sovApi(uint64(len(k))) + l - n += mapEntrySize + 2 + sovApi(uint64(mapEntrySize)) - } - } return n } @@ -11412,16 +10718,6 @@ func (this *LinuxContainerResources) String() string { if this == nil { return "nil" } - keysForDiskQuota := make([]string, 0, len(this.DiskQuota)) - for k := range this.DiskQuota { - keysForDiskQuota = append(keysForDiskQuota, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForDiskQuota) - mapStringForDiskQuota := "map[string]string{" - for _, k := range keysForDiskQuota { - mapStringForDiskQuota += fmt.Sprintf("%v: %v,", k, this.DiskQuota[k]) - } - mapStringForDiskQuota += "}" s := strings.Join([]string{`&LinuxContainerResources{`, `CpuPeriod:` + fmt.Sprintf("%v", this.CpuPeriod) + `,`, `CpuQuota:` + fmt.Sprintf("%v", this.CpuQuota) + `,`, @@ -11430,51 +10726,6 @@ func (this *LinuxContainerResources) String() string { `OomScoreAdj:` + fmt.Sprintf("%v", this.OomScoreAdj) + `,`, `CpusetCpus:` + fmt.Sprintf("%v", this.CpusetCpus) + `,`, `CpusetMems:` + fmt.Sprintf("%v", this.CpusetMems) + `,`, - `DiskQuota:` + mapStringForDiskQuota + `,`, - `BlkioWeight:` + fmt.Sprintf("%v", this.BlkioWeight) + `,`, - `BlkioWeightDevice:` + strings.Replace(fmt.Sprintf("%v", this.BlkioWeightDevice), "WeightDevice", "WeightDevice", 1) + `,`, - `BlkioDeviceReadBps:` + strings.Replace(fmt.Sprintf("%v", this.BlkioDeviceReadBps), "ThrottleDevice", "ThrottleDevice", 1) + `,`, - `BlkioDeviceWriteBps:` + strings.Replace(fmt.Sprintf("%v", this.BlkioDeviceWriteBps), "ThrottleDevice", "ThrottleDevice", 1) + `,`, - `BlkioDeviceRead_IOps:` + strings.Replace(fmt.Sprintf("%v", this.BlkioDeviceRead_IOps), "ThrottleDevice", "ThrottleDevice", 1) + `,`, - `BlkioDeviceWrite_IOps:` + strings.Replace(fmt.Sprintf("%v", this.BlkioDeviceWrite_IOps), "ThrottleDevice", "ThrottleDevice", 1) + `,`, - `KernelMemory:` + fmt.Sprintf("%v", this.KernelMemory) + `,`, - `MemoryReservation:` + fmt.Sprintf("%v", this.MemoryReservation) + `,`, - `MemorySwappiness:` + strings.Replace(fmt.Sprintf("%v", this.MemorySwappiness), "Int64Value", "Int64Value", 1) + `,`, - `Ulimits:` + strings.Replace(fmt.Sprintf("%v", this.Ulimits), "Ulimit", "Ulimit", 1) + `,`, - `}`, - }, "") - return s -} -func (this *WeightDevice) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&WeightDevice{`, - `Path:` + fmt.Sprintf("%v", this.Path) + `,`, - `Weight:` + fmt.Sprintf("%v", this.Weight) + `,`, - `}`, - }, "") - return s -} -func (this *ThrottleDevice) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ThrottleDevice{`, - `Path:` + fmt.Sprintf("%v", this.Path) + `,`, - `Rate:` + fmt.Sprintf("%v", this.Rate) + `,`, - `}`, - }, "") - return s -} -func (this *Ulimit) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Ulimit{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `Hard:` + fmt.Sprintf("%v", this.Hard) + `,`, - `Soft:` + fmt.Sprintf("%v", this.Soft) + `,`, `}`, }, "") return s @@ -11597,7 +10848,6 @@ func (this *ContainerConfig) String() string { `StdinOnce:` + fmt.Sprintf("%v", this.StdinOnce) + `,`, `Tty:` + fmt.Sprintf("%v", this.Tty) + `,`, `Linux:` + strings.Replace(fmt.Sprintf("%v", this.Linux), "LinuxContainerConfig", "LinuxContainerConfig", 1) + `,`, - `NetPriority:` + fmt.Sprintf("%v", this.NetPriority) + `,`, `}`, }, "") return s @@ -11808,16 +11058,6 @@ func (this *ContainerStatus) String() string { mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k]) } mapStringForAnnotations += "}" - keysForVolumes := make([]string, 0, len(this.Volumes)) - for k := range this.Volumes { - keysForVolumes = append(keysForVolumes, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForVolumes) - mapStringForVolumes := "map[string]*Volume{" - for _, k := range keysForVolumes { - mapStringForVolumes += fmt.Sprintf("%v: %v,", k, this.Volumes[k]) - } - mapStringForVolumes += "}" s := strings.Join([]string{`&ContainerStatus{`, `Id:` + fmt.Sprintf("%v", this.Id) + `,`, `Metadata:` + strings.Replace(fmt.Sprintf("%v", this.Metadata), "ContainerMetadata", "ContainerMetadata", 1) + `,`, @@ -11834,17 +11074,6 @@ func (this *ContainerStatus) String() string { `Annotations:` + mapStringForAnnotations + `,`, `Mounts:` + strings.Replace(fmt.Sprintf("%v", this.Mounts), "Mount", "Mount", 1) + `,`, `LogPath:` + fmt.Sprintf("%v", this.LogPath) + `,`, - `Volumes:` + mapStringForVolumes + `,`, - `Resources:` + strings.Replace(fmt.Sprintf("%v", this.Resources), "LinuxContainerResources", "LinuxContainerResources", 1) + `,`, - `}`, - }, "") - return s -} -func (this *Volume) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Volume{`, `}`, }, "") return s @@ -12008,16 +11237,6 @@ func (this *Image) String() string { if this == nil { return "nil" } - keysForVolumes := make([]string, 0, len(this.Volumes)) - for k := range this.Volumes { - keysForVolumes = append(keysForVolumes, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForVolumes) - mapStringForVolumes := "map[string]*Volume{" - for _, k := range keysForVolumes { - mapStringForVolumes += fmt.Sprintf("%v: %v,", k, this.Volumes[k]) - } - mapStringForVolumes += "}" s := strings.Join([]string{`&Image{`, `Id:` + fmt.Sprintf("%v", this.Id) + `,`, `RepoTags:` + fmt.Sprintf("%v", this.RepoTags) + `,`, @@ -12025,7 +11244,6 @@ func (this *Image) String() string { `Size_:` + fmt.Sprintf("%v", this.Size_) + `,`, `Uid:` + strings.Replace(fmt.Sprintf("%v", this.Uid), "Int64Value", "Int64Value", 1) + `,`, `Username:` + fmt.Sprintf("%v", this.Username) + `,`, - `Volumes:` + mapStringForVolumes + `,`, `}`, }, "") return s @@ -17032,11 +16250,61 @@ func (m *LinuxContainerResources) Unmarshal(dAtA []byte) error { } m.CpusetMems = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 100: + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SELinuxOption) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SELinuxOption: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SELinuxOption: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field DiskQuota", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field User", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowApi @@ -17046,34 +16314,26 @@ func (m *LinuxContainerResources) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthApi } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } + m.User = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) } - var stringLenmapkey uint64 + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowApi @@ -17083,95 +16343,26 @@ func (m *LinuxContainerResources) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthApi } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { + postIndex := iNdEx + intStringLen + if postIndex > l { return io.ErrUnexpectedEOF } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.DiskQuota == nil { - m.DiskQuota = make(map[string]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthApi - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.DiskQuota[mapkey] = mapvalue - } else { - var mapvalue string - m.DiskQuota[mapkey] = mapvalue - } + m.Role = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 101: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field BlkioWeight", wireType) - } - m.BlkioWeight = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.BlkioWeight |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 102: + case 3: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BlkioWeightDevice", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowApi @@ -17181,28 +16372,26 @@ func (m *LinuxContainerResources) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthApi } - postIndex := iNdEx + msglen + postIndex := iNdEx + intStringLen if postIndex > l { return io.ErrUnexpectedEOF } - m.BlkioWeightDevice = append(m.BlkioWeightDevice, &WeightDevice{}) - if err := m.BlkioWeightDevice[len(m.BlkioWeightDevice)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } + m.Type = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 103: + case 4: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BlkioDeviceReadBps", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Level", wireType) } - var msglen int + var stringLen uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowApi @@ -17212,689 +16401,13 @@ func (m *LinuxContainerResources) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - msglen |= (int(b) & 0x7F) << shift + stringLen |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if msglen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BlkioDeviceReadBps = append(m.BlkioDeviceReadBps, &ThrottleDevice{}) - if err := m.BlkioDeviceReadBps[len(m.BlkioDeviceReadBps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 104: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BlkioDeviceWriteBps", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BlkioDeviceWriteBps = append(m.BlkioDeviceWriteBps, &ThrottleDevice{}) - if err := m.BlkioDeviceWriteBps[len(m.BlkioDeviceWriteBps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 105: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BlkioDeviceRead_IOps", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BlkioDeviceRead_IOps = append(m.BlkioDeviceRead_IOps, &ThrottleDevice{}) - if err := m.BlkioDeviceRead_IOps[len(m.BlkioDeviceRead_IOps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 106: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field BlkioDeviceWrite_IOps", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.BlkioDeviceWrite_IOps = append(m.BlkioDeviceWrite_IOps, &ThrottleDevice{}) - if err := m.BlkioDeviceWrite_IOps[len(m.BlkioDeviceWrite_IOps)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 107: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field KernelMemory", wireType) - } - m.KernelMemory = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.KernelMemory |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 108: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MemoryReservation", wireType) - } - m.MemoryReservation = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.MemoryReservation |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 109: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MemorySwappiness", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.MemorySwappiness == nil { - m.MemorySwappiness = &Int64Value{} - } - if err := m.MemorySwappiness.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 110: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Ulimits", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Ulimits = append(m.Ulimits, &Ulimit{}) - if err := m.Ulimits[len(m.Ulimits)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipApi(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *WeightDevice) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: WeightDevice: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: WeightDevice: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Path = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Weight", wireType) - } - m.Weight = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Weight |= (uint32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipApi(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ThrottleDevice) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ThrottleDevice: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ThrottleDevice: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Path", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Path = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Rate", wireType) - } - m.Rate = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Rate |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipApi(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Ulimit) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Ulimit: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Ulimit: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Hard", wireType) - } - m.Hard = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Hard |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Soft", wireType) - } - m.Soft = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Soft |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipApi(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthApi - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *SELinuxOption) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: SELinuxOption: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: SELinuxOption: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field User", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.User = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Role = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Level", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { + intStringLen := int(stringLen) + if intStringLen < 0 { return ErrInvalidLengthApi } postIndex := iNdEx + intStringLen @@ -19403,25 +17916,6 @@ func (m *ContainerConfig) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex - case 100: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NetPriority", wireType) - } - m.NetPriority = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.NetPriority |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -21529,213 +20023,37 @@ func (m *ContainerStatus) Unmarshal(dAtA []byte) error { var stringLenmapvalue uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthApi - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Labels[mapkey] = mapvalue - } else { - var mapvalue string - m.Labels[mapkey] = mapvalue - } - iNdEx = postIndex - case 13: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthApi - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.Annotations == nil { - m.Annotations = make(map[string]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthApi - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Annotations[mapkey] = mapvalue - } else { - var mapvalue string - m.Annotations[mapkey] = mapvalue - } - iNdEx = postIndex - case 14: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Mounts", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - } - if msglen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Mounts = append(m.Mounts, &Mount{}) - if err := m.Mounts[len(m.Mounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 15: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LogPath", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthApi } - if iNdEx >= l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.Labels[mapkey] = mapvalue + } else { + var mapvalue string + m.Labels[mapkey] = mapvalue } - m.LogPath = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 100: + case 13: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Volumes", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -21799,8 +20117,8 @@ func (m *ContainerStatus) Unmarshal(dAtA []byte) error { } mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) iNdEx = postStringIndexmapkey - if m.Volumes == nil { - m.Volumes = make(map[string]*Volume) + if m.Annotations == nil { + m.Annotations = make(map[string]string) } if iNdEx < postIndex { var valuekey uint64 @@ -21818,7 +20136,7 @@ func (m *ContainerStatus) Unmarshal(dAtA []byte) error { break } } - var mapmsglen int + var stringLenmapvalue uint64 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowApi @@ -21828,35 +20146,30 @@ func (m *ContainerStatus) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift + stringLenmapvalue |= (uint64(b) & 0x7F) << shift if b < 0x80 { break } } - if mapmsglen < 0 { - return ErrInvalidLengthApi - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { return ErrInvalidLengthApi } - if postmsgIndex > l { + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { return io.ErrUnexpectedEOF } - mapvalue := &Volume{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Volumes[mapkey] = mapvalue + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.Annotations[mapkey] = mapvalue } else { - var mapvalue *Volume - m.Volumes[mapkey] = mapvalue + var mapvalue string + m.Annotations[mapkey] = mapvalue } iNdEx = postIndex - case 101: + case 14: if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Mounts", wireType) } var msglen int for shift := uint(0); ; shift += 7 { @@ -21880,63 +20193,40 @@ func (m *ContainerStatus) Unmarshal(dAtA []byte) error { if postIndex > l { return io.ErrUnexpectedEOF } - if m.Resources == nil { - m.Resources = &LinuxContainerResources{} - } - if err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + m.Mounts = append(m.Mounts, &Mount{}) + if err := m.Mounts[len(m.Mounts)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err } iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipApi(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthApi + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LogPath", wireType) } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Volume) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApi } - if iNdEx >= l { + postIndex := iNdEx + intStringLen + if postIndex > l { return io.ErrUnexpectedEOF } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Volume: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Volume: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { + m.LogPath = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -23665,127 +21955,6 @@ func (m *Image) Unmarshal(dAtA []byte) error { } m.Username = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex - case 100: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Volumes", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthApi - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthApi - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.Volumes == nil { - m.Volumes = make(map[string]*Volume) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var mapmsglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowApi - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - mapmsglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if mapmsglen < 0 { - return ErrInvalidLengthApi - } - postmsgIndex := iNdEx + mapmsglen - if mapmsglen < 0 { - return ErrInvalidLengthApi - } - if postmsgIndex > l { - return io.ErrUnexpectedEOF - } - mapvalue := &Volume{} - if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { - return err - } - iNdEx = postmsgIndex - m.Volumes[mapkey] = mapvalue - } else { - var mapvalue *Volume - m.Volumes[mapkey] = mapvalue - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -27412,305 +25581,280 @@ var ( func init() { proto.RegisterFile("api.proto", fileDescriptorApi) } var fileDescriptorApi = []byte{ - // 4799 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5c, 0xdd, 0x6f, 0x1c, 0xc9, - 0x56, 0xf7, 0x7c, 0xd8, 0x9e, 0x39, 0xe3, 0x19, 0x8f, 0xcb, 0x5f, 0x93, 0x49, 0xe2, 0xc4, 0xbd, - 0x9b, 0xcd, 0x26, 0xcb, 0x7a, 0x37, 0xde, 0x65, 0x13, 0xb2, 0x5f, 0x99, 0xd8, 0xce, 0x5e, 0xdf, - 0x75, 0x6c, 0xd3, 0x63, 0xef, 0x87, 0x2e, 0xa8, 0x69, 0x4f, 0x97, 0xc7, 0xbd, 0x99, 0xe9, 0xee, - 0xdb, 0xd5, 0xe3, 0xc4, 0x48, 0x48, 0x3c, 0x20, 0x24, 0x40, 0x48, 0x08, 0xde, 0x90, 0x78, 0x43, - 0x42, 0xba, 0xbc, 0x21, 0x78, 0xe1, 0x81, 0x47, 0x74, 0x79, 0x00, 0xf1, 0x08, 0x6f, 0xdc, 0x45, - 0x42, 0x3c, 0x21, 0xfe, 0x01, 0x24, 0x54, 0x5f, 0xdd, 0xd5, 0x5f, 0x63, 0x3b, 0x37, 0xf7, 0xee, - 0x3e, 0xb9, 0xeb, 0xd4, 0xa9, 0x53, 0xa7, 0xea, 0x9c, 0x3a, 0x75, 0xea, 0x57, 0x35, 0x86, 0xaa, - 0xe9, 0xd9, 0x6b, 0x9e, 0xef, 0x06, 0x2e, 0xaa, 0x9c, 0xde, 0x33, 0x07, 0xde, 0x89, 0x79, 0xaf, - 0xfd, 0x76, 0xdf, 0x0e, 0x4e, 0x46, 0x47, 0x6b, 0x3d, 0x77, 0xf8, 0x4e, 0xdf, 0xed, 0xbb, 0xef, - 0x30, 0x86, 0xa3, 0xd1, 0x31, 0x2b, 0xb1, 0x02, 0xfb, 0xe2, 0x0d, 0xb5, 0xbb, 0xd0, 0xf8, 0x02, - 0xfb, 0xc4, 0x76, 0x1d, 0x1d, 0xff, 0x78, 0x84, 0x49, 0x80, 0x5a, 0x30, 0x7d, 0xca, 0x29, 0xad, - 0xc2, 0xcd, 0xc2, 0x9b, 0x55, 0x5d, 0x16, 0xb5, 0xbf, 0x2a, 0xc0, 0x6c, 0xc8, 0x4c, 0x3c, 0xd7, - 0x21, 0x38, 0x9f, 0x1b, 0xad, 0xc2, 0x8c, 0x3f, 0x72, 0x02, 0x7b, 0x88, 0x0d, 0xc7, 0x1c, 0xe2, - 0x56, 0x91, 0x55, 0xd7, 0x04, 0x6d, 0xd7, 0x1c, 0x62, 0x74, 0x1b, 0x66, 0x25, 0x8b, 0x14, 0x52, - 0x62, 0x5c, 0x0d, 0x41, 0x16, 0xbd, 0xa1, 0x35, 0x98, 0x97, 0x8c, 0xa6, 0x67, 0x87, 0xcc, 0x65, - 0xc6, 0x3c, 0x27, 0xaa, 0x3a, 0x9e, 0x2d, 0xf8, 0xb5, 0x1f, 0x41, 0x75, 0x73, 0xb7, 0xbb, 0xe1, - 0x3a, 0xc7, 0x76, 0x9f, 0xaa, 0x48, 0xb0, 0x4f, 0xdb, 0xb4, 0x0a, 0x37, 0x4b, 0x54, 0x45, 0x51, - 0x44, 0x6d, 0xa8, 0x10, 0x6c, 0xfa, 0xbd, 0x13, 0x4c, 0x5a, 0x45, 0x56, 0x15, 0x96, 0x69, 0x2b, - 0xd7, 0x0b, 0x6c, 0xd7, 0x21, 0xad, 0x12, 0x6f, 0x25, 0x8a, 0xda, 0x9f, 0x17, 0xa0, 0xb6, 0xef, - 0xfa, 0xc1, 0x53, 0xd3, 0xf3, 0x6c, 0xa7, 0x8f, 0xd6, 0xa0, 0xc2, 0xe6, 0xb2, 0xe7, 0x0e, 0xd8, - 0x1c, 0x34, 0xd6, 0xd1, 0x9a, 0x34, 0xc7, 0xda, 0xbe, 0xa8, 0xd1, 0x43, 0x1e, 0x74, 0x0b, 0x1a, - 0x3d, 0xd7, 0x09, 0x4c, 0xdb, 0xc1, 0xbe, 0xe1, 0xb9, 0x7e, 0xc0, 0xa6, 0x66, 0x52, 0xaf, 0x87, - 0x54, 0x2a, 0x1d, 0x5d, 0x85, 0xea, 0x89, 0x4b, 0x02, 0xce, 0x51, 0x62, 0x1c, 0x15, 0x4a, 0x60, - 0x95, 0xcb, 0x30, 0xcd, 0x2a, 0x6d, 0x4f, 0x4c, 0xc2, 0x14, 0x2d, 0x6e, 0x7b, 0xda, 0xbf, 0x14, - 0x60, 0xf2, 0xa9, 0x3b, 0x72, 0x82, 0x44, 0x37, 0x66, 0x70, 0x22, 0x0c, 0xa4, 0x74, 0x63, 0x06, - 0x27, 0x51, 0x37, 0x94, 0x83, 0xdb, 0x88, 0x77, 0x43, 0x2b, 0xdb, 0x50, 0xf1, 0xb1, 0x69, 0xb9, - 0xce, 0xe0, 0x8c, 0xa9, 0x50, 0xd1, 0xc3, 0x32, 0x35, 0x1e, 0xc1, 0x03, 0xdb, 0x19, 0xbd, 0x30, - 0x7c, 0x3c, 0x30, 0x8f, 0xf0, 0x80, 0xa9, 0x52, 0xd1, 0x1b, 0x82, 0xac, 0x73, 0x2a, 0xfa, 0x08, - 0x6a, 0x9e, 0xef, 0x7a, 0x66, 0xdf, 0xa4, 0xf3, 0xd7, 0x9a, 0x64, 0x53, 0xd4, 0x8e, 0xa6, 0x88, - 0xa9, 0xbb, 0x1f, 0x71, 0xe8, 0x2a, 0xbb, 0xf6, 0x0d, 0xcc, 0x52, 0x5f, 0x21, 0x9e, 0xd9, 0xc3, - 0x7b, 0xcc, 0x02, 0xd4, 0xb3, 0x98, 0xca, 0x0e, 0x0e, 0x9e, 0xbb, 0xfe, 0x33, 0x36, 0xae, 0x8a, - 0x5e, 0xa3, 0xb4, 0x5d, 0x4e, 0x42, 0x57, 0xa0, 0xc2, 0x47, 0x65, 0x5b, 0x6c, 0x50, 0x15, 0x9d, - 0xcd, 0xd7, 0xbe, 0x6d, 0x85, 0x55, 0xb6, 0xd7, 0x13, 0x63, 0x9a, 0xe6, 0x73, 0xd7, 0xd3, 0x34, - 0x80, 0x6d, 0x27, 0xf8, 0xe0, 0xfd, 0x2f, 0xcc, 0xc1, 0x08, 0xa3, 0x05, 0x98, 0x3c, 0xa5, 0x1f, - 0x4c, 0x7e, 0x49, 0xe7, 0x05, 0xed, 0x0f, 0x4a, 0x70, 0x75, 0x87, 0x0e, 0xaf, 0x6b, 0x3a, 0xd6, - 0x91, 0xfb, 0xa2, 0x8b, 0x7b, 0x23, 0xdf, 0x0e, 0xce, 0x36, 0x5c, 0x27, 0xc0, 0x2f, 0x02, 0xf4, - 0x04, 0xe6, 0x1c, 0xa9, 0xaf, 0x21, 0x3d, 0x88, 0x4a, 0xa8, 0xad, 0x5f, 0x89, 0xc6, 0x9c, 0x18, - 0x92, 0xde, 0x74, 0xe2, 0x04, 0x82, 0x1e, 0x45, 0xd3, 0x2b, 0xa5, 0x14, 0x99, 0x94, 0xe5, 0x48, - 0x4a, 0x77, 0x8b, 0x69, 0x22, 0x64, 0xc8, 0x79, 0x97, 0x12, 0xde, 0x07, 0xba, 0xd8, 0x0c, 0x93, - 0x18, 0x23, 0x82, 0x7d, 0x36, 0xd6, 0xda, 0xfa, 0x42, 0xd4, 0x3a, 0x1a, 0xaa, 0x5e, 0xf5, 0x47, - 0x4e, 0x87, 0x1c, 0x12, 0xec, 0xb3, 0x35, 0x29, 0x4c, 0x6c, 0xf8, 0xae, 0x1b, 0x1c, 0x13, 0x69, - 0x56, 0x49, 0xd6, 0x19, 0x15, 0xbd, 0x03, 0xf3, 0x64, 0xe4, 0x79, 0x03, 0x3c, 0xc4, 0x4e, 0x60, - 0x0e, 0x8c, 0xbe, 0xef, 0x8e, 0x3c, 0xd2, 0x9a, 0xbc, 0x59, 0x7a, 0xb3, 0xa4, 0x23, 0xb5, 0xea, - 0x33, 0x56, 0x83, 0x56, 0x00, 0x3c, 0xdf, 0x3e, 0xb5, 0x07, 0xb8, 0x8f, 0xad, 0xd6, 0x14, 0x13, - 0xaa, 0x50, 0xd0, 0xbb, 0xb0, 0x40, 0x70, 0xaf, 0xe7, 0x0e, 0x3d, 0xc3, 0xf3, 0xdd, 0x63, 0x7b, - 0x80, 0xb9, 0x53, 0x4e, 0x33, 0xa7, 0x44, 0xa2, 0x6e, 0x9f, 0x57, 0x51, 0xf7, 0xd4, 0xfe, 0xb4, - 0x08, 0x8b, 0x6c, 0x06, 0xf6, 0x5d, 0x4b, 0x98, 0x43, 0xac, 0xf9, 0xd7, 0xa0, 0xde, 0x63, 0x0a, - 0x19, 0x9e, 0xe9, 0x63, 0x27, 0x10, 0xbe, 0x3f, 0xc3, 0x89, 0xfb, 0x8c, 0x86, 0xf6, 0xa1, 0x49, - 0x84, 0xf5, 0x8c, 0x1e, 0x37, 0x9f, 0x98, 0xe3, 0x5b, 0xd1, 0x2c, 0x8d, 0xb1, 0xb5, 0x3e, 0x4b, - 0x52, 0xc6, 0x9f, 0x26, 0x67, 0xa4, 0x17, 0x0c, 0x78, 0xd0, 0xa8, 0xad, 0xff, 0x4a, 0x42, 0x50, - 0x52, 0xd1, 0xb5, 0x2e, 0x67, 0xdf, 0x72, 0x02, 0xff, 0x4c, 0x97, 0x8d, 0xdb, 0x0f, 0x61, 0x46, - 0xad, 0x40, 0x4d, 0x28, 0x3d, 0xc3, 0x67, 0x62, 0x10, 0xf4, 0x33, 0x72, 0x4e, 0xbe, 0x64, 0x79, - 0xe1, 0x61, 0xf1, 0x41, 0x41, 0xf3, 0x01, 0x45, 0xbd, 0x3c, 0xc5, 0x81, 0x69, 0x99, 0x81, 0x89, - 0x10, 0x94, 0x59, 0x14, 0xe6, 0x22, 0xd8, 0x37, 0x95, 0x3a, 0x12, 0xeb, 0xa3, 0xaa, 0xd3, 0x4f, - 0x74, 0x0d, 0xaa, 0xa1, 0x23, 0x8a, 0x50, 0x1c, 0x11, 0x68, 0x48, 0x34, 0x83, 0x00, 0x0f, 0xbd, - 0x80, 0xb9, 0x44, 0x5d, 0x97, 0x45, 0xed, 0x1f, 0xca, 0xd0, 0x4c, 0xd9, 0xe0, 0x01, 0x54, 0x86, - 0xa2, 0x7b, 0xb1, 0x00, 0xae, 0x29, 0x71, 0x31, 0xa5, 0xa2, 0x1e, 0x72, 0xd3, 0xb0, 0x43, 0x97, - 0xa4, 0xb2, 0x6d, 0x84, 0x65, 0x6a, 0xd9, 0x81, 0xdb, 0x37, 0x2c, 0xdb, 0xc7, 0xbd, 0xc0, 0xf5, - 0xcf, 0x84, 0x9a, 0x33, 0x03, 0xb7, 0xbf, 0x29, 0x69, 0x68, 0x1d, 0xc0, 0x72, 0x08, 0x35, 0xea, - 0xb1, 0xdd, 0x67, 0xca, 0xd6, 0xd6, 0xe7, 0xa3, 0xce, 0xc3, 0xbd, 0x41, 0xaf, 0x5a, 0x0e, 0x11, - 0xea, 0x3e, 0x84, 0x3a, 0x0d, 0xb5, 0xc6, 0x90, 0x87, 0x75, 0xee, 0xc9, 0xb5, 0xf5, 0x45, 0x55, - 0xe7, 0x30, 0xe8, 0xeb, 0x33, 0x5e, 0x54, 0x20, 0xe8, 0x13, 0x98, 0x62, 0xb1, 0x8e, 0xb4, 0xa6, - 0x58, 0xa3, 0x37, 0xb2, 0x06, 0x2a, 0x2c, 0xbe, 0xc3, 0x18, 0xb9, 0xc1, 0x45, 0x2b, 0xf4, 0x14, - 0x6a, 0xa6, 0xe3, 0xb8, 0x81, 0xc9, 0x17, 0xfa, 0x34, 0x13, 0xf2, 0xd6, 0x18, 0x21, 0x9d, 0x88, - 0x9b, 0x4b, 0x52, 0xdb, 0xa3, 0x5f, 0x85, 0x49, 0x16, 0x09, 0x5a, 0x15, 0x36, 0xf2, 0x1b, 0xe7, - 0x38, 0xa1, 0xce, 0xb9, 0xdb, 0xbf, 0x06, 0x35, 0x45, 0xb9, 0xcb, 0x38, 0x5d, 0xfb, 0x13, 0x68, - 0x26, 0x55, 0xba, 0x94, 0xd3, 0xfe, 0x10, 0x16, 0xf4, 0x91, 0x13, 0x29, 0x26, 0x93, 0x91, 0x75, - 0x98, 0x12, 0x46, 0xe4, 0x1e, 0xd4, 0xce, 0x9f, 0x13, 0x5d, 0x70, 0x6a, 0x1f, 0xc3, 0x62, 0x42, - 0x96, 0xc8, 0x55, 0x5e, 0x87, 0x86, 0xe7, 0x5a, 0x06, 0xe1, 0x64, 0xc3, 0xb6, 0x64, 0x54, 0xf0, - 0x42, 0xde, 0x6d, 0x8b, 0x36, 0xef, 0x06, 0xae, 0x97, 0xd6, 0xe5, 0x62, 0xcd, 0x5b, 0xb0, 0x94, - 0x6c, 0xce, 0xbb, 0xd7, 0x3e, 0x85, 0x65, 0x1d, 0x0f, 0xdd, 0x53, 0xfc, 0xb2, 0xa2, 0xdb, 0xd0, - 0x4a, 0x0b, 0x10, 0xc2, 0xbf, 0x86, 0xe5, 0x88, 0xda, 0x0d, 0xcc, 0x60, 0x44, 0x2e, 0x25, 0x5c, - 0x24, 0x72, 0x47, 0x2e, 0xc1, 0x72, 0xc3, 0x14, 0x45, 0xed, 0x8e, 0x2a, 0x5a, 0x6c, 0xb0, 0xbc, - 0x07, 0xd4, 0x80, 0xa2, 0xed, 0x09, 0x71, 0x45, 0xdb, 0xd3, 0x1e, 0x41, 0x35, 0xdc, 0xd9, 0xd0, - 0x7b, 0x51, 0x06, 0x55, 0x3c, 0x6f, 0xff, 0x0b, 0x93, 0xab, 0x9d, 0x54, 0x44, 0x17, 0x5d, 0xbd, - 0x07, 0x10, 0x46, 0x22, 0xb9, 0xa1, 0xce, 0x67, 0x08, 0xd4, 0x15, 0x36, 0xed, 0x27, 0xb1, 0xb8, - 0xa4, 0x28, 0x6d, 0x85, 0x4a, 0x5b, 0xb1, 0x38, 0x55, 0xbc, 0x54, 0x9c, 0x7a, 0x07, 0x26, 0x49, - 0x60, 0x06, 0x3c, 0x54, 0x36, 0xd4, 0xf1, 0xc5, 0x3b, 0xc5, 0x3a, 0xe7, 0x43, 0xd7, 0x01, 0x7a, - 0x3e, 0x36, 0x03, 0x6c, 0x19, 0x26, 0x0f, 0xa2, 0x25, 0xbd, 0x2a, 0x28, 0x9d, 0x00, 0x7d, 0x08, - 0xd3, 0x32, 0xa7, 0x99, 0x64, 0x8a, 0xac, 0x66, 0x49, 0x8c, 0x99, 0x40, 0x97, 0x2d, 0xa2, 0x45, - 0x3f, 0x75, 0xce, 0xa2, 0x17, 0x0d, 0x39, 0xb7, 0x12, 0xba, 0xa6, 0xf3, 0x43, 0x17, 0x6f, 0x72, - 0x91, 0xd0, 0x55, 0xc9, 0x0f, 0x5d, 0x42, 0xc8, 0xd8, 0xd0, 0xf5, 0x5d, 0xc6, 0xa0, 0x7f, 0x2a, - 0x40, 0x2b, 0xbd, 0x86, 0x44, 0xec, 0x58, 0x87, 0x29, 0xc2, 0x28, 0xe3, 0x02, 0x91, 0x68, 0x23, - 0x38, 0xd1, 0x23, 0x28, 0xdb, 0xce, 0xb1, 0xcb, 0x8e, 0x16, 0xb1, 0x54, 0x20, 0xaf, 0x97, 0xb5, - 0x6d, 0xe7, 0xd8, 0xe5, 0x93, 0xc2, 0x5a, 0xb6, 0xef, 0x43, 0x35, 0x24, 0x5d, 0x6a, 0x2c, 0x9f, - 0xc1, 0x42, 0xc2, 0x05, 0x79, 0x4e, 0x1b, 0x7a, 0x6c, 0xe1, 0x62, 0x1e, 0xab, 0xfd, 0x6f, 0x41, - 0x5d, 0x41, 0x4f, 0xec, 0x41, 0x80, 0xfd, 0xd4, 0x0a, 0x7a, 0x5f, 0x4a, 0xe5, 0xcb, 0x67, 0x25, - 0x57, 0x2a, 0xcf, 0x36, 0xc5, 0x62, 0x38, 0x80, 0x06, 0xf3, 0x21, 0x83, 0xe0, 0x01, 0xdb, 0xb7, - 0x45, 0xce, 0xf4, 0x76, 0x56, 0x73, 0xde, 0x33, 0xf7, 0xc0, 0xae, 0xe0, 0xe7, 0x33, 0x55, 0x1f, - 0xa8, 0xb4, 0xf6, 0x23, 0x40, 0x69, 0xa6, 0x4b, 0xcd, 0xdd, 0xe7, 0x34, 0x04, 0xd1, 0x73, 0x56, - 0xc6, 0x66, 0x74, 0xcc, 0xd4, 0x18, 0xe7, 0x03, 0x5c, 0x51, 0x5d, 0x70, 0x6a, 0x7f, 0x59, 0x02, - 0x88, 0x2a, 0xbf, 0xc7, 0xb1, 0xe7, 0x41, 0x18, 0x07, 0x78, 0xde, 0x73, 0x33, 0x4b, 0x60, 0x66, - 0x04, 0xf8, 0x2c, 0x1e, 0x01, 0x78, 0x06, 0x74, 0x2b, 0xb3, 0xf9, 0xf7, 0x76, 0xed, 0x6f, 0xc2, - 0x52, 0xd2, 0xe6, 0x62, 0xe1, 0xdf, 0x85, 0x49, 0x3b, 0xc0, 0x43, 0x8e, 0x1d, 0xc4, 0xce, 0x4f, - 0x0a, 0x33, 0x67, 0xd1, 0x56, 0xa1, 0xba, 0x3d, 0x34, 0xfb, 0xb8, 0xeb, 0xe1, 0x1e, 0xed, 0xcc, - 0xa6, 0x05, 0xa1, 0x00, 0x2f, 0x68, 0xeb, 0x50, 0xf9, 0x1c, 0x9f, 0xf1, 0xc5, 0x78, 0x41, 0x05, - 0xb5, 0xdf, 0xaf, 0xc0, 0x32, 0x8b, 0xe1, 0x1b, 0xf2, 0xe4, 0xae, 0x63, 0xe2, 0x8e, 0xfc, 0x1e, - 0x26, 0xcc, 0xaa, 0xde, 0xc8, 0xf0, 0xb0, 0x6f, 0xbb, 0x96, 0x38, 0xa9, 0x56, 0x7b, 0xde, 0x68, - 0x9f, 0x11, 0xe8, 0xe9, 0x9e, 0x56, 0xff, 0x78, 0xe4, 0x0a, 0x07, 0x2b, 0xe9, 0x95, 0x9e, 0x37, - 0xfa, 0x75, 0x5a, 0x96, 0x6d, 0xc9, 0x89, 0xe9, 0x63, 0xc2, 0xfc, 0x88, 0xb7, 0xed, 0x32, 0x02, - 0xba, 0x07, 0x8b, 0x43, 0x3c, 0x74, 0xfd, 0x33, 0x63, 0x60, 0x0f, 0xed, 0xc0, 0xb0, 0x1d, 0xe3, - 0xe8, 0x2c, 0xc0, 0x44, 0xf8, 0x0e, 0xe2, 0x95, 0x3b, 0xb4, 0x6e, 0xdb, 0x79, 0x4c, 0x6b, 0x90, - 0x06, 0x75, 0xd7, 0x1d, 0x1a, 0xa4, 0xe7, 0xfa, 0xd8, 0x30, 0xad, 0x6f, 0xd8, 0x36, 0x56, 0xd2, - 0x6b, 0xae, 0x3b, 0xec, 0x52, 0x5a, 0xc7, 0xfa, 0x06, 0xdd, 0x80, 0x5a, 0xcf, 0x1b, 0x11, 0x1c, - 0x18, 0xf4, 0x0f, 0xdb, 0xad, 0xaa, 0x3a, 0x70, 0xd2, 0x86, 0x37, 0x22, 0x0a, 0xc3, 0x90, 0xce, - 0xfb, 0xb4, 0xca, 0xf0, 0x14, 0x0f, 0x09, 0xda, 0x03, 0xb0, 0x6c, 0xf2, 0x4c, 0x8c, 0xca, 0x62, - 0x76, 0x79, 0x37, 0xb1, 0xdd, 0xa5, 0xa7, 0x6a, 0x6d, 0xd3, 0x26, 0xcf, 0xd8, 0xc0, 0xb9, 0xeb, - 0x55, 0x2d, 0x59, 0x46, 0xab, 0x30, 0x73, 0x34, 0x78, 0x66, 0xbb, 0xc6, 0x73, 0x6c, 0xf7, 0x4f, - 0x82, 0x16, 0x66, 0xa7, 0x9b, 0x1a, 0xa3, 0x7d, 0xc9, 0x48, 0xe8, 0x09, 0xcc, 0xab, 0x2c, 0x86, - 0x85, 0x4f, 0xed, 0x1e, 0x6e, 0x1d, 0xb3, 0xce, 0x97, 0xa2, 0xce, 0x39, 0xfb, 0x26, 0xab, 0xd5, - 0xe7, 0x14, 0x09, 0x9c, 0x84, 0x3e, 0x87, 0x45, 0x2e, 0x87, 0x0b, 0x30, 0xe8, 0xa1, 0xda, 0x38, - 0xf2, 0x48, 0xab, 0xcf, 0x24, 0xb5, 0x22, 0x49, 0x07, 0x27, 0xbe, 0x1b, 0x04, 0x03, 0x2c, 0x64, - 0x21, 0xd6, 0x4c, 0x14, 0xb0, 0x69, 0x3d, 0xf6, 0xe8, 0xde, 0xbb, 0x14, 0x13, 0xf6, 0xdc, 0xb7, - 0x03, 0xcc, 0xa4, 0x9d, 0x9c, 0x23, 0x6d, 0x5e, 0x91, 0xf6, 0x25, 0x6d, 0x95, 0x25, 0x8e, 0xe9, - 0xb6, 0xbd, 0xe7, 0x91, 0x96, 0x7d, 0x09, 0x71, 0x54, 0x39, 0xda, 0x08, 0xed, 0xc1, 0x72, 0x86, - 0x76, 0x4c, 0xde, 0x37, 0xe7, 0xc8, 0x5b, 0x48, 0xaa, 0xc7, 0x04, 0xbe, 0x06, 0xf5, 0x67, 0xd8, - 0x77, 0xf0, 0xc0, 0xe0, 0xae, 0xd7, 0x7a, 0xc6, 0xbc, 0x6b, 0x86, 0x13, 0x9f, 0x32, 0x1a, 0x7a, - 0x1b, 0x84, 0x63, 0x1a, 0x3e, 0x26, 0xd8, 0x3f, 0xe5, 0xa0, 0xd3, 0x80, 0x71, 0xce, 0xf1, 0x1a, - 0x3d, 0xaa, 0x40, 0x1d, 0x10, 0x44, 0x83, 0x3c, 0x67, 0xa7, 0x39, 0x4c, 0x48, 0x6b, 0x38, 0x06, - 0x2a, 0x69, 0x72, 0xf6, 0x6e, 0xc8, 0x8d, 0xee, 0xc2, 0xf4, 0x88, 0xad, 0x10, 0xd2, 0x72, 0xd8, - 0xb8, 0x9a, 0x51, 0xc3, 0x43, 0x56, 0xa1, 0x4b, 0x86, 0xf6, 0x47, 0xd0, 0x88, 0xbb, 0xe1, 0xa5, - 0xa2, 0xd4, 0x43, 0x98, 0x89, 0x39, 0x13, 0x82, 0xb2, 0x02, 0xec, 0xb1, 0x6f, 0xb4, 0x04, 0x53, - 0x9c, 0x87, 0x35, 0xaf, 0xeb, 0xa2, 0xa4, 0x3d, 0x80, 0x46, 0x7c, 0x92, 0x33, 0x5b, 0x23, 0x28, - 0xfb, 0x72, 0x23, 0x2f, 0xeb, 0xec, 0x5b, 0xdb, 0x84, 0x29, 0x3e, 0x8c, 0x4c, 0x10, 0x01, 0x41, - 0xf9, 0xc4, 0xf4, 0x2d, 0x11, 0x5c, 0xd8, 0x37, 0xa5, 0x11, 0xf7, 0x38, 0x10, 0x21, 0x85, 0x7d, - 0x6b, 0x26, 0xd4, 0x63, 0x70, 0x15, 0x65, 0x62, 0xb8, 0x94, 0x10, 0x46, 0xbf, 0x59, 0xf7, 0xee, - 0x40, 0x8e, 0x9c, 0x7d, 0x53, 0x5a, 0x70, 0xe6, 0x49, 0x38, 0x82, 0x7d, 0xd3, 0x29, 0x1a, 0xe0, - 0x53, 0x81, 0x38, 0x56, 0x75, 0x5e, 0xd0, 0x2c, 0x80, 0x0d, 0xd3, 0x33, 0x8f, 0xec, 0x81, 0x1d, - 0x9c, 0xa1, 0x3b, 0xd0, 0x34, 0x2d, 0xcb, 0xe8, 0x49, 0x8a, 0x8d, 0x25, 0xfe, 0x3b, 0x6b, 0x5a, - 0xd6, 0x86, 0x42, 0x46, 0x6f, 0xc1, 0x9c, 0xe5, 0xbb, 0x5e, 0x9c, 0x97, 0x03, 0xc2, 0x4d, 0x5a, - 0xa1, 0x32, 0x6b, 0x7f, 0x5f, 0x86, 0xeb, 0xf1, 0x10, 0x93, 0x84, 0x00, 0x1f, 0xc0, 0x4c, 0xa2, - 0xd7, 0x84, 0x3b, 0x45, 0x5a, 0xea, 0x31, 0xce, 0x04, 0x44, 0x56, 0x4c, 0x41, 0x64, 0x99, 0xe0, - 0x62, 0xe9, 0x95, 0x80, 0x8b, 0xe5, 0x9f, 0x0b, 0x5c, 0x9c, 0xbc, 0x18, 0xb8, 0xf8, 0x06, 0x03, - 0xfc, 0x65, 0x2b, 0xe6, 0x4b, 0x3c, 0xfe, 0xd7, 0x43, 0x1e, 0x47, 0x5e, 0x0c, 0x24, 0x40, 0xc8, - 0xe9, 0xcb, 0x80, 0x90, 0x95, 0x5c, 0x10, 0x92, 0x7a, 0x85, 0xe7, 0x99, 0xfe, 0xd0, 0xf5, 0x25, - 0xca, 0xd8, 0xaa, 0x32, 0x15, 0x66, 0x25, 0x5d, 0x20, 0x8c, 0xb9, 0x78, 0x24, 0xe4, 0xe1, 0x91, - 0xe8, 0x26, 0xcc, 0x38, 0xae, 0xe1, 0xe0, 0xe7, 0x06, 0xb5, 0x19, 0x69, 0xd5, 0xb8, 0x01, 0x1d, - 0x77, 0x17, 0x3f, 0xdf, 0xa7, 0x14, 0xed, 0xaf, 0x0b, 0xb0, 0x10, 0x77, 0x1e, 0x81, 0x3e, 0x7d, - 0x0a, 0x55, 0x5f, 0xee, 0x54, 0xc2, 0x61, 0x56, 0xcf, 0xdd, 0xd2, 0xf4, 0xa8, 0x0d, 0xd2, 0x73, - 0xc1, 0xcc, 0xdb, 0x79, 0x72, 0xce, 0x83, 0x33, 0xb5, 0x0e, 0xcc, 0x85, 0xcc, 0x63, 0x91, 0x44, - 0x05, 0x19, 0x2c, 0xc6, 0x91, 0x41, 0x07, 0xa6, 0x44, 0xb8, 0x79, 0x15, 0xf7, 0x11, 0x37, 0xa1, - 0xe6, 0x61, 0x7f, 0x68, 0x13, 0x12, 0x7a, 0x7e, 0x55, 0x57, 0x49, 0xda, 0xef, 0x4d, 0xc1, 0x6c, - 0x72, 0x6e, 0xef, 0xa7, 0x80, 0xc8, 0xab, 0xca, 0x5a, 0x4c, 0x0e, 0x50, 0xc9, 0xb1, 0xef, 0xc8, - 0x14, 0xae, 0x98, 0x84, 0x1b, 0xc2, 0x34, 0x4f, 0xe4, 0x75, 0x74, 0x06, 0x7a, 0xee, 0x70, 0x68, - 0x3a, 0x96, 0xbc, 0x2e, 0x12, 0x45, 0x3a, 0x5f, 0xa6, 0xdf, 0xa7, 0x0b, 0x8c, 0x92, 0xd9, 0x37, - 0x4d, 0x71, 0xe8, 0x99, 0xdd, 0x76, 0x18, 0x90, 0xc9, 0x56, 0x4f, 0x55, 0x07, 0x41, 0xda, 0xb4, - 0xe9, 0x42, 0x29, 0x63, 0xe7, 0x54, 0x26, 0xd3, 0xca, 0x7d, 0x92, 0x4c, 0x1e, 0x75, 0x56, 0x8f, - 0x6e, 0xc3, 0xd4, 0xd0, 0x1d, 0x39, 0x81, 0x3c, 0xbd, 0xcf, 0x26, 0xae, 0x55, 0x74, 0x51, 0x4d, - 0x37, 0x29, 0xbe, 0x0d, 0xcb, 0x23, 0xba, 0xb2, 0x49, 0x89, 0x4d, 0x57, 0x32, 0xa0, 0x8f, 0xc3, - 0xa3, 0x40, 0x35, 0x99, 0xcb, 0x27, 0xa6, 0x36, 0xf3, 0x3c, 0xb0, 0x13, 0x3f, 0x0f, 0x00, 0x93, - 0x71, 0x37, 0x5f, 0xc6, 0x78, 0x2c, 0xf3, 0x0a, 0x54, 0x06, 0x6e, 0x9f, 0xbb, 0x43, 0x8d, 0xdf, - 0x30, 0x0e, 0xdc, 0x3e, 0xf3, 0x86, 0x05, 0x7a, 0x04, 0xb2, 0x6c, 0xa7, 0x35, 0xc3, 0xd6, 0x19, - 0x2f, 0xd0, 0xac, 0x96, 0x7d, 0x18, 0xae, 0xd3, 0xc3, 0xad, 0x3a, 0xab, 0xaa, 0x32, 0xca, 0x9e, - 0xd3, 0x63, 0x49, 0x77, 0x10, 0x9c, 0xb5, 0x1a, 0x8c, 0x4e, 0x3f, 0xe9, 0xe9, 0x95, 0x03, 0x27, - 0xb3, 0xc9, 0xd3, 0x6b, 0xd6, 0x4a, 0x95, 0xb8, 0xc9, 0x2a, 0xcc, 0x38, 0x38, 0xa0, 0x0b, 0xdd, - 0xa5, 0x4b, 0xa6, 0x65, 0xf1, 0x4c, 0xd7, 0xc1, 0xc1, 0xbe, 0x20, 0x7d, 0x97, 0xe7, 0x99, 0xbf, - 0x2d, 0xc0, 0xd2, 0x06, 0x3b, 0xdb, 0x29, 0x51, 0xe3, 0x32, 0x70, 0xe0, 0xbd, 0x10, 0x78, 0x4d, - 0x61, 0x77, 0xc9, 0x09, 0x11, 0x8c, 0xa8, 0x03, 0x0d, 0x29, 0x54, 0x34, 0x2d, 0x9d, 0x8b, 0xd9, - 0xd6, 0x89, 0x5a, 0xd4, 0x3e, 0x82, 0xe5, 0x94, 0xd6, 0xe2, 0x1c, 0xb6, 0x0a, 0x33, 0x51, 0xf8, - 0x08, 0x95, 0xae, 0x85, 0xb4, 0x6d, 0x4b, 0x7b, 0x08, 0x8b, 0xdd, 0xc0, 0xf4, 0x83, 0xd4, 0x90, - 0x2f, 0xd0, 0x96, 0xc1, 0xb6, 0xf1, 0xb6, 0x02, 0x59, 0xed, 0xc2, 0x42, 0x37, 0x70, 0xbd, 0x97, - 0x10, 0x4a, 0x83, 0x42, 0x60, 0x0f, 0xb1, 0x3b, 0x0a, 0x44, 0x7a, 0x24, 0x8b, 0xda, 0x32, 0x07, - 0x99, 0xd3, 0xbd, 0x7d, 0x08, 0x4b, 0x1c, 0xe3, 0x7d, 0x99, 0x41, 0x5c, 0x91, 0x08, 0x73, 0x5a, - 0xee, 0x16, 0xcc, 0x47, 0x71, 0x3f, 0xc2, 0x83, 0xd6, 0xe2, 0x78, 0x50, 0x2b, 0xc3, 0xca, 0x31, - 0x38, 0xe8, 0xcf, 0x8a, 0x4a, 0x78, 0xcd, 0x41, 0x83, 0xde, 0x8b, 0xa3, 0x41, 0xd7, 0xf3, 0x64, - 0xc6, 0xc0, 0xa0, 0xb4, 0x57, 0x96, 0x32, 0xbc, 0xb2, 0x9b, 0x82, 0x8c, 0xca, 0x49, 0x6c, 0x2d, - 0xa1, 0xdd, 0x2f, 0x05, 0x31, 0xfa, 0x21, 0x47, 0x8c, 0xc2, 0xae, 0x43, 0xe8, 0xfd, 0x5e, 0x02, - 0x31, 0xba, 0x92, 0xab, 0x67, 0x08, 0x18, 0xfd, 0x71, 0x19, 0xaa, 0x61, 0x5d, 0x6a, 0x6e, 0xd3, - 0xd3, 0x54, 0xcc, 0x98, 0x26, 0x75, 0xc3, 0x2b, 0xbd, 0xd4, 0x86, 0x57, 0x3e, 0x77, 0xc3, 0xbb, - 0x0a, 0x55, 0xf6, 0x61, 0xf8, 0xf8, 0x58, 0x6c, 0x60, 0x15, 0x46, 0xd0, 0xf1, 0x71, 0xe4, 0x56, - 0x53, 0x17, 0x72, 0xab, 0x04, 0x36, 0x35, 0x9d, 0xc4, 0xa6, 0xee, 0x87, 0x1b, 0x12, 0xdf, 0xbb, - 0x6e, 0x64, 0xc8, 0xcb, 0xdc, 0x8a, 0x9e, 0xc4, 0xb7, 0x22, 0xbe, 0x9d, 0xbd, 0x9e, 0xd5, 0xfa, - 0x7b, 0x8b, 0x4c, 0x3d, 0xe5, 0xc8, 0x94, 0xea, 0x5b, 0x22, 0x22, 0xbe, 0x07, 0x10, 0x2e, 0x7e, - 0x09, 0x4f, 0xcd, 0x67, 0x8c, 0x4d, 0x57, 0xd8, 0xb4, 0x43, 0x58, 0x8a, 0x99, 0x20, 0xba, 0x26, - 0xba, 0x58, 0x3c, 0xcb, 0xb9, 0x23, 0xfa, 0x8b, 0x69, 0x25, 0x2e, 0xe4, 0xdc, 0xb3, 0xdc, 0x4f, - 0x61, 0x9d, 0x17, 0xf4, 0xca, 0xb5, 0x38, 0xd4, 0x79, 0x49, 0x6f, 0x4a, 0x21, 0x9d, 0x2c, 0x41, - 0x30, 0x7d, 0x51, 0xcd, 0x11, 0xaa, 0xaa, 0xa0, 0x74, 0x02, 0x9a, 0x9b, 0x1d, 0xdb, 0x8e, 0x4d, - 0x4e, 0x78, 0xfd, 0x14, 0xab, 0x07, 0x49, 0xea, 0xb0, 0x87, 0x39, 0xf8, 0x85, 0x1d, 0x18, 0x3d, - 0xd7, 0xc2, 0xcc, 0x57, 0x27, 0xf5, 0x0a, 0x25, 0x6c, 0xb8, 0x16, 0x8e, 0x56, 0x50, 0xe5, 0x72, - 0x2b, 0xa8, 0x9a, 0x58, 0x41, 0x4b, 0x30, 0xe5, 0x63, 0x93, 0xb8, 0x8e, 0x38, 0x6e, 0x88, 0x12, - 0x35, 0xc1, 0x10, 0x13, 0x42, 0x7b, 0x10, 0xd9, 0x90, 0x28, 0x2a, 0x59, 0xdb, 0x4c, 0x6e, 0xd6, - 0x36, 0xe6, 0x1e, 0x27, 0x91, 0xb5, 0xd5, 0x73, 0xb3, 0xb6, 0x8b, 0x5c, 0xe3, 0x28, 0x79, 0x69, - 0x63, 0x7c, 0x5e, 0xaa, 0xa6, 0x77, 0xb3, 0xf1, 0xf4, 0xee, 0x11, 0x4c, 0x9f, 0xba, 0x83, 0xd1, - 0x10, 0x13, 0x81, 0xf1, 0xbd, 0x91, 0xaf, 0xcd, 0x17, 0x9c, 0x51, 0x3c, 0xa3, 0x10, 0xcd, 0xe2, - 0x87, 0x2a, 0x7c, 0xf9, 0x43, 0xd5, 0x77, 0xb8, 0xee, 0xdb, 0x3b, 0x30, 0xa3, 0x0e, 0x2a, 0xa3, - 0xed, 0x1b, 0x6a, 0xdb, 0x58, 0x42, 0xcf, 0x1b, 0xaa, 0x51, 0xa4, 0x02, 0x53, 0x9c, 0xa8, 0xfd, - 0x63, 0x01, 0x96, 0x53, 0x11, 0x40, 0x44, 0x94, 0x7b, 0x89, 0x4b, 0xae, 0x2b, 0xb9, 0x13, 0x1e, - 0xde, 0x71, 0x7d, 0x1a, 0xbb, 0xe3, 0x7a, 0x2b, 0xbf, 0xc1, 0x2b, 0xbf, 0xe2, 0xfa, 0x1d, 0xb8, - 0x71, 0xe8, 0x59, 0x89, 0x5c, 0x51, 0x98, 0xf0, 0xe2, 0x21, 0xed, 0xbe, 0x4c, 0xfe, 0x8b, 0x17, - 0x75, 0x0f, 0xce, 0xaf, 0x69, 0x70, 0x33, 0xbf, 0x7b, 0x91, 0x74, 0xfd, 0x16, 0xcc, 0x6e, 0xbd, - 0xc0, 0xbd, 0xee, 0x99, 0xd3, 0xbb, 0x84, 0x4a, 0x4d, 0x28, 0xf5, 0x86, 0x96, 0xc0, 0x9f, 0xe8, - 0xa7, 0x9a, 0x47, 0x96, 0xe2, 0x79, 0xa4, 0x01, 0xcd, 0xa8, 0x07, 0x61, 0xc5, 0x25, 0x6a, 0x45, - 0x8b, 0x32, 0x53, 0xe1, 0x33, 0xba, 0x28, 0x09, 0x3a, 0xf6, 0x7d, 0x36, 0x56, 0x4e, 0xc7, 0xbe, - 0x1f, 0x8f, 0x67, 0xa5, 0x78, 0x3c, 0x63, 0x8f, 0x1d, 0x69, 0x0f, 0x3f, 0x97, 0xfe, 0xe2, 0xcc, - 0x55, 0x8a, 0xce, 0x5c, 0xe1, 0xd1, 0xad, 0xac, 0x1e, 0xdd, 0x22, 0xcd, 0x27, 0x19, 0x39, 0xad, - 0xf9, 0x54, 0x48, 0xc7, 0xbe, 0xaf, 0xdd, 0x84, 0x19, 0xae, 0x9b, 0x18, 0x79, 0x13, 0x4a, 0x23, - 0x7f, 0x20, 0xdd, 0x67, 0xe4, 0x0f, 0xb4, 0x3f, 0x2c, 0x40, 0xbd, 0x13, 0x04, 0x66, 0xef, 0xe4, - 0x12, 0x03, 0x08, 0x95, 0x2b, 0xaa, 0xca, 0xa5, 0x07, 0x11, 0xa9, 0x5b, 0xce, 0x51, 0x77, 0x32, - 0xa6, 0xae, 0x06, 0x0d, 0xa9, 0x4b, 0xae, 0xc2, 0xbb, 0x80, 0xf6, 0x5d, 0x3f, 0x78, 0xe2, 0xfa, - 0xcf, 0x4d, 0xdf, 0xba, 0xdc, 0x99, 0x0d, 0x41, 0x59, 0x3c, 0x27, 0x2d, 0xbd, 0x39, 0xa9, 0xb3, - 0x6f, 0xed, 0x36, 0xcc, 0xc7, 0xe4, 0xe5, 0x76, 0xfc, 0x00, 0x6a, 0x6c, 0x87, 0x12, 0x49, 0xfd, - 0x1d, 0xf5, 0xf6, 0x6a, 0xec, 0x3e, 0xa6, 0x3d, 0x86, 0x39, 0x9a, 0xa1, 0x30, 0x7a, 0xb8, 0xf4, - 0xde, 0x4e, 0x64, 0xbe, 0x8b, 0x09, 0x01, 0x89, 0xac, 0xf7, 0xef, 0x8a, 0x30, 0xc9, 0xe8, 0xa9, - 0xac, 0xe1, 0x2a, 0x8d, 0xe1, 0x9e, 0x6b, 0x04, 0x66, 0x3f, 0x7c, 0xa4, 0x4b, 0x09, 0x07, 0x66, - 0x9f, 0xb0, 0x37, 0xc6, 0xb4, 0xd2, 0xb2, 0xfb, 0x98, 0x04, 0xf2, 0xa5, 0x6e, 0x8d, 0xd2, 0x36, - 0x39, 0x89, 0x61, 0xd1, 0xf6, 0x6f, 0xf3, 0x8c, 0xb6, 0xac, 0xb3, 0x6f, 0xf4, 0x06, 0x7f, 0xf8, - 0x36, 0x0e, 0xb4, 0x64, 0xcf, 0xe1, 0xda, 0x50, 0x49, 0xe0, 0x94, 0x61, 0x19, 0x7d, 0x90, 0xdc, - 0x9d, 0xae, 0x25, 0x46, 0x98, 0xbd, 0x27, 0xbd, 0xe2, 0xb8, 0xfe, 0x31, 0x20, 0x75, 0xee, 0x85, - 0x75, 0x6f, 0xc3, 0x14, 0x33, 0x8d, 0xcc, 0x0a, 0x67, 0x13, 0xaa, 0xe9, 0xa2, 0x5a, 0xfb, 0x1a, - 0x10, 0x37, 0x67, 0x2c, 0x13, 0xbc, 0xb8, 0xed, 0xc7, 0x64, 0x84, 0x7f, 0x53, 0x80, 0xf9, 0x98, - 0x6c, 0xa1, 0xdb, 0xad, 0xb8, 0xf0, 0x94, 0x6a, 0x42, 0xf0, 0x87, 0xb1, 0x7d, 0xe5, 0x76, 0x52, - 0x85, 0x5f, 0xd0, 0x9e, 0xf2, 0xcf, 0x05, 0x80, 0xce, 0x28, 0x38, 0x11, 0xc0, 0xa1, 0x6a, 0xff, - 0x42, 0xc2, 0xfe, 0x6d, 0xa8, 0x78, 0x26, 0x21, 0xcf, 0x5d, 0x5f, 0x9e, 0xc1, 0xc2, 0x32, 0x83, - 0xfc, 0x46, 0xc1, 0x89, 0xbc, 0xb2, 0xa0, 0xdf, 0xe8, 0x16, 0x34, 0xf8, 0xb3, 0x73, 0xc3, 0xb4, - 0x2c, 0x1f, 0x13, 0x22, 0xee, 0x2e, 0xea, 0x9c, 0xda, 0xe1, 0x44, 0xca, 0x66, 0x5b, 0xd8, 0x09, - 0xec, 0xe0, 0xcc, 0x08, 0xdc, 0x67, 0xd8, 0x11, 0x67, 0xab, 0xba, 0xa4, 0x1e, 0x50, 0x22, 0x65, - 0xf3, 0x71, 0xdf, 0x26, 0x81, 0x2f, 0xd9, 0x24, 0x8e, 0x2e, 0xa8, 0x8c, 0x4d, 0xfb, 0x49, 0x01, - 0x9a, 0xfb, 0xa3, 0xc1, 0x80, 0x4f, 0xed, 0xe5, 0xcd, 0xfb, 0xa6, 0x18, 0x48, 0x31, 0xb9, 0x52, - 0xa2, 0x49, 0x12, 0xc3, 0x7b, 0x05, 0xe0, 0xcf, 0xbb, 0x30, 0xa7, 0xe8, 0x2a, 0xdc, 0x25, 0x96, - 0x24, 0x17, 0xe2, 0x49, 0xb2, 0xf6, 0x29, 0x20, 0x8e, 0x77, 0xbc, 0xe4, 0xf8, 0xb4, 0x45, 0x98, - 0x8f, 0x09, 0x10, 0xfb, 0xf6, 0x5d, 0xa8, 0x8b, 0x47, 0x56, 0xc2, 0x11, 0xae, 0x40, 0x85, 0xc6, - 0xdf, 0x9e, 0x6d, 0xc9, 0xfb, 0xaa, 0x69, 0xcf, 0xb5, 0x36, 0x6c, 0xcb, 0xd7, 0xf6, 0xa0, 0xae, - 0xf3, 0xdf, 0x1f, 0x08, 0xde, 0x4f, 0xa0, 0x21, 0x9e, 0x64, 0x19, 0xb1, 0xa7, 0x8b, 0xca, 0xd5, - 0x4a, 0x4c, 0xb8, 0x5e, 0x77, 0xd4, 0xa2, 0xf6, 0x1b, 0xd0, 0xe6, 0x89, 0x45, 0x4c, 0xac, 0x1c, - 0xdc, 0x27, 0x20, 0x7f, 0x1b, 0x91, 0x2b, 0x3d, 0xde, 0xae, 0xee, 0xab, 0x45, 0xed, 0x3a, 0x5c, - 0xcd, 0x94, 0x2e, 0x46, 0xee, 0x41, 0x33, 0xaa, 0xb0, 0x6c, 0x79, 0x51, 0xc7, 0x2e, 0xe0, 0x0a, - 0xca, 0x05, 0xdc, 0x52, 0x98, 0x29, 0x16, 0xe5, 0x16, 0xc7, 0xd2, 0xc1, 0xe8, 0xd8, 0x52, 0xca, - 0x3b, 0xb6, 0x94, 0x63, 0xc7, 0x16, 0xed, 0xf3, 0x70, 0xfe, 0xc4, 0xb1, 0xf1, 0x21, 0x3b, 0xd6, - 0xf2, 0xbe, 0x65, 0x00, 0x6b, 0x67, 0x8d, 0x8e, 0xb3, 0xe8, 0x0a, 0xb7, 0x76, 0x07, 0xea, 0xf1, - 0x50, 0xa6, 0xc4, 0xa7, 0x42, 0x2a, 0x3e, 0x35, 0x12, 0xa1, 0xe9, 0x9d, 0x44, 0xfa, 0x9b, 0x9e, - 0xd3, 0x44, 0xf2, 0xfb, 0x41, 0x2c, 0x48, 0x69, 0xca, 0xdd, 0xd9, 0x2f, 0x28, 0x3e, 0x2d, 0x88, - 0x78, 0xfd, 0x84, 0xd0, 0xf6, 0x62, 0x90, 0xda, 0x6b, 0x50, 0x3b, 0xcc, 0xfb, 0xdd, 0x42, 0x59, - 0x3e, 0x22, 0xb9, 0x0d, 0x73, 0xdd, 0xc0, 0xf5, 0xcd, 0x3e, 0xde, 0x66, 0x91, 0xe4, 0xd8, 0xe6, - 0xf7, 0xad, 0xa3, 0x51, 0xb8, 0xdd, 0xb2, 0x6f, 0xed, 0xdf, 0x0b, 0x30, 0xfb, 0xc4, 0x1e, 0x60, - 0x72, 0x46, 0x02, 0x3c, 0x3c, 0x64, 0x67, 0xcb, 0x6b, 0x50, 0xa5, 0xc3, 0x27, 0x81, 0x39, 0xf4, - 0xe4, 0x23, 0x93, 0x90, 0x40, 0x2d, 0x46, 0xb8, 0x68, 0x09, 0x48, 0xc5, 0x8e, 0xf6, 0xa9, 0x6e, - 0xe9, 0x69, 0x5b, 0x90, 0xd0, 0xfb, 0x00, 0x23, 0x82, 0x2d, 0xf1, 0xb2, 0xa4, 0x94, 0xcc, 0x15, - 0x0e, 0xd5, 0x7b, 0x44, 0xca, 0xc8, 0xdf, 0x99, 0x7c, 0x00, 0x35, 0xdb, 0x71, 0x2d, 0xcc, 0xee, - 0x11, 0x2d, 0x81, 0x56, 0xe5, 0x34, 0x03, 0xce, 0x79, 0x48, 0xb0, 0xa5, 0xfd, 0xa6, 0xd8, 0x93, - 0xe4, 0xfc, 0x09, 0xc3, 0x3f, 0x81, 0x39, 0x1e, 0x64, 0x8e, 0xc3, 0x71, 0x4b, 0xcf, 0x53, 0x8e, - 0x40, 0x89, 0x49, 0xd1, 0x9b, 0xb6, 0x48, 0x64, 0x64, 0x13, 0xed, 0x21, 0x2c, 0xc6, 0x8e, 0x3d, - 0x97, 0x38, 0x88, 0x68, 0x3f, 0x48, 0x00, 0x33, 0x91, 0x5b, 0x0a, 0xf8, 0x43, 0x7a, 0x65, 0x1e, - 0xfc, 0x41, 0x38, 0xfc, 0x41, 0xb4, 0x2e, 0x5c, 0x89, 0x21, 0x46, 0x31, 0x4d, 0x3e, 0x48, 0xe4, - 0x65, 0x2b, 0x79, 0xd2, 0x12, 0x09, 0xda, 0x7f, 0x17, 0x60, 0x21, 0x8b, 0xe1, 0x25, 0x11, 0xca, - 0xaf, 0x72, 0xde, 0xfe, 0xdd, 0x1b, 0xaf, 0xce, 0x2f, 0x05, 0xcd, 0xdd, 0x81, 0x76, 0xd6, 0xfc, - 0xa5, 0xad, 0x51, 0xba, 0x88, 0x35, 0xfe, 0xa7, 0xa8, 0x20, 0xef, 0x9d, 0x20, 0xf0, 0xed, 0xa3, - 0x11, 0x75, 0xe1, 0x57, 0x86, 0x8e, 0x75, 0x42, 0xdc, 0x87, 0x4f, 0xe1, 0x9d, 0x8c, 0x66, 0x51, - 0xbf, 0x99, 0xd8, 0xcf, 0x7e, 0x1c, 0xfb, 0xe1, 0x98, 0xfa, 0xda, 0x78, 0x39, 0xdf, 0x5b, 0xc0, - 0xf4, 0xbf, 0x0a, 0xd0, 0x88, 0x9b, 0x02, 0x7d, 0x0c, 0x60, 0x86, 0x9a, 0x0b, 0xc7, 0xbf, 0x3e, - 0x76, 0x78, 0xba, 0xd2, 0x00, 0xbd, 0x0e, 0xa5, 0x9e, 0x37, 0x12, 0x56, 0x51, 0xee, 0x62, 0x37, - 0xbc, 0x11, 0x8f, 0x04, 0xb4, 0x9a, 0x9e, 0x78, 0xc4, 0xb3, 0xa4, 0x54, 0x14, 0xe3, 0x4f, 0x93, - 0x38, 0xaf, 0x60, 0x42, 0x8f, 0xa0, 0xf1, 0xdc, 0xb7, 0x03, 0xf3, 0x68, 0x80, 0x8d, 0x81, 0x79, - 0x86, 0x7d, 0x11, 0xc5, 0xc6, 0x04, 0x9c, 0xba, 0x6c, 0xb0, 0x43, 0xf9, 0xb5, 0x53, 0xa8, 0x48, - 0x0d, 0xce, 0x09, 0xd0, 0x3b, 0xb0, 0x3c, 0xa2, 0x6c, 0x06, 0x7b, 0x97, 0xe7, 0x98, 0x8e, 0x6b, - 0x10, 0x4c, 0xb7, 0x4d, 0xf9, 0x32, 0x3f, 0x27, 0x74, 0x2e, 0xb0, 0x56, 0x1b, 0xae, 0x8f, 0x77, - 0x4d, 0xc7, 0xed, 0xf2, 0x26, 0x9a, 0x03, 0x35, 0x65, 0x40, 0xe7, 0x74, 0xdd, 0x81, 0x39, 0x79, - 0xd3, 0x4d, 0x70, 0x20, 0xc2, 0xfc, 0xd8, 0x4e, 0x67, 0x05, 0x7f, 0x17, 0x07, 0x2c, 0xd8, 0xdf, - 0xbd, 0x06, 0x15, 0xf9, 0x2b, 0x4a, 0x34, 0x0d, 0xa5, 0x83, 0x8d, 0xfd, 0xe6, 0x04, 0xfd, 0x38, - 0xdc, 0xdc, 0x6f, 0x16, 0xee, 0x0e, 0xa1, 0x99, 0xfc, 0x01, 0x21, 0x5a, 0x86, 0xf9, 0x7d, 0x7d, - 0x6f, 0xbf, 0xf3, 0x59, 0xe7, 0x60, 0x7b, 0x6f, 0xd7, 0xd8, 0xd7, 0xb7, 0xbf, 0xe8, 0x1c, 0x6c, - 0x35, 0x27, 0xd0, 0x2a, 0x5c, 0x57, 0x2b, 0x7e, 0xb0, 0xd7, 0x3d, 0x30, 0x0e, 0xf6, 0x8c, 0x8d, - 0xbd, 0xdd, 0x83, 0xce, 0xf6, 0xee, 0x96, 0xde, 0x2c, 0xa0, 0xeb, 0x70, 0x45, 0x65, 0x79, 0xbc, - 0xbd, 0xb9, 0xad, 0x6f, 0x6d, 0xd0, 0xef, 0xce, 0x4e, 0xb3, 0x78, 0xf7, 0x21, 0xcc, 0x26, 0xde, - 0xd7, 0xa2, 0x39, 0xa8, 0x77, 0x3b, 0xbb, 0x9b, 0x8f, 0xf7, 0xbe, 0x32, 0xf4, 0xad, 0xce, 0xe6, - 0xd7, 0xcd, 0x09, 0xb4, 0x00, 0x4d, 0x49, 0xda, 0xdd, 0x3b, 0xe0, 0xd4, 0xc2, 0xdd, 0x67, 0x09, - 0xc7, 0xc4, 0x68, 0x11, 0xe6, 0xc2, 0xbe, 0x8d, 0x0d, 0x7d, 0xab, 0x73, 0xb0, 0xb5, 0xd9, 0x9c, - 0x88, 0x93, 0xf5, 0xc3, 0xdd, 0xdd, 0xed, 0xdd, 0xcf, 0x9a, 0x05, 0x2a, 0x35, 0x22, 0x6f, 0x7d, - 0xb5, 0x4d, 0x99, 0x8b, 0x71, 0xe6, 0xc3, 0xdd, 0xcf, 0x77, 0xf7, 0xbe, 0xdc, 0x6d, 0x96, 0xd6, - 0xff, 0xaf, 0x0e, 0x0d, 0x99, 0xb5, 0x60, 0x9f, 0xbd, 0xc0, 0x78, 0x04, 0xd3, 0xf2, 0x07, 0xb5, - 0x4a, 0xd8, 0x8a, 0xff, 0xfc, 0xb7, 0x7d, 0x25, 0xa3, 0x46, 0x24, 0x87, 0x13, 0x48, 0x67, 0xc9, - 0x9a, 0xf2, 0x9e, 0x79, 0x25, 0x96, 0x22, 0xa5, 0x9e, 0x4c, 0xb7, 0x6f, 0xe4, 0xd6, 0x87, 0x32, - 0x0f, 0x69, 0x1e, 0xa6, 0xfe, 0x60, 0x06, 0xdd, 0x88, 0xe5, 0x0e, 0xe9, 0x5f, 0xe2, 0xb4, 0x6f, - 0xe6, 0x33, 0x84, 0x62, 0x7f, 0x04, 0xcd, 0xe4, 0x8f, 0x65, 0x90, 0x82, 0xee, 0xe5, 0xfc, 0x12, - 0xa7, 0xad, 0x8d, 0x63, 0x51, 0x85, 0xa7, 0x7e, 0x56, 0xb2, 0x3a, 0xee, 0x7d, 0x7f, 0x4a, 0x78, - 0xde, 0x4f, 0x00, 0xf8, 0x84, 0xc4, 0xdf, 0x22, 0xa3, 0xd8, 0x6f, 0x39, 0x32, 0x5e, 0xa6, 0xab, - 0x13, 0x92, 0xfd, 0x8c, 0x59, 0x9b, 0x40, 0x5f, 0xc1, 0x6c, 0xe2, 0x6e, 0x1d, 0x29, 0xcd, 0xb2, - 0x1f, 0x0b, 0xb4, 0x57, 0xc7, 0x70, 0xc4, 0x2d, 0xa8, 0xde, 0x9d, 0xc7, 0x2d, 0x98, 0x71, 0x23, - 0x1f, 0xb7, 0x60, 0xe6, 0xb5, 0x3b, 0x73, 0xb6, 0xd8, 0x1d, 0xb9, 0xea, 0x6c, 0x59, 0x37, 0xf2, - 0xed, 0x1b, 0xb9, 0xf5, 0xea, 0x24, 0x24, 0x6e, 0xc8, 0xd5, 0x49, 0xc8, 0xbe, 0x79, 0x6f, 0xaf, - 0x8e, 0xe1, 0x48, 0x5a, 0x2d, 0xba, 0xa7, 0x4b, 0x5a, 0x2d, 0x75, 0x3b, 0x9c, 0xb4, 0x5a, 0xfa, - 0x8a, 0x4f, 0x58, 0x2d, 0x71, 0xaf, 0x76, 0x73, 0x0c, 0xc8, 0x9e, 0xb6, 0x5a, 0x36, 0x0c, 0xaf, - 0x4d, 0x20, 0x02, 0xad, 0x3c, 0x00, 0x1b, 0x29, 0x39, 0xc4, 0x39, 0x18, 0x7b, 0xfb, 0xee, 0x45, - 0x58, 0xc3, 0x4e, 0x37, 0xa0, 0x22, 0xf1, 0x6a, 0xa4, 0x44, 0x9a, 0x04, 0x4a, 0xde, 0x6e, 0x67, - 0x55, 0x85, 0x42, 0xee, 0x43, 0x99, 0x52, 0xd1, 0x62, 0x9c, 0x4b, 0x36, 0x5e, 0x4a, 0x92, 0xc3, - 0x86, 0x1f, 0xc3, 0x14, 0x07, 0x60, 0x91, 0x72, 0xb4, 0x8b, 0xc1, 0xc3, 0xed, 0x56, 0xba, 0x22, - 0x6c, 0xbe, 0xc3, 0x7f, 0xf7, 0x2f, 0xb0, 0x54, 0x74, 0x2d, 0xfe, 0xcb, 0xd0, 0x38, 0x64, 0xdb, - 0xbe, 0x9e, 0x53, 0xab, 0x3a, 0x4c, 0x22, 0x4d, 0xb9, 0x91, 0x9b, 0x4b, 0xa6, 0x1d, 0x26, 0x3b, - 0x3b, 0xd5, 0x26, 0x90, 0xc9, 0x11, 0xc1, 0x84, 0xe8, 0xd7, 0x72, 0x5c, 0x2d, 0x26, 0xfe, 0xf5, - 0xf1, 0x4c, 0x61, 0x17, 0x16, 0xcc, 0x67, 0x60, 0x08, 0xe8, 0xf5, 0xa4, 0x27, 0x64, 0x01, 0x18, - 0xed, 0x5b, 0xe7, 0x70, 0xa9, 0xc6, 0x12, 0x0e, 0xbf, 0x9c, 0x3e, 0x58, 0xa7, 0x8c, 0x95, 0x74, - 0xef, 0xf5, 0x3f, 0x2a, 0xc1, 0x0c, 0xc7, 0x7b, 0xc4, 0xee, 0xb7, 0x0d, 0x10, 0x41, 0xa5, 0xe8, - 0x6a, 0x7c, 0xac, 0x31, 0xf0, 0xba, 0x7d, 0x2d, 0xbb, 0x52, 0x75, 0x04, 0x05, 0x86, 0x44, 0xd7, - 0x72, 0xd0, 0xc9, 0x94, 0x23, 0x64, 0x60, 0x97, 0xda, 0x04, 0x7a, 0x02, 0xd5, 0x10, 0xf7, 0x42, - 0x2a, 0x5e, 0x96, 0x00, 0xee, 0xda, 0x57, 0x33, 0xeb, 0x54, 0xad, 0x14, 0x30, 0x4b, 0xd5, 0x2a, - 0x0d, 0x92, 0xa9, 0x5a, 0x65, 0x21, 0x60, 0xd1, 0x18, 0xf9, 0x51, 0x39, 0x35, 0xc6, 0x18, 0x02, - 0x91, 0x1a, 0x63, 0xfc, 0x7c, 0xad, 0x4d, 0x3c, 0xbe, 0xf6, 0xd3, 0x9f, 0xad, 0x14, 0xfe, 0xed, - 0x67, 0x2b, 0x13, 0xbf, 0xfb, 0xed, 0x4a, 0xe1, 0xa7, 0xdf, 0xae, 0x14, 0xfe, 0xf5, 0xdb, 0x95, - 0xc2, 0x7f, 0x7c, 0xbb, 0x52, 0xf8, 0x93, 0xff, 0x5c, 0x99, 0x38, 0x9a, 0x62, 0xff, 0x1b, 0xe3, - 0xbd, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xef, 0x83, 0x00, 0x67, 0xd1, 0x44, 0x00, 0x00, + // 4392 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5b, 0xcd, 0x6f, 0x1c, 0x47, + 0x76, 0xe7, 0xcc, 0xf0, 0x63, 0xe6, 0x0d, 0x67, 0x38, 0x2c, 0x51, 0xe4, 0x70, 0x24, 0x51, 0x54, + 0xcb, 0x92, 0x25, 0xed, 0x4a, 0x96, 0xe9, 0xb5, 0x14, 0xcb, 0xb6, 0xe4, 0x31, 0x49, 0x29, 0xb4, + 0x24, 0x92, 0xdb, 0x43, 0x7a, 0x6d, 0x6c, 0x80, 0x4e, 0x73, 0xba, 0x38, 0x6c, 0x7b, 0xa6, 0xab, + 0xdd, 0x1f, 0x92, 0x18, 0xe4, 0x90, 0x5c, 0x82, 0x20, 0x40, 0x80, 0xcd, 0x31, 0x39, 0xe5, 0x10, + 0x60, 0x91, 0x4b, 0x10, 0xe4, 0x10, 0xe4, 0x0f, 0x08, 0x92, 0xbd, 0x2c, 0x10, 0x20, 0x40, 0x90, + 0xdc, 0xb2, 0xca, 0x21, 0x87, 0x00, 0xf9, 0x1b, 0x16, 0xf5, 0xd5, 0x5d, 0xfd, 0x35, 0x22, 0x65, + 0xef, 0x5a, 0xa7, 0xe9, 0x7a, 0xf5, 0xea, 0xd5, 0xab, 0xaa, 0x57, 0xaf, 0xde, 0xfb, 0x55, 0x0d, + 0xd4, 0x4c, 0xd7, 0xbe, 0xe5, 0x7a, 0x24, 0x20, 0x68, 0xc6, 0x0b, 0x9d, 0xc0, 0x1e, 0xe1, 0xce, + 0xcd, 0x81, 0x1d, 0x1c, 0x85, 0x07, 0xb7, 0xfa, 0x64, 0xf4, 0xce, 0x80, 0x0c, 0xc8, 0x3b, 0xac, + 0xfe, 0x20, 0x3c, 0x64, 0x25, 0x56, 0x60, 0x5f, 0xbc, 0x9d, 0x76, 0x03, 0x9a, 0x9f, 0x63, 0xcf, + 0xb7, 0x89, 0xa3, 0xe3, 0x6f, 0x42, 0xec, 0x07, 0xa8, 0x0d, 0x33, 0xcf, 0x38, 0xa5, 0x5d, 0x5a, + 0x2d, 0x5d, 0xab, 0xe9, 0xb2, 0xa8, 0xfd, 0xbc, 0x04, 0x73, 0x11, 0xb3, 0xef, 0x12, 0xc7, 0xc7, + 0xc5, 0xdc, 0xe8, 0x12, 0xcc, 0x0a, 0x9d, 0x0c, 0xc7, 0x1c, 0xe1, 0x76, 0x99, 0x55, 0xd7, 0x05, + 0x6d, 0xdb, 0x1c, 0x61, 0xf4, 0x36, 0xcc, 0x49, 0x16, 0x29, 0xa4, 0xc2, 0xb8, 0x9a, 0x82, 0x2c, + 0x7a, 0x43, 0xb7, 0xe0, 0x8c, 0x64, 0x34, 0x5d, 0x3b, 0x62, 0x9e, 0x64, 0xcc, 0xf3, 0xa2, 0xaa, + 0xeb, 0xda, 0x82, 0x5f, 0xfb, 0x29, 0xd4, 0x36, 0xb6, 0x7b, 0xeb, 0xc4, 0x39, 0xb4, 0x07, 0x54, + 0x45, 0x1f, 0x7b, 0xb4, 0x4d, 0xbb, 0xb4, 0x5a, 0xa1, 0x2a, 0x8a, 0x22, 0xea, 0x40, 0xd5, 0xc7, + 0xa6, 0xd7, 0x3f, 0xc2, 0x7e, 0xbb, 0xcc, 0xaa, 0xa2, 0x32, 0x6d, 0x45, 0xdc, 0xc0, 0x26, 0x8e, + 0xdf, 0xae, 0xf0, 0x56, 0xa2, 0xa8, 0xfd, 0x65, 0x09, 0xea, 0xbb, 0xc4, 0x0b, 0x9e, 0x9a, 0xae, + 0x6b, 0x3b, 0x03, 0x74, 0x13, 0xaa, 0x6c, 0x2e, 0xfb, 0x64, 0xc8, 0xe6, 0xa0, 0xb9, 0x36, 0x7f, + 0x4b, 0xa8, 0x74, 0x6b, 0x57, 0x54, 0xe8, 0x11, 0x0b, 0xba, 0x02, 0xcd, 0x3e, 0x71, 0x02, 0xd3, + 0x76, 0xb0, 0x67, 0xb8, 0xc4, 0x0b, 0xd8, 0xcc, 0x4c, 0xe9, 0x8d, 0x88, 0x4a, 0x85, 0xa3, 0x73, + 0x50, 0x3b, 0x22, 0x7e, 0xc0, 0x39, 0x2a, 0x8c, 0xa3, 0x4a, 0x09, 0xac, 0x72, 0x09, 0x66, 0x58, + 0xa5, 0xed, 0x8a, 0x39, 0x98, 0xa6, 0xc5, 0x2d, 0x57, 0xfb, 0x65, 0x09, 0xa6, 0x9e, 0x92, 0xd0, + 0x09, 0x52, 0xdd, 0x98, 0xc1, 0x91, 0x58, 0x1f, 0xa5, 0x1b, 0x33, 0x38, 0x8a, 0xbb, 0xa1, 0x1c, + 0x7c, 0x89, 0x78, 0x37, 0xb4, 0xb2, 0x03, 0x55, 0x0f, 0x9b, 0x16, 0x71, 0x86, 0xc7, 0x4c, 0x85, + 0xaa, 0x1e, 0x95, 0xe9, 0xda, 0xf9, 0x78, 0x68, 0x3b, 0xe1, 0x0b, 0xc3, 0xc3, 0x43, 0xf3, 0x00, + 0x0f, 0x99, 0x2a, 0x55, 0xbd, 0x29, 0xc8, 0x3a, 0xa7, 0xa2, 0x0f, 0xa1, 0xee, 0x7a, 0xc4, 0x35, + 0x07, 0x26, 0x9d, 0xbe, 0xf6, 0x14, 0x9b, 0xa1, 0xe5, 0x68, 0x86, 0x98, 0xb6, 0xbb, 0x31, 0x83, + 0xae, 0x72, 0x6b, 0x5f, 0xc1, 0x1c, 0xb5, 0x14, 0xdf, 0x35, 0xfb, 0x78, 0x87, 0xcd, 0x3f, 0xb5, + 0x2b, 0xa6, 0xb1, 0x83, 0x83, 0xe7, 0xc4, 0xfb, 0x9a, 0x0d, 0xab, 0xaa, 0xd7, 0x29, 0x6d, 0x9b, + 0x93, 0xd0, 0x32, 0x54, 0xf9, 0xa0, 0x6c, 0x8b, 0x8d, 0xa9, 0xaa, 0xb3, 0xe9, 0xda, 0xb5, 0xad, + 0xa8, 0xca, 0x76, 0xfb, 0x62, 0x48, 0x33, 0x7c, 0xea, 0xfa, 0x9a, 0x06, 0xb0, 0xe5, 0x04, 0x77, + 0x7e, 0xf4, 0xb9, 0x39, 0x0c, 0x31, 0x5a, 0x80, 0xa9, 0x67, 0xf4, 0x83, 0xc9, 0xaf, 0xe8, 0xbc, + 0xa0, 0xfd, 0x49, 0x05, 0xce, 0x3d, 0xa1, 0xa3, 0xeb, 0x99, 0x8e, 0x75, 0x40, 0x5e, 0xf4, 0x70, + 0x3f, 0xf4, 0xec, 0xe0, 0x78, 0x9d, 0x38, 0x01, 0x7e, 0x11, 0xa0, 0x4d, 0x98, 0x77, 0xa4, 0xbe, + 0x86, 0xb4, 0x1f, 0x2a, 0xa1, 0xbe, 0xd6, 0x8e, 0x86, 0x9c, 0x1a, 0x91, 0xde, 0x72, 0x92, 0x04, + 0x1f, 0x3d, 0x88, 0x27, 0x57, 0x0a, 0x29, 0x33, 0x21, 0x8b, 0x91, 0x90, 0xde, 0x26, 0xd3, 0x43, + 0x88, 0x90, 0x93, 0x2e, 0x05, 0xbc, 0x07, 0x74, 0xa3, 0x19, 0xa6, 0x6f, 0x84, 0x3e, 0xf6, 0xd8, + 0x48, 0xeb, 0x6b, 0x67, 0xa2, 0xc6, 0xf1, 0x38, 0xf5, 0x9a, 0x17, 0x3a, 0x5d, 0x7f, 0xdf, 0xc7, + 0x1e, 0xdb, 0x8e, 0x62, 0x79, 0x0d, 0x8f, 0x90, 0xe0, 0xd0, 0x97, 0x4b, 0x2a, 0xc9, 0x3a, 0xa3, + 0xa2, 0x77, 0xe0, 0x8c, 0x1f, 0xba, 0xee, 0x10, 0x8f, 0xb0, 0x13, 0x98, 0x43, 0x63, 0xe0, 0x91, + 0xd0, 0xf5, 0xdb, 0x53, 0xab, 0x95, 0x6b, 0x15, 0x1d, 0xa9, 0x55, 0x8f, 0x58, 0x0d, 0x5a, 0x01, + 0x70, 0x3d, 0xfb, 0x99, 0x3d, 0xc4, 0x03, 0x6c, 0xb5, 0xa7, 0x99, 0x50, 0x85, 0x82, 0x6e, 0xc3, + 0x82, 0x8f, 0xfb, 0x7d, 0x32, 0x72, 0x0d, 0xd7, 0x23, 0x87, 0xf6, 0x10, 0x73, 0x83, 0x9c, 0x61, + 0x06, 0x89, 0x44, 0xdd, 0x2e, 0xaf, 0xa2, 0xa6, 0xa9, 0xfd, 0xac, 0x0c, 0x67, 0xd9, 0x04, 0xec, + 0x12, 0x4b, 0xac, 0x85, 0xd8, 0xee, 0x97, 0xa1, 0xd1, 0x67, 0x0a, 0x19, 0xae, 0xe9, 0x61, 0x27, + 0x10, 0x76, 0x3f, 0xcb, 0x89, 0xbb, 0x8c, 0x86, 0x76, 0xa0, 0xe5, 0x8b, 0xa5, 0x33, 0xfa, 0x7c, + 0xed, 0xc4, 0x0c, 0xbf, 0x15, 0x4d, 0xd2, 0x98, 0x75, 0xd6, 0xe7, 0xfc, 0xcc, 0xc2, 0xcf, 0xf8, + 0xc7, 0x7e, 0x3f, 0x18, 0x72, 0x77, 0x51, 0x5f, 0xfb, 0x41, 0x52, 0x4e, 0x5a, 0xcd, 0x5b, 0x3d, + 0xce, 0xbd, 0xe9, 0x04, 0xde, 0xb1, 0x2e, 0xdb, 0x76, 0xee, 0xc1, 0xac, 0x5a, 0x81, 0x5a, 0x50, + 0xf9, 0x1a, 0x1f, 0x8b, 0x21, 0xd0, 0xcf, 0xd8, 0x2e, 0xf9, 0x66, 0xe5, 0x85, 0x7b, 0xe5, 0xdf, + 0x29, 0x69, 0x1e, 0xa0, 0xb8, 0x97, 0xa7, 0x38, 0x30, 0x2d, 0x33, 0x30, 0x11, 0x82, 0x49, 0xe6, + 0x7e, 0xb9, 0x08, 0xf6, 0x4d, 0xa5, 0x86, 0x62, 0x6b, 0xd4, 0x74, 0xfa, 0x89, 0xce, 0x43, 0x2d, + 0x32, 0x42, 0xe1, 0x83, 0x63, 0x02, 0xf5, 0x85, 0x66, 0x10, 0xe0, 0x91, 0x1b, 0x30, 0x83, 0x68, + 0xe8, 0xb2, 0xa8, 0xfd, 0xd3, 0x24, 0xb4, 0x32, 0x2b, 0x70, 0x17, 0xaa, 0x23, 0xd1, 0xbd, 0xb0, + 0xfd, 0x73, 0xb1, 0x43, 0xcc, 0x68, 0xa8, 0x47, 0xcc, 0xd4, 0xdf, 0xd0, 0xcd, 0xa8, 0x1c, 0x17, + 0x51, 0x99, 0x2e, 0xeb, 0x90, 0x0c, 0x0c, 0xcb, 0xf6, 0x70, 0x3f, 0x20, 0xde, 0xb1, 0xd0, 0x72, + 0x76, 0x48, 0x06, 0x1b, 0x92, 0x86, 0xde, 0x05, 0xb0, 0x1c, 0x9f, 0xae, 0xe8, 0xa1, 0x3d, 0x60, + 0xba, 0xd6, 0xd7, 0x50, 0xd4, 0x77, 0x74, 0x24, 0xe8, 0x35, 0xcb, 0xf1, 0x85, 0xb2, 0x1f, 0x40, + 0x83, 0xba, 0x58, 0x63, 0xc4, 0xbd, 0x39, 0xb7, 0xe2, 0xfa, 0xda, 0x82, 0xa2, 0x71, 0xe4, 0xea, + 0xf5, 0x59, 0x37, 0x2e, 0xf8, 0xe8, 0x63, 0x98, 0x66, 0x2e, 0xce, 0x6f, 0x4f, 0xb3, 0x36, 0x57, + 0x72, 0x46, 0x29, 0x56, 0xfb, 0x09, 0xe3, 0xe3, 0x8b, 0x2d, 0x1a, 0xa1, 0x27, 0x50, 0x37, 0x1d, + 0x87, 0x04, 0x26, 0xdf, 0xe0, 0x33, 0x4c, 0xc6, 0x8d, 0x62, 0x19, 0xdd, 0x98, 0x99, 0x0b, 0x52, + 0x9b, 0xa3, 0x1f, 0xc1, 0x14, 0xf3, 0x00, 0xed, 0x2a, 0x1b, 0xf5, 0xca, 0x78, 0xf3, 0xd3, 0x39, + 0x73, 0xe7, 0x03, 0xa8, 0x2b, 0xaa, 0x9d, 0xc6, 0xdc, 0x3a, 0xf7, 0xa1, 0x95, 0xd6, 0xe8, 0x54, + 0xe6, 0xba, 0x05, 0x0b, 0x7a, 0xe8, 0xc4, 0x8a, 0xc9, 0xf8, 0xe3, 0x5d, 0x98, 0x16, 0xeb, 0xc7, + 0x6d, 0x67, 0xb9, 0x70, 0x46, 0x74, 0xc1, 0xa8, 0x7d, 0x0c, 0x67, 0x53, 0xa2, 0x44, 0x74, 0xf2, + 0x16, 0x34, 0x5d, 0x62, 0x19, 0x3e, 0x27, 0x1b, 0xb6, 0x25, 0x9d, 0x81, 0x1b, 0xf1, 0x6e, 0x59, + 0xb4, 0x79, 0x2f, 0x20, 0x6e, 0x56, 0x95, 0x93, 0x35, 0x6f, 0xc3, 0x62, 0xba, 0x39, 0xef, 0x5e, + 0x7b, 0x00, 0x4b, 0x3a, 0x1e, 0x91, 0x67, 0xf8, 0x75, 0x45, 0x77, 0xa0, 0x9d, 0x15, 0x20, 0x84, + 0x7f, 0x09, 0x4b, 0x31, 0xb5, 0x17, 0x98, 0x41, 0xe8, 0x9f, 0x4a, 0xb8, 0x08, 0xdd, 0x0e, 0x88, + 0x8f, 0xe5, 0x21, 0x29, 0x8a, 0xda, 0x75, 0x55, 0xb4, 0x38, 0x54, 0x79, 0x0f, 0xa8, 0x09, 0x65, + 0xdb, 0x15, 0xe2, 0xca, 0xb6, 0xab, 0x3d, 0x80, 0x5a, 0x74, 0x9c, 0xa1, 0xb5, 0x38, 0x66, 0x2a, + 0xbf, 0xe2, 0xcc, 0x8b, 0xa2, 0xa9, 0xc7, 0x19, 0x3f, 0x2e, 0x7a, 0x5a, 0x03, 0x88, 0x3c, 0x90, + 0x3c, 0x43, 0x51, 0x56, 0x9e, 0xae, 0x70, 0x69, 0x7f, 0x93, 0x70, 0x47, 0x8a, 0xca, 0x56, 0xa4, + 0xb2, 0x95, 0x70, 0x4f, 0xe5, 0xd3, 0xb8, 0xa7, 0x5b, 0x30, 0xe5, 0x07, 0x66, 0xc0, 0x1d, 0x64, + 0x53, 0x19, 0x5c, 0xb2, 0x4b, 0xac, 0x73, 0x36, 0x74, 0x01, 0xa0, 0xef, 0x61, 0x33, 0xc0, 0x96, + 0x61, 0x72, 0xcf, 0x59, 0xd1, 0x6b, 0x82, 0xd2, 0x0d, 0xd0, 0x3d, 0x98, 0x91, 0x31, 0xcc, 0x14, + 0x53, 0x63, 0x35, 0x47, 0x60, 0x62, 0xf6, 0x75, 0xd9, 0x20, 0xde, 0xed, 0xd3, 0xe3, 0x77, 0xbb, + 0x68, 0xc7, 0x99, 0x15, 0x87, 0x35, 0x53, 0xe8, 0xb0, 0x78, 0x8b, 0x93, 0x38, 0xac, 0x6a, 0xa1, + 0xc3, 0x12, 0x32, 0xc6, 0x3a, 0xac, 0xef, 0xd3, 0xf5, 0xfc, 0x6b, 0x09, 0xda, 0xd9, 0xbd, 0x23, + 0x7c, 0xc6, 0xbb, 0x30, 0xed, 0x33, 0xca, 0x18, 0xff, 0x23, 0x9a, 0x08, 0x46, 0xf4, 0x00, 0x26, + 0x6d, 0xe7, 0x90, 0xb0, 0x1c, 0x42, 0x3d, 0xf9, 0x8b, 0xfa, 0xb8, 0xb5, 0xe5, 0x1c, 0x12, 0x3e, + 0x25, 0xac, 0x61, 0xe7, 0x2e, 0xd4, 0x22, 0xd2, 0xa9, 0x46, 0xf2, 0x10, 0x16, 0x52, 0xc6, 0xc7, + 0xa3, 0xd7, 0xc8, 0x54, 0x4b, 0x27, 0x32, 0x55, 0xed, 0xff, 0x4b, 0xea, 0xc6, 0x79, 0x68, 0x0f, + 0x03, 0xec, 0x65, 0x36, 0xce, 0x7b, 0x52, 0x28, 0xdf, 0x35, 0x17, 0x8a, 0x84, 0xf2, 0xc0, 0x52, + 0x6c, 0x82, 0x1e, 0x34, 0x99, 0xf9, 0x18, 0x3e, 0x1e, 0xb2, 0x53, 0x5a, 0xc4, 0x47, 0x3f, 0xcc, + 0x69, 0xcd, 0xfb, 0xe5, 0xb6, 0xd7, 0x13, 0xec, 0x7c, 0x9a, 0x1a, 0x43, 0x95, 0xd6, 0xf9, 0x04, + 0x50, 0x96, 0xe9, 0x54, 0x13, 0xf7, 0x19, 0x75, 0x3b, 0x34, 0x9b, 0xca, 0x39, 0x7e, 0x0e, 0x99, + 0x1a, 0x63, 0x96, 0x9f, 0xeb, 0xa9, 0x0b, 0x46, 0xed, 0xaf, 0x2b, 0x00, 0x71, 0xe5, 0x1b, 0xeb, + 0x6f, 0xee, 0x46, 0xbb, 0x9f, 0x87, 0x38, 0x17, 0x73, 0xe4, 0xe5, 0xee, 0xfb, 0x87, 0xc9, 0x7d, + 0xcf, 0x83, 0x9d, 0xb7, 0xf2, 0x5a, 0xbf, 0xb1, 0x3b, 0x7e, 0x1d, 0x16, 0xd3, 0xcb, 0x2d, 0xb6, + 0xfb, 0x75, 0x98, 0xb2, 0x03, 0x3c, 0xe2, 0xd8, 0x80, 0x9a, 0x23, 0x29, 0xbc, 0x9c, 0x43, 0xbb, + 0x04, 0xb5, 0xad, 0x91, 0x39, 0xc0, 0x3d, 0x17, 0xf7, 0x69, 0x5f, 0x36, 0x2d, 0x88, 0xfe, 0x79, + 0x41, 0x5b, 0x83, 0xea, 0x63, 0x7c, 0xcc, 0xf7, 0xe0, 0x09, 0xf5, 0xd3, 0xfe, 0xbc, 0x0c, 0x4b, + 0xcc, 0x6d, 0xaf, 0xcb, 0xcc, 0x5c, 0xc7, 0x3e, 0x09, 0xbd, 0x3e, 0xf6, 0xd9, 0x92, 0xba, 0xa1, + 0xe1, 0x62, 0xcf, 0x26, 0x96, 0x48, 0x45, 0x6b, 0x7d, 0x37, 0xdc, 0x65, 0x04, 0x9a, 0xbd, 0xd3, + 0xea, 0x6f, 0x42, 0x22, 0x6c, 0xab, 0xa2, 0x57, 0xfb, 0x6e, 0xf8, 0x63, 0x5a, 0x96, 0x6d, 0xfd, + 0x23, 0xd3, 0xc3, 0x3e, 0xb3, 0x21, 0xde, 0xb6, 0xc7, 0x08, 0xe8, 0x5d, 0x38, 0x3b, 0xc2, 0x23, + 0xe2, 0x1d, 0x1b, 0x43, 0x7b, 0x64, 0x07, 0x86, 0xed, 0x18, 0x07, 0xc7, 0x01, 0xf6, 0x85, 0xe1, + 0x20, 0x5e, 0xf9, 0x84, 0xd6, 0x6d, 0x39, 0x9f, 0xd2, 0x1a, 0xa4, 0x41, 0x83, 0x90, 0x91, 0xe1, + 0xf7, 0x89, 0x87, 0x0d, 0xd3, 0xfa, 0x8a, 0x9d, 0x5b, 0x15, 0xbd, 0x4e, 0xc8, 0xa8, 0x47, 0x69, + 0x5d, 0xeb, 0x2b, 0x74, 0x11, 0xea, 0x7d, 0x37, 0xf4, 0x71, 0x60, 0xd0, 0x1f, 0x76, 0x3e, 0xd5, + 0x74, 0xe0, 0xa4, 0x75, 0x37, 0xf4, 0x15, 0x86, 0x11, 0x9d, 0xf6, 0x19, 0x95, 0xe1, 0x29, 0x9d, + 0x66, 0x13, 0x1a, 0x89, 0xe4, 0x96, 0xa6, 0x30, 0x2c, 0x8b, 0x15, 0x29, 0x0c, 0xfd, 0xa6, 0x34, + 0x8f, 0x0c, 0xe5, 0x4c, 0xb2, 0x6f, 0x4a, 0x0b, 0x8e, 0x5d, 0x99, 0xbf, 0xb0, 0x6f, 0x3a, 0xe5, + 0x43, 0xfc, 0x4c, 0x80, 0x13, 0x35, 0x9d, 0x17, 0x34, 0x0b, 0x60, 0xdd, 0x74, 0xcd, 0x03, 0x7b, + 0x68, 0x07, 0xc7, 0xe8, 0x3a, 0xb4, 0x4c, 0xcb, 0x32, 0xfa, 0x92, 0x62, 0x63, 0x89, 0x14, 0xcd, + 0x99, 0x96, 0xb5, 0xae, 0x90, 0xd1, 0x0f, 0x60, 0xde, 0xf2, 0x88, 0x9b, 0xe4, 0xe5, 0xd0, 0x51, + 0x8b, 0x56, 0xa8, 0xcc, 0xda, 0x3f, 0x4e, 0xc2, 0x85, 0xe4, 0xc2, 0xa6, 0xe1, 0x82, 0xbb, 0x30, + 0x9b, 0xea, 0x35, 0x99, 0xa7, 0xc7, 0x4a, 0xea, 0x09, 0xc6, 0x54, 0x42, 0x5d, 0xce, 0x24, 0xd4, + 0xb9, 0x38, 0x44, 0xe5, 0xbb, 0xc0, 0x21, 0x26, 0xbf, 0x0d, 0x0e, 0x31, 0x75, 0x22, 0x1c, 0xe2, + 0x2a, 0x83, 0x05, 0x65, 0x23, 0x96, 0x0d, 0x72, 0x33, 0x6a, 0x44, 0x3c, 0x8e, 0x84, 0x0f, 0x53, + 0x78, 0xc5, 0xcc, 0x69, 0xf0, 0x8a, 0x6a, 0x21, 0x5e, 0x41, 0x2d, 0xc2, 0x75, 0x4d, 0x6f, 0x44, + 0x3c, 0x09, 0x48, 0xb4, 0x6b, 0x4c, 0x85, 0x39, 0x49, 0x17, 0x60, 0x44, 0x21, 0x74, 0x01, 0x45, + 0xd0, 0x05, 0x5a, 0x85, 0x59, 0x87, 0x18, 0x0e, 0x7e, 0x6e, 0xd0, 0x05, 0xf3, 0xdb, 0x75, 0xbe, + 0x7a, 0x0e, 0xd9, 0xc6, 0xcf, 0x77, 0x29, 0x45, 0xfb, 0xdb, 0x12, 0x2c, 0x24, 0x0d, 0x47, 0x24, + 0xab, 0xf7, 0xa1, 0xe6, 0x49, 0xdf, 0x20, 0x8c, 0x65, 0x35, 0x19, 0xfa, 0x65, 0x7d, 0x88, 0x1e, + 0x37, 0x41, 0x3f, 0x2e, 0x84, 0x3d, 0xae, 0x16, 0x88, 0x79, 0x15, 0xf0, 0xa1, 0x75, 0x61, 0x3e, + 0x62, 0x1e, 0x0b, 0x3a, 0x28, 0x20, 0x42, 0x39, 0x09, 0x22, 0x38, 0x30, 0xbd, 0x81, 0x9f, 0xd9, + 0x7d, 0xfc, 0x9d, 0x80, 0x96, 0xab, 0x50, 0x77, 0xb1, 0x37, 0xb2, 0x7d, 0x3f, 0x32, 0xfa, 0x9a, + 0xae, 0x92, 0xb4, 0xff, 0x9a, 0x82, 0xb9, 0xf4, 0xcc, 0xde, 0xc9, 0x60, 0x16, 0x9d, 0x78, 0x17, + 0xa6, 0xc7, 0xa7, 0x9c, 0xd1, 0xd7, 0xe4, 0x31, 0x50, 0x4e, 0x25, 0x28, 0xd1, 0x49, 0x21, 0x8e, + 0x06, 0x3a, 0xfe, 0x3e, 0x19, 0x8d, 0x4c, 0xc7, 0x92, 0x80, 0xb2, 0x28, 0xd2, 0xd9, 0x32, 0xbd, + 0x01, 0xdd, 0x5a, 0x94, 0xcc, 0xbe, 0xa9, 0x97, 0xa4, 0x81, 0xbe, 0xed, 0x30, 0xc8, 0x83, 0x6d, + 0x9c, 0x9a, 0x0e, 0x82, 0xb4, 0x61, 0x7b, 0xe8, 0x0a, 0x4c, 0x62, 0xe7, 0x99, 0x3c, 0x8d, 0x63, + 0xc4, 0x59, 0x1e, 0x3f, 0x3a, 0xab, 0x46, 0x57, 0x61, 0x7a, 0x44, 0x42, 0x27, 0x90, 0x21, 0x7f, + 0x33, 0x09, 0xbc, 0xea, 0xa2, 0x16, 0x5d, 0x87, 0x19, 0x8b, 0xad, 0x81, 0x8c, 0xeb, 0xe7, 0x62, + 0xd8, 0x84, 0xd1, 0x75, 0x59, 0x8f, 0x3e, 0x8a, 0xe2, 0x88, 0x5a, 0x2a, 0x12, 0x48, 0x4d, 0x6a, + 0x6e, 0x30, 0xf1, 0x38, 0x19, 0x4c, 0x00, 0x13, 0x71, 0xbd, 0x50, 0xc4, 0x78, 0xd0, 0x63, 0x19, + 0xaa, 0x43, 0x32, 0xe0, 0x76, 0x50, 0xe7, 0xd7, 0x0f, 0x43, 0x32, 0x60, 0x66, 0xb0, 0x40, 0x83, + 0x27, 0xcb, 0x76, 0xda, 0xb3, 0x6c, 0x7b, 0xf1, 0x02, 0x3d, 0x13, 0xd9, 0x87, 0x41, 0x9c, 0x3e, + 0x6e, 0x37, 0x58, 0x55, 0x8d, 0x51, 0x76, 0x9c, 0x3e, 0x3b, 0xb2, 0x83, 0xe0, 0xb8, 0xdd, 0x64, + 0x74, 0xfa, 0x49, 0x63, 0x5e, 0x9e, 0x68, 0xcd, 0xa5, 0x62, 0xde, 0xbc, 0xfd, 0xf9, 0x06, 0xa0, + 0x2a, 0xff, 0x50, 0x82, 0xc5, 0x75, 0x16, 0xf2, 0x29, 0x9e, 0xe0, 0x34, 0xa8, 0xc0, 0xed, 0x08, + 0x7e, 0x49, 0xa7, 0xf0, 0xe9, 0xc1, 0x0a, 0x3e, 0xf4, 0x09, 0x34, 0xa5, 0x4c, 0xd1, 0xb2, 0xf2, + 0x2a, 0xe0, 0xa6, 0xe1, 0xab, 0x45, 0xed, 0x23, 0x58, 0xca, 0xe8, 0x2c, 0xc2, 0xb3, 0x4b, 0x30, + 0x1b, 0x7b, 0x84, 0x48, 0xe5, 0x7a, 0x44, 0xdb, 0xb2, 0xb4, 0x7b, 0x70, 0xb6, 0x17, 0x98, 0x5e, + 0x90, 0x19, 0xf0, 0x09, 0xda, 0x32, 0xec, 0x26, 0xd9, 0x56, 0xc0, 0x2b, 0x3d, 0x58, 0xe8, 0x05, + 0xc4, 0x7d, 0x0d, 0xa1, 0x74, 0xa7, 0xd3, 0x61, 0x93, 0x30, 0x10, 0x31, 0x99, 0x2c, 0x6a, 0x4b, + 0x1c, 0x69, 0xca, 0xf6, 0xf6, 0x21, 0x2c, 0x72, 0xa0, 0xe7, 0x75, 0x06, 0xb1, 0x2c, 0x61, 0xa6, + 0xac, 0xdc, 0x0d, 0x38, 0x13, 0xbb, 0xf2, 0x38, 0x3d, 0xbc, 0x99, 0x4c, 0x0f, 0x97, 0xb2, 0x6b, + 0x9c, 0xc8, 0x0e, 0xff, 0xa2, 0xac, 0x38, 0xcc, 0x82, 0xe4, 0x70, 0x2d, 0x99, 0x1c, 0x9e, 0x2f, + 0x10, 0x99, 0xc8, 0x0d, 0xb3, 0x16, 0x59, 0xc9, 0xb1, 0x48, 0x3d, 0x93, 0x41, 0x4e, 0xa6, 0xf2, + 0xec, 0x94, 0x6e, 0xbf, 0x95, 0x04, 0x72, 0x8b, 0x27, 0x90, 0x51, 0xd7, 0x11, 0xf8, 0x76, 0x3b, + 0x95, 0x40, 0xb6, 0x8b, 0xd4, 0x8c, 0xf2, 0xc7, 0x3f, 0x9d, 0x84, 0x5a, 0x54, 0x97, 0x99, 0xd8, + 0xec, 0x24, 0x95, 0x73, 0x26, 0x49, 0x3d, 0xbf, 0x2a, 0xaf, 0x73, 0x7e, 0x4d, 0xbe, 0xea, 0xfc, + 0x3a, 0x07, 0x35, 0xf6, 0x61, 0x78, 0xf8, 0x50, 0x9c, 0x47, 0x55, 0x46, 0xd0, 0xf1, 0x61, 0x6c, + 0x50, 0xd3, 0x27, 0x31, 0xa8, 0x54, 0xa6, 0x3a, 0x93, 0xce, 0x54, 0xef, 0x44, 0x27, 0x0c, 0x3f, + 0x8b, 0x56, 0xb2, 0xe2, 0x72, 0xcf, 0x96, 0xcd, 0xe4, 0xd9, 0xc2, 0x8f, 0xa7, 0xcb, 0x39, 0x8d, + 0xdf, 0xd8, 0x3c, 0xf5, 0x09, 0xcf, 0x53, 0x55, 0xab, 0x12, 0x8e, 0x70, 0x0d, 0x20, 0xda, 0xf3, + 0x32, 0x59, 0x45, 0xd9, 0xa1, 0xe9, 0x0a, 0x97, 0xb6, 0x0f, 0x8b, 0x89, 0xf9, 0x8f, 0x11, 0xe2, + 0x93, 0x79, 0xb1, 0x02, 0x78, 0xf8, 0x5f, 0xd4, 0xf8, 0xa9, 0x00, 0x64, 0xbd, 0x93, 0x01, 0x3d, + 0x4e, 0x66, 0x8f, 0x37, 0x93, 0x98, 0xc7, 0xe9, 0x0c, 0x29, 0x03, 0x79, 0xb0, 0xe3, 0xde, 0xf4, + 0x44, 0x35, 0xcf, 0x56, 0x6b, 0x82, 0xd2, 0x0d, 0x68, 0x90, 0x75, 0x68, 0x3b, 0xb6, 0x7f, 0xc4, + 0xeb, 0xa7, 0x59, 0x3d, 0x48, 0x52, 0x97, 0x5d, 0xc2, 0xe3, 0x17, 0x76, 0x60, 0xf4, 0x89, 0x85, + 0x99, 0x99, 0x4e, 0xe9, 0x55, 0x4a, 0x58, 0x27, 0x16, 0x8e, 0xb7, 0x4e, 0xf5, 0x54, 0x5b, 0xa7, + 0x96, 0xda, 0x3a, 0x8b, 0x30, 0xed, 0x61, 0xd3, 0x27, 0x8e, 0x48, 0x19, 0x44, 0x89, 0xce, 0xff, + 0x08, 0xfb, 0x3e, 0xed, 0x40, 0x84, 0x36, 0xa2, 0xa8, 0x04, 0x60, 0xb3, 0x45, 0x01, 0xd8, 0x18, + 0x14, 0x37, 0x15, 0x80, 0x35, 0x8a, 0x02, 0xb0, 0x93, 0x80, 0xb8, 0x4a, 0x78, 0xd9, 0x1c, 0x1b, + 0x5e, 0xaa, 0x81, 0xda, 0x5c, 0x22, 0x50, 0xfb, 0x3e, 0x77, 0xdb, 0x3f, 0x97, 0x60, 0x29, 0xb3, + 0x41, 0xc4, 0x7e, 0xbb, 0x9d, 0x82, 0x81, 0xdb, 0x45, 0x33, 0x14, 0xa1, 0xc0, 0xf7, 0x13, 0x28, + 0xf0, 0x8d, 0x42, 0xfe, 0xef, 0x1c, 0x04, 0xfe, 0x43, 0xb8, 0xb8, 0xef, 0x5a, 0xa9, 0xf0, 0x49, + 0x24, 0x7f, 0x27, 0xdf, 0xef, 0x77, 0x64, 0xa4, 0x5b, 0x3e, 0x61, 0x5e, 0xc9, 0xd9, 0x35, 0x0d, + 0x56, 0x8b, 0x7b, 0x17, 0x61, 0xc8, 0xef, 0xc3, 0xdc, 0xe6, 0x0b, 0xdc, 0xef, 0x1d, 0x3b, 0xfd, + 0x53, 0x68, 0xd4, 0x82, 0x4a, 0x7f, 0x64, 0x09, 0x78, 0x85, 0x7e, 0xaa, 0x91, 0x55, 0x25, 0x19, + 0x59, 0x19, 0xd0, 0x8a, 0x7b, 0x10, 0x4b, 0xb8, 0x48, 0x97, 0xd0, 0xa2, 0xcc, 0x54, 0xf8, 0xac, + 0x2e, 0x4a, 0x82, 0x8e, 0x3d, 0x8f, 0x0d, 0x95, 0xd3, 0xb1, 0xe7, 0x25, 0x77, 0x7b, 0x25, 0xb9, + 0xdb, 0xb5, 0xbf, 0x2a, 0x41, 0x9d, 0xf6, 0xf0, 0xad, 0xf4, 0x17, 0xf9, 0x45, 0x25, 0xce, 0x2f, + 0xa2, 0x34, 0x65, 0x52, 0x4d, 0x53, 0x62, 0xcd, 0xa7, 0x18, 0x39, 0xab, 0xf9, 0x74, 0x44, 0xc7, + 0x9e, 0xa7, 0xad, 0xc2, 0x2c, 0xd7, 0x4d, 0x8c, 0xbc, 0x05, 0x95, 0xd0, 0x1b, 0x4a, 0xeb, 0x09, + 0xbd, 0xa1, 0xf6, 0x67, 0x25, 0x68, 0x74, 0x83, 0xc0, 0xec, 0x1f, 0x9d, 0x62, 0x00, 0x91, 0x72, + 0x65, 0x55, 0xb9, 0xec, 0x20, 0x62, 0x75, 0x27, 0x0b, 0xd4, 0x9d, 0x4a, 0xa8, 0xab, 0x41, 0x53, + 0xea, 0x52, 0xa8, 0xf0, 0x36, 0xa0, 0x5d, 0xe2, 0x05, 0x0f, 0x89, 0xf7, 0xdc, 0xf4, 0xac, 0xd3, + 0xe5, 0x30, 0x08, 0x26, 0xc5, 0xc3, 0xaa, 0xca, 0xb5, 0x29, 0x9d, 0x7d, 0x6b, 0x6f, 0xc3, 0x99, + 0x84, 0xbc, 0xc2, 0x8e, 0xef, 0x42, 0x9d, 0x39, 0x70, 0x11, 0xe7, 0x5e, 0x53, 0x71, 0xde, 0x71, + 0x5e, 0x5e, 0xeb, 0xc2, 0x3c, 0x3d, 0xbb, 0x19, 0x3d, 0xda, 0x78, 0x3f, 0x4c, 0x45, 0x83, 0x0b, + 0xc9, 0xf6, 0xa9, 0x48, 0xf0, 0xef, 0x4a, 0x30, 0xc5, 0xe8, 0x99, 0xf3, 0xf4, 0x1c, 0xd4, 0x3c, + 0xec, 0x12, 0x23, 0x30, 0x07, 0xd1, 0x5b, 0x35, 0x4a, 0xd8, 0x33, 0x07, 0x3e, 0x7b, 0x6a, 0x47, + 0x2b, 0x2d, 0x7b, 0x80, 0xfd, 0x40, 0x3e, 0x58, 0xab, 0x53, 0xda, 0x06, 0x27, 0xd1, 0x29, 0xf1, + 0xed, 0x3f, 0xe0, 0x61, 0xde, 0xa4, 0xce, 0xbe, 0xd1, 0x15, 0xfe, 0x0c, 0x64, 0x0c, 0x28, 0xc7, + 0xde, 0x86, 0x74, 0xa0, 0x9a, 0xc2, 0xe1, 0xa2, 0xb2, 0xf6, 0x11, 0x20, 0x75, 0xcc, 0x62, 0x52, + 0xaf, 0xc2, 0x34, 0x9b, 0x12, 0x19, 0xa7, 0x34, 0x93, 0x83, 0xd6, 0x45, 0xad, 0xf6, 0x05, 0x20, + 0x3e, 0x8b, 0x89, 0xd8, 0xe4, 0xc4, 0x33, 0x3e, 0x26, 0x44, 0xf9, 0xfb, 0x12, 0x9c, 0x49, 0x88, + 0x8e, 0x1e, 0x04, 0x24, 0x64, 0xa7, 0x15, 0x13, 0x72, 0xef, 0x25, 0x3c, 0xf9, 0xd5, 0x94, 0x02, + 0xbf, 0x21, 0x2f, 0xfe, 0xcb, 0x12, 0x40, 0x37, 0x0c, 0x8e, 0x04, 0x20, 0xa5, 0xce, 0x7a, 0x29, + 0x39, 0xeb, 0xb4, 0xce, 0x35, 0x7d, 0xff, 0x39, 0xf1, 0x64, 0x32, 0x10, 0x95, 0x19, 0x98, 0x14, + 0x06, 0x47, 0x12, 0x04, 0xa7, 0xdf, 0xe8, 0x0a, 0x34, 0xf9, 0x93, 0x47, 0xc3, 0xb4, 0x2c, 0x0f, + 0xfb, 0xbe, 0x40, 0xc3, 0x1b, 0x9c, 0xda, 0xe5, 0x44, 0xca, 0x66, 0x5b, 0xd8, 0x09, 0xec, 0xe0, + 0xd8, 0x08, 0xc8, 0xd7, 0xd8, 0x11, 0x61, 0x7e, 0x43, 0x52, 0xf7, 0x28, 0x91, 0xb2, 0x79, 0x78, + 0x60, 0xfb, 0x81, 0x27, 0xd9, 0x24, 0x3a, 0x2b, 0xa8, 0x8c, 0x4d, 0xfb, 0x79, 0x09, 0x5a, 0xbb, + 0xe1, 0x70, 0xc8, 0x67, 0xf6, 0xd4, 0x6b, 0xfb, 0xb6, 0x18, 0x47, 0x39, 0x65, 0x9d, 0xf1, 0x14, + 0x89, 0xc1, 0x7d, 0x7b, 0xf8, 0xe1, 0x36, 0xcc, 0x2b, 0x8a, 0x0a, 0x4b, 0x49, 0xc4, 0x6c, 0xa5, + 0x64, 0xcc, 0xa6, 0xdd, 0x07, 0xc4, 0x33, 0xee, 0xd7, 0x1b, 0x9c, 0x76, 0x16, 0xce, 0x24, 0xda, + 0x8b, 0x63, 0xf2, 0x06, 0x34, 0xc4, 0x7d, 0xbf, 0x30, 0x82, 0x65, 0xa8, 0x52, 0x77, 0xd7, 0xb7, + 0x2d, 0x79, 0xfb, 0x31, 0xe3, 0x12, 0x6b, 0xdd, 0xb6, 0x3c, 0x6d, 0x1b, 0x1a, 0x3a, 0x17, 0x2f, + 0x78, 0x3f, 0x86, 0xa6, 0x78, 0x1d, 0x60, 0x24, 0xde, 0xcf, 0xc4, 0x50, 0x7d, 0x42, 0xb6, 0xde, + 0x70, 0xd4, 0xa2, 0xf6, 0x53, 0xe8, 0xf0, 0x63, 0x3c, 0x21, 0x55, 0x0e, 0xed, 0x63, 0x90, 0x4f, + 0x72, 0x8b, 0x84, 0x27, 0x9b, 0x35, 0x3c, 0xb5, 0xa8, 0x5d, 0x80, 0x73, 0xb9, 0xc2, 0xc5, 0xb8, + 0x5d, 0x68, 0xc5, 0x15, 0x96, 0x2d, 0x2f, 0x7d, 0xd8, 0x65, 0x4e, 0x49, 0xb9, 0xcc, 0x59, 0x8c, + 0x62, 0xb2, 0xb2, 0x3c, 0x4f, 0x58, 0xe4, 0x15, 0x87, 0xd0, 0x95, 0xa2, 0x10, 0x7a, 0x32, 0x11, + 0x42, 0x6b, 0x9f, 0x45, 0xb3, 0x27, 0xf2, 0x97, 0x0f, 0x58, 0x7a, 0xc5, 0xfb, 0x96, 0x6e, 0x6b, + 0x39, 0x67, 0x70, 0x9c, 0x43, 0x57, 0x98, 0xb5, 0xeb, 0xd0, 0x48, 0x3a, 0x30, 0xc5, 0x2d, 0x95, + 0x32, 0x6e, 0xa9, 0x99, 0xf2, 0x48, 0xb7, 0x52, 0x71, 0x66, 0x66, 0x46, 0x53, 0x51, 0xe6, 0xfb, + 0x09, 0xdf, 0x74, 0x29, 0xbe, 0x87, 0xf9, 0x0d, 0xb9, 0xa5, 0x05, 0xe1, 0xa3, 0x1f, 0xfa, 0xb4, + 0xbd, 0x18, 0xa2, 0x76, 0x19, 0xea, 0xfb, 0x45, 0x8f, 0x65, 0x27, 0xe5, 0xc5, 0xe6, 0xdb, 0x30, + 0xdf, 0x0b, 0x88, 0x67, 0x0e, 0xf0, 0x16, 0x73, 0x20, 0x87, 0x36, 0xbf, 0xb8, 0x0b, 0xc3, 0xe8, + 0x68, 0x63, 0xdf, 0xda, 0x7f, 0x94, 0x60, 0xee, 0xa1, 0x3d, 0xc4, 0xfe, 0xb1, 0x1f, 0xe0, 0xd1, + 0x3e, 0x4b, 0x72, 0xce, 0x43, 0x8d, 0x8e, 0xcb, 0x0f, 0xcc, 0x91, 0x2b, 0x2f, 0x3e, 0x23, 0x02, + 0x5d, 0x2e, 0x9f, 0x8b, 0x96, 0x80, 0x88, 0x9a, 0x60, 0x66, 0x7a, 0xa5, 0x49, 0x9f, 0x20, 0xa1, + 0xf7, 0x00, 0x42, 0x1f, 0x5b, 0xe2, 0xb2, 0xb3, 0x92, 0x3a, 0x95, 0xf7, 0xd5, 0x2b, 0x29, 0xca, + 0xc7, 0x6f, 0x3e, 0xdf, 0x87, 0xba, 0xed, 0x10, 0x0b, 0xb3, 0x2b, 0x29, 0x4b, 0x80, 0x25, 0xf9, + 0xad, 0x80, 0x33, 0xee, 0xfb, 0xd8, 0xd2, 0x7e, 0x4f, 0x9c, 0x42, 0x72, 0xf2, 0xc4, 0x9a, 0x6f, + 0xc2, 0x3c, 0xf7, 0x2d, 0x87, 0xd1, 0xa0, 0xa5, 0xcd, 0xc5, 0x69, 0x46, 0x6a, 0x42, 0xf4, 0x96, + 0x2d, 0x02, 0x06, 0xd9, 0x42, 0xbb, 0x07, 0x67, 0x13, 0xb9, 0xc5, 0x29, 0xa2, 0x7d, 0xed, 0x51, + 0x0a, 0x1a, 0x88, 0x0d, 0x52, 0x64, 0xe0, 0xd2, 0x1e, 0x0b, 0x32, 0x70, 0x9f, 0x67, 0xe0, 0xbe, + 0xa6, 0xc3, 0x72, 0x02, 0xb1, 0x48, 0x28, 0xf2, 0x7e, 0x2a, 0xfa, 0xb9, 0x50, 0x20, 0x2c, 0x15, + 0x06, 0xfd, 0x6f, 0x09, 0x16, 0xf2, 0x18, 0x5e, 0x13, 0x1b, 0xfb, 0x49, 0xc1, 0x13, 0x94, 0xdb, + 0x63, 0xb5, 0xf9, 0xad, 0xa0, 0x88, 0x8f, 0xa1, 0x93, 0x37, 0x7b, 0xd9, 0xa5, 0xa8, 0x9c, 0x60, + 0x29, 0xfe, 0xaf, 0xac, 0xa0, 0xbd, 0xdd, 0x20, 0xf0, 0xec, 0x83, 0x90, 0x1a, 0xef, 0x77, 0x85, + 0xcd, 0x7c, 0x12, 0xe1, 0x0e, 0x7c, 0xfe, 0xae, 0x65, 0x5b, 0xc5, 0xbd, 0xe6, 0x62, 0x0f, 0x3b, + 0x49, 0xec, 0x81, 0xe3, 0xb8, 0x37, 0xc7, 0x8a, 0x79, 0x63, 0xa1, 0xba, 0x97, 0x25, 0x68, 0x26, + 0xd7, 0x01, 0x7d, 0x04, 0x60, 0x46, 0x9a, 0x0b, 0x93, 0x3f, 0x3f, 0x6e, 0x74, 0xba, 0xc2, 0x8f, + 0x2e, 0x43, 0xa5, 0xef, 0x86, 0x62, 0x45, 0xe2, 0x0b, 0xbd, 0x75, 0x37, 0xe4, 0x0e, 0x80, 0xd6, + 0xd2, 0x7c, 0x82, 0x3f, 0xcc, 0xc8, 0x78, 0xae, 0xa7, 0x8c, 0xcc, 0x59, 0x05, 0x0f, 0x7a, 0x00, + 0xcd, 0xe7, 0x9e, 0x1d, 0x98, 0x07, 0x43, 0x6c, 0x0c, 0xcd, 0x63, 0xec, 0x09, 0xcf, 0x55, 0xec, + 0x65, 0x1a, 0x92, 0xff, 0x09, 0x65, 0xd7, 0x42, 0xa8, 0xca, 0xfe, 0x5f, 0xe1, 0x91, 0x1f, 0xc3, + 0x52, 0x48, 0xd9, 0x0c, 0xf6, 0x38, 0xc4, 0x31, 0x1d, 0x62, 0xf8, 0x98, 0x9e, 0x92, 0xf2, 0x2d, + 0x68, 0xbe, 0xb7, 0x5c, 0x60, 0x8d, 0xd6, 0x89, 0x87, 0xb7, 0x4d, 0x87, 0xf4, 0x78, 0x0b, 0x6d, + 0x04, 0x75, 0x65, 0x38, 0xaf, 0xe8, 0xf9, 0x13, 0x98, 0x97, 0x57, 0xa5, 0x3e, 0x0e, 0x84, 0x5f, + 0x1f, 0xd7, 0xe7, 0x9c, 0x60, 0xef, 0xe1, 0x80, 0x79, 0xf7, 0x1b, 0xe7, 0xa1, 0x2a, 0xff, 0xa8, + 0x83, 0x66, 0xa0, 0xb2, 0xb7, 0xbe, 0xdb, 0x9a, 0xa0, 0x1f, 0xfb, 0x1b, 0xbb, 0xad, 0xd2, 0x8d, + 0x11, 0xb4, 0xd2, 0x7f, 0x52, 0x41, 0x4b, 0x70, 0x66, 0x57, 0xdf, 0xd9, 0xed, 0x3e, 0xea, 0xee, + 0x6d, 0xed, 0x6c, 0x1b, 0xbb, 0xfa, 0xd6, 0xe7, 0xdd, 0xbd, 0xcd, 0xd6, 0x04, 0xba, 0x04, 0x17, + 0xd4, 0x8a, 0xdf, 0xdd, 0xe9, 0xed, 0x19, 0x7b, 0x3b, 0xc6, 0xfa, 0xce, 0xf6, 0x5e, 0x77, 0x6b, + 0x7b, 0x53, 0x6f, 0x95, 0xd0, 0x05, 0x58, 0x56, 0x59, 0x3e, 0xdd, 0xda, 0xd8, 0xd2, 0x37, 0xd7, + 0xe9, 0x77, 0xf7, 0x49, 0xab, 0x7c, 0xe3, 0x1e, 0xcc, 0xa5, 0xde, 0x77, 0xa1, 0x79, 0x68, 0xf4, + 0xba, 0xdb, 0x1b, 0x9f, 0xee, 0x7c, 0x61, 0xe8, 0x9b, 0xdd, 0x8d, 0x2f, 0x5b, 0x13, 0x68, 0x01, + 0x5a, 0x92, 0xb4, 0xbd, 0xb3, 0xc7, 0xa9, 0xa5, 0x1b, 0x5f, 0xa7, 0x4c, 0x12, 0xa3, 0xb3, 0x30, + 0x1f, 0xf5, 0x6d, 0xac, 0xeb, 0x9b, 0xdd, 0xbd, 0xcd, 0x8d, 0xd6, 0x44, 0x92, 0xac, 0xef, 0x6f, + 0x6f, 0x6f, 0x6d, 0x3f, 0x6a, 0x95, 0xa8, 0xd4, 0x98, 0xbc, 0xf9, 0xc5, 0x16, 0x65, 0x2e, 0x27, + 0x99, 0xf7, 0xb7, 0x1f, 0x6f, 0xef, 0xfc, 0x64, 0xbb, 0x55, 0x59, 0xfb, 0xf7, 0x06, 0x34, 0x65, + 0x8c, 0x82, 0x3d, 0x76, 0x7f, 0x7f, 0x1f, 0x66, 0xe4, 0x5f, 0xb6, 0x62, 0x67, 0x95, 0xfc, 0x7f, + 0x59, 0xa7, 0x9d, 0xad, 0x10, 0x61, 0xe0, 0x04, 0xda, 0x65, 0x61, 0x99, 0xf2, 0x96, 0xee, 0x82, + 0x1a, 0x0d, 0x65, 0x1e, 0xeb, 0x75, 0x56, 0x8a, 0xaa, 0x23, 0x89, 0x3d, 0x1a, 0x70, 0xa9, 0x8f, + 0xb3, 0xd1, 0x8a, 0x1a, 0x26, 0x64, 0x1f, 0x7d, 0x77, 0x2e, 0x16, 0xd6, 0x47, 0x42, 0xbf, 0x84, + 0x56, 0xfa, 0x59, 0x36, 0x8a, 0xf1, 0xb2, 0x82, 0x27, 0xdf, 0x9d, 0x4b, 0x63, 0x38, 0x54, 0xd1, + 0x99, 0x07, 0xcc, 0xab, 0x63, 0x1e, 0x94, 0xa6, 0x45, 0x17, 0x3d, 0x39, 0xe5, 0x53, 0x91, 0x7c, + 0x03, 0x87, 0xd4, 0x67, 0xc3, 0x39, 0x6f, 0x21, 0x95, 0xa9, 0xc8, 0x7f, 0x3c, 0xa7, 0x4d, 0xa0, + 0xcf, 0x61, 0x2e, 0x75, 0x75, 0x8b, 0xe2, 0x56, 0xf9, 0x17, 0xd1, 0x9d, 0xd5, 0x62, 0x86, 0xe4, + 0xba, 0xa9, 0x17, 0xb3, 0x89, 0x75, 0xcb, 0xb9, 0xed, 0x4d, 0xac, 0x5b, 0xee, 0x8d, 0x2e, 0x33, + 0xaf, 0xc4, 0xf5, 0xab, 0x62, 0x5e, 0x79, 0x77, 0xbd, 0x9d, 0x95, 0xa2, 0x6a, 0x75, 0xf8, 0xa9, + 0xab, 0x57, 0x65, 0xf8, 0xf9, 0x37, 0xba, 0x9d, 0xd5, 0x62, 0x86, 0xf4, 0x5a, 0xc5, 0xf7, 0x40, + 0xa9, 0xb5, 0xca, 0x5c, 0x3b, 0xa6, 0xd6, 0x2a, 0x7b, 0x81, 0x24, 0xd6, 0x2a, 0x75, 0x6d, 0x73, + 0xb1, 0x18, 0xa5, 0xce, 0xac, 0x55, 0x3e, 0x8c, 0xad, 0x4d, 0xa0, 0x6f, 0xa0, 0x5d, 0x84, 0x00, + 0xa3, 0x38, 0x46, 0x78, 0x05, 0x44, 0xdd, 0xb9, 0x7e, 0x02, 0xce, 0xa8, 0xcb, 0x2e, 0x54, 0x25, + 0xdc, 0x8b, 0x62, 0x87, 0x92, 0xc2, 0x98, 0x3b, 0xcb, 0x39, 0x35, 0x91, 0x88, 0xf7, 0x61, 0x92, + 0x52, 0xd1, 0x42, 0x82, 0x49, 0x36, 0x3d, 0x9b, 0xa2, 0x46, 0xcd, 0x3e, 0x84, 0x69, 0x8e, 0x5d, + 0xa2, 0x38, 0x53, 0x4b, 0x00, 0xab, 0x9d, 0xa5, 0x0c, 0x3d, 0x6a, 0xfc, 0x19, 0xff, 0xe7, 0xa8, + 0x00, 0x21, 0xd1, 0xb9, 0xc4, 0x9f, 0x8c, 0x92, 0x50, 0x67, 0xe7, 0x7c, 0x7e, 0xa5, 0x6a, 0x22, + 0xa9, 0xf0, 0x63, 0xa5, 0x28, 0x3e, 0xcc, 0x98, 0x48, 0x7e, 0xbc, 0xa9, 0x4d, 0x20, 0x83, 0xe3, + 0x79, 0x29, 0xc1, 0x5a, 0xbe, 0x6d, 0x25, 0x84, 0x5f, 0x1e, 0xcb, 0x13, 0x75, 0x70, 0x00, 0x67, + 0x72, 0x90, 0x00, 0x74, 0x39, 0xb5, 0xf8, 0x79, 0x20, 0x44, 0xe7, 0xad, 0xf1, 0x4c, 0xea, 0x12, + 0x09, 0xf3, 0x5e, 0xcc, 0xa4, 0xc7, 0xe9, 0x25, 0x4a, 0x1b, 0xf3, 0xda, 0x1f, 0x57, 0x60, 0x96, + 0xe3, 0x35, 0xe2, 0x4c, 0x7b, 0x04, 0x10, 0x43, 0x9c, 0xa8, 0x93, 0x18, 0x66, 0x02, 0xeb, 0xed, + 0x9c, 0xcb, 0xad, 0x53, 0x17, 0x5f, 0x01, 0x10, 0x95, 0xc5, 0xcf, 0x62, 0xa0, 0xca, 0xe2, 0xe7, + 0x60, 0x8e, 0xda, 0x04, 0xda, 0x80, 0x5a, 0x04, 0x59, 0x21, 0x05, 0xe9, 0x4a, 0xe1, 0x6d, 0x9d, + 0x4e, 0x5e, 0x95, 0xaa, 0x91, 0x02, 0x43, 0x29, 0x1a, 0x65, 0xc1, 0x2d, 0x45, 0xa3, 0x3c, 0xe4, + 0x2a, 0x1e, 0x1d, 0x4f, 0x75, 0xd3, 0xa3, 0x4b, 0xa0, 0x07, 0xe9, 0xd1, 0x25, 0xb3, 0x63, 0x6d, + 0xe2, 0xd3, 0xf3, 0xbf, 0xf8, 0xd5, 0x4a, 0xe9, 0x3f, 0x7f, 0xb5, 0x32, 0xf1, 0x47, 0x2f, 0x57, + 0x4a, 0xbf, 0x78, 0xb9, 0x52, 0xfa, 0xb7, 0x97, 0x2b, 0xa5, 0xff, 0x7e, 0xb9, 0x52, 0xfa, 0xd9, + 0xff, 0xac, 0x4c, 0x1c, 0x4c, 0xb3, 0xbf, 0x52, 0xbf, 0xf7, 0xeb, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xa6, 0x04, 0x77, 0x58, 0xfe, 0x3e, 0x00, 0x00, } diff --git a/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto new file mode 100644 index 0000000000..93428edc8a --- /dev/null +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto @@ -0,0 +1,1155 @@ +// To regenerate api.pb.go run hack/update-generated-runtime.sh +syntax = 'proto3'; + +package runtime; + +import "github.com/gogo/protobuf/gogoproto/gogo.proto"; + +option (gogoproto.goproto_stringer_all) = false; +option (gogoproto.stringer_all) = true; +option (gogoproto.goproto_getters_all) = true; +option (gogoproto.marshaler_all) = true; +option (gogoproto.sizer_all) = true; +option (gogoproto.unmarshaler_all) = true; +option (gogoproto.goproto_unrecognized_all) = false; + +// Runtime service defines the public APIs for remote container runtimes +service RuntimeService { + // Version returns the runtime name, runtime version, and runtime API version. + rpc Version(VersionRequest) returns (VersionResponse) {} + + // RunPodSandbox creates and starts a pod-level sandbox. Runtimes must ensure + // the sandbox is in the ready state on success. + rpc RunPodSandbox(RunPodSandboxRequest) returns (RunPodSandboxResponse) {} + // 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. + rpc StopPodSandbox(StopPodSandboxRequest) returns (StopPodSandboxResponse) {} + // 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. + rpc RemovePodSandbox(RemovePodSandboxRequest) returns (RemovePodSandboxResponse) {} + // PodSandboxStatus returns the status of the PodSandbox. If the PodSandbox is not + // present, returns an error. + rpc PodSandboxStatus(PodSandboxStatusRequest) returns (PodSandboxStatusResponse) {} + // ListPodSandbox returns a list of PodSandboxes. + rpc ListPodSandbox(ListPodSandboxRequest) returns (ListPodSandboxResponse) {} + + // CreateContainer creates a new container in specified PodSandbox + rpc CreateContainer(CreateContainerRequest) returns (CreateContainerResponse) {} + // StartContainer starts the container. + rpc StartContainer(StartContainerRequest) returns (StartContainerResponse) {} + // 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. + // TODO: what must the runtime do after the grace period is reached? + rpc StopContainer(StopContainerRequest) returns (StopContainerResponse) {} + // 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. + rpc RemoveContainer(RemoveContainerRequest) returns (RemoveContainerResponse) {} + // ListContainers lists all containers by filters. + rpc ListContainers(ListContainersRequest) returns (ListContainersResponse) {} + // ContainerStatus returns status of the container. If the container is not + // present, returns an error. + rpc ContainerStatus(ContainerStatusRequest) returns (ContainerStatusResponse) {} + // UpdateContainerResources updates ContainerConfig of the container. + rpc UpdateContainerResources(UpdateContainerResourcesRequest) returns (UpdateContainerResourcesResponse) {} + + // ExecSync runs a command in a container synchronously. + rpc ExecSync(ExecSyncRequest) returns (ExecSyncResponse) {} + // Exec prepares a streaming endpoint to execute a command in the container. + rpc Exec(ExecRequest) returns (ExecResponse) {} + // Attach prepares a streaming endpoint to attach to a running container. + rpc Attach(AttachRequest) returns (AttachResponse) {} + // PortForward prepares a streaming endpoint to forward ports from a PodSandbox. + rpc PortForward(PortForwardRequest) returns (PortForwardResponse) {} + + // ContainerStats returns stats of the container. If the container does not + // exist, the call returns an error. + rpc ContainerStats(ContainerStatsRequest) returns (ContainerStatsResponse) {} + // ListContainerStats returns stats of all running containers. + rpc ListContainerStats(ListContainerStatsRequest) returns (ListContainerStatsResponse) {} + + // UpdateRuntimeConfig updates the runtime configuration based on the given request. + rpc UpdateRuntimeConfig(UpdateRuntimeConfigRequest) returns (UpdateRuntimeConfigResponse) {} + + // Status returns the status of the runtime. + rpc Status(StatusRequest) returns (StatusResponse) {} +} + +// ImageService defines the public APIs for managing images. +service ImageService { + // ListImages lists existing images. + rpc ListImages(ListImagesRequest) returns (ListImagesResponse) {} + // ImageStatus returns the status of the image. If the image is not + // present, returns a response with ImageStatusResponse.Image set to + // nil. + rpc ImageStatus(ImageStatusRequest) returns (ImageStatusResponse) {} + // PullImage pulls an image with authentication config. + rpc PullImage(PullImageRequest) returns (PullImageResponse) {} + // RemoveImage removes the image. + // This call is idempotent, and must not return an error if the image has + // already been removed. + rpc RemoveImage(RemoveImageRequest) returns (RemoveImageResponse) {} + // ImageFSInfo returns information of the filesystem that is used to store images. + rpc ImageFsInfo(ImageFsInfoRequest) returns (ImageFsInfoResponse) {} +} + +message VersionRequest { + // Version of the kubelet runtime API. + string version = 1; +} + +message VersionResponse { + // Version of the kubelet runtime API. + string version = 1; + // Name of the container runtime. + string runtime_name = 2; + // Version of the container runtime. The string must be + // semver-compatible. + string runtime_version = 3; + // API version of the container runtime. The string must be + // semver-compatible. + string runtime_api_version = 4; +} + +// DNSConfig specifies the DNS servers and search domains of a sandbox. +message DNSConfig { + // List of DNS servers of the cluster. + repeated string servers = 1; + // List of DNS search domains of the cluster. + repeated string searches = 2; + // List of DNS options. See https://linux.die.net/man/5/resolv.conf + // for all available options. + repeated string options = 3; +} + +enum Protocol { + TCP = 0; + UDP = 1; +} + +// PortMapping specifies the port mapping configurations of a sandbox. +message PortMapping { + // Protocol of the port mapping. + Protocol protocol = 1; + // Port number within the container. Default: 0 (not specified). + int32 container_port = 2; + // Port number on the host. Default: 0 (not specified). + int32 host_port = 3; + // Host IP. + string host_ip = 4; +} + +enum MountPropagation { + // No mount propagation ("private" in Linux terminology). + PROPAGATION_PRIVATE = 0; + // Mounts get propagated from the host to the container ("rslave" in Linux). + PROPAGATION_HOST_TO_CONTAINER = 1; + // Mounts get propagated from the host to the container and from the + // container to the host ("rshared" in Linux). + PROPAGATION_BIDIRECTIONAL = 2; +} + +// Mount specifies a host volume to mount into a container. +message Mount { + // Path of the mount within the container. + string container_path = 1; + // Path of the mount on the host. + string host_path = 2; + // If set, the mount is read-only. + bool readonly = 3; + // If set, the mount needs SELinux relabeling. + bool selinux_relabel = 4; + // Requested propagation mode. + MountPropagation propagation = 5; +} + +// NamespaceOption provides options for Linux namespaces. +message NamespaceOption { + // If set, use the host's network namespace. + bool host_network = 1; + // If set, use the host's PID namespace. + bool host_pid = 2; + // If set, use the host's IPC namespace. + bool host_ipc = 3; +} + +// Int64Value is the wrapper of int64. +message Int64Value { + // The value. + int64 value = 1; +} + +// 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. +message LinuxSandboxSecurityContext { + // Configurations for the sandbox's namespaces. + // This will be used only if the PodSandbox uses namespace for isolation. + NamespaceOption namespace_options = 1; + // Optional SELinux context to be applied. + SELinuxOption selinux_options = 2; + // UID to run sandbox processes as, when applicable. + Int64Value run_as_user = 3; + // If set, the root filesystem of the sandbox is read-only. + bool readonly_rootfs = 4; + // List of groups applied to the first process run in the sandbox, in + // addition to the sandbox's primary GID. + repeated int64 supplemental_groups = 5; + // 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. + bool privileged = 6; + // Seccomp profile for the sandbox, candidate values are: + // * docker/default: the default profile for the docker container runtime + // * unconfined: unconfined profile, ie, no seccomp sandboxing + // * localhost/: the profile installed on the node. + // is the full path of the profile. + // Default: "", which is identical with unconfined. + string seccomp_profile_path = 7; +} + +// LinuxPodSandboxConfig holds platform-specific configurations for Linux +// host platforms and Linux-based containers. +message LinuxPodSandboxConfig { + // Parent cgroup of the PodSandbox. + // The cgroupfs style syntax will be used, but the container runtime can + // convert it to systemd semantics if needed. + string cgroup_parent = 1; + // LinuxSandboxSecurityContext holds sandbox security attributes. + LinuxSandboxSecurityContext security_context = 2; + // Sysctls holds linux sysctls config for the sandbox. + map sysctls = 3; +} + +// 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. +message PodSandboxMetadata { + // Pod name of the sandbox. Same as the pod name in the PodSpec. + string name = 1; + // Pod UID of the sandbox. Same as the pod UID in the PodSpec. + string uid = 2; + // Pod namespace of the sandbox. Same as the pod namespace in the PodSpec. + string namespace = 3; + // Attempt number of creating the sandbox. Default: 0. + uint32 attempt = 4; +} + +// PodSandboxConfig holds all the required and optional fields for creating a +// sandbox. +message PodSandboxConfig { + // 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. + PodSandboxMetadata metadata = 1; + // Hostname of the sandbox. + string hostname = 2; + // 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//` + // 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. + string log_directory = 3; + // DNS config for the sandbox. + DNSConfig dns_config = 4; + // Port mappings for the sandbox. + repeated PortMapping port_mappings = 5; + // Key-value pairs that may be used to scope and select individual resources. + map labels = 6; + // 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. + map annotations = 7; + // Optional configurations specific to Linux hosts. + LinuxPodSandboxConfig linux = 8; +} + +message RunPodSandboxRequest { + // Configuration for creating a PodSandbox. + PodSandboxConfig config = 1; +} + +message RunPodSandboxResponse { + // ID of the PodSandbox to run. + string pod_sandbox_id = 1; +} + +message StopPodSandboxRequest { + // ID of the PodSandbox to stop. + string pod_sandbox_id = 1; +} + +message StopPodSandboxResponse {} + +message RemovePodSandboxRequest { + // ID of the PodSandbox to remove. + string pod_sandbox_id = 1; +} + +message RemovePodSandboxResponse {} + +message PodSandboxStatusRequest { + // ID of the PodSandbox for which to retrieve status. + string pod_sandbox_id = 1; + // Verbose indicates whether to return extra information about the pod sandbox. + bool verbose = 2; +} + +// PodSandboxNetworkStatus is the status of the network for a PodSandbox. +message PodSandboxNetworkStatus { + // IP address of the PodSandbox. + string ip = 1; +} + +// Namespace contains paths to the namespaces. +message Namespace { + // Namespace options for Linux namespaces. + NamespaceOption options = 2; +} + +// LinuxSandboxStatus contains status specific to Linux sandboxes. +message LinuxPodSandboxStatus { + // Paths to the sandbox's namespaces. + Namespace namespaces = 1; +} + +enum PodSandboxState { + SANDBOX_READY = 0; + SANDBOX_NOTREADY = 1; +} + +// PodSandboxStatus contains the status of the PodSandbox. +message PodSandboxStatus { + // ID of the sandbox. + string id = 1; + // Metadata of the sandbox. + PodSandboxMetadata metadata = 2; + // State of the sandbox. + PodSandboxState state = 3; + // Creation timestamp of the sandbox in nanoseconds. Must be > 0. + int64 created_at = 4; + // Network contains network status if network is handled by the runtime. + PodSandboxNetworkStatus network = 5; + // Linux-specific status to a pod sandbox. + LinuxPodSandboxStatus linux = 6; + // Labels are key-value pairs that may be used to scope and select individual resources. + map labels = 7; + // 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. + map annotations = 8; +} + +message PodSandboxStatusResponse { + // Status of the PodSandbox. + PodSandboxStatus status = 1; + // Info is extra information of the PodSandbox. The key could be abitrary 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. + map info = 2; +} + +// PodSandboxStateValue is the wrapper of PodSandboxState. +message PodSandboxStateValue { + // State of the sandbox. + PodSandboxState state = 1; +} + +// PodSandboxFilter is used to filter a list of PodSandboxes. +// All those fields are combined with 'AND' +message PodSandboxFilter { + // ID of the sandbox. + string id = 1; + // State of the sandbox. + PodSandboxStateValue state = 2; + // LabelSelector to select matches. + // Only api.MatchLabels is supported for now and the requirements + // are ANDed. MatchExpressions is not supported yet. + map label_selector = 3; +} + +message ListPodSandboxRequest { + // PodSandboxFilter to filter a list of PodSandboxes. + PodSandboxFilter filter = 1; +} + + +// PodSandbox contains minimal information about a sandbox. +message PodSandbox { + // ID of the PodSandbox. + string id = 1; + // Metadata of the PodSandbox. + PodSandboxMetadata metadata = 2; + // State of the PodSandbox. + PodSandboxState state = 3; + // Creation timestamps of the PodSandbox in nanoseconds. Must be > 0. + int64 created_at = 4; + // Labels of the PodSandbox. + map labels = 5; + // 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. + map annotations = 6; +} + +message ListPodSandboxResponse { + // List of PodSandboxes. + repeated PodSandbox items = 1; +} + +// ImageSpec is an internal representation of an image. Currently, it wraps the +// value of a Container's Image field (e.g. imageID or imageDigest), but in the +// future it will include more detailed information about the different image types. +message ImageSpec { + string image = 1; +} + +message KeyValue { + string key = 1; + string value = 2; +} + +// LinuxContainerResources specifies Linux specific configuration for +// resources. +// TODO: Consider using Resources from opencontainers/runtime-spec/specs-go +// directly. +message LinuxContainerResources { + // CPU CFS (Completely Fair Scheduler) period. Default: 0 (not specified). + int64 cpu_period = 1; + // CPU CFS (Completely Fair Scheduler) quota. Default: 0 (not specified). + int64 cpu_quota = 2; + // CPU shares (relative weight vs. other containers). Default: 0 (not specified). + int64 cpu_shares = 3; + // Memory limit in bytes. Default: 0 (not specified). + int64 memory_limit_in_bytes = 4; + // OOMScoreAdj adjusts the oom-killer score. Default: 0 (not specified). + int64 oom_score_adj = 5; + // CpusetCpus constrains the allowed set of logical CPUs. Default: "" (not specified). + string cpuset_cpus = 6; + // CpusetMems constrains the allowed set of memory nodes. Default: "" (not specified). + string cpuset_mems = 7; +} + +// SELinuxOption are the labels to be applied to the container. +message SELinuxOption { + string user = 1; + string role = 2; + string type = 3; + string level = 4; +} + +// Capability contains the container capabilities to add or drop +message Capability { + // List of capabilities to add. + repeated string add_capabilities = 1; + // List of capabilities to drop. + repeated string drop_capabilities = 2; +} + +// LinuxContainerSecurityContext holds linux security configuration that will be applied to a container. +message LinuxContainerSecurityContext { + // Capabilities to add or drop. + Capability capabilities = 1; + // 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). + bool privileged = 2; + // Configurations for the container's namespaces. + // Only used if the container uses namespace for isolation. + NamespaceOption namespace_options = 3; + // SELinux context to be optionally applied. + SELinuxOption selinux_options = 4; + // UID to run the container process as. Only one of run_as_user and + // run_as_username can be specified at a time. + Int64Value run_as_user = 5; + // 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. + string run_as_username = 6; + // If set, the root filesystem of the container is read-only. + bool readonly_rootfs = 7; + // List of groups applied to the first process run in the container, in + // addition to the container's primary GID. + repeated int64 supplemental_groups = 8; + // AppArmor profile for the container, candidate values are: + // * runtime/default: equivalent to not specifying a profile. + // * unconfined: no profiles are loaded + // * localhost/: profile loaded on the node + // (localhost) by name. The possible profile names are detailed at + // http://wiki.apparmor.net/index.php/AppArmor_Core_Policy_Reference + string apparmor_profile = 9; + // Seccomp profile for the container, candidate values are: + // * docker/default: the default profile for the docker container runtime + // * unconfined: unconfined profile, ie, no seccomp sandboxing + // * localhost/: the profile installed on the node. + // is the full path of the profile. + // Default: "", which is identical with unconfined. + string seccomp_profile_path = 10; + // no_new_privs defines if the flag for no_new_privs should be set on the + // container. + bool no_new_privs = 11; +} + +// LinuxContainerConfig contains platform-specific configuration for +// Linux-based containers. +message LinuxContainerConfig { + // Resources specification for the container. + LinuxContainerResources resources = 1; + // LinuxContainerSecurityContext configuration for the container. + LinuxContainerSecurityContext security_context = 2; +} + +// 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. +message ContainerMetadata { + // Name of the container. Same as the container name in the PodSpec. + string name = 1; + // Attempt number of creating the container. Default: 0. + uint32 attempt = 2; +} + +// Device specifies a host device to mount into a container. +message Device { + // Path of the device within the container. + string container_path = 1; + // Path of the device on the host. + string host_path = 2; + // 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. + string permissions = 3; +} + +// ContainerConfig holds all the required and optional fields for creating a +// container. +message ContainerConfig { + // 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. + ContainerMetadata metadata = 1 ; + // Image to use. + ImageSpec image = 2; + // Command to execute (i.e., entrypoint for docker) + repeated string command = 3; + // Args for the Command (i.e., command for docker) + repeated string args = 4; + // Current working directory of the command. + string working_dir = 5; + // List of environment variable to set in the container. + repeated KeyValue envs = 6; + // Mounts for the container. + repeated Mount mounts = 7; + // Devices for the container. + repeated Device devices = 8; + // 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 + map labels = 9; + // 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. + map annotations = 10; + // Path relative to PodSandboxConfig.LogDirectory for container to store + // the log (STDOUT and STDERR) on the host. + // E.g., + // PodSandboxConfig.LogDirectory = `/var/log/pods//` + // 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. + string log_path = 11; + + // Variables for interactive containers, these have very specialized + // use-cases (e.g. debugging). + // TODO: Determine if we need to continue supporting these fields that are + // part of Kubernetes's Container Spec. + bool stdin = 12; + bool stdin_once = 13; + bool tty = 14; + + // Configuration specific to Linux containers. + LinuxContainerConfig linux = 15; +} + +message CreateContainerRequest { + // ID of the PodSandbox in which the container should be created. + string pod_sandbox_id = 1; + // Config of the container. + ContainerConfig config = 2; + // 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. + PodSandboxConfig sandbox_config = 3; +} + +message CreateContainerResponse { + // ID of the created container. + string container_id = 1; +} + +message StartContainerRequest { + // ID of the container to start. + string container_id = 1; +} + +message StartContainerResponse {} + +message StopContainerRequest { + // ID of the container to stop. + string container_id = 1; + // Timeout in seconds to wait for the container to stop before forcibly + // terminating it. Default: 0 (forcibly terminate the container immediately) + int64 timeout = 2; +} + +message StopContainerResponse {} + +message RemoveContainerRequest { + // ID of the container to remove. + string container_id = 1; +} + +message RemoveContainerResponse {} + +enum ContainerState { + CONTAINER_CREATED = 0; + CONTAINER_RUNNING = 1; + CONTAINER_EXITED = 2; + CONTAINER_UNKNOWN = 3; +} + +// ContainerStateValue is the wrapper of ContainerState. +message ContainerStateValue { + // State of the container. + ContainerState state = 1; +} + +// ContainerFilter is used to filter containers. +// All those fields are combined with 'AND' +message ContainerFilter { + // ID of the container. + string id = 1; + // State of the container. + ContainerStateValue state = 2; + // ID of the PodSandbox. + string pod_sandbox_id = 3; + // LabelSelector to select matches. + // Only api.MatchLabels is supported for now and the requirements + // are ANDed. MatchExpressions is not supported yet. + map label_selector = 4; +} + +message ListContainersRequest { + ContainerFilter filter = 1; +} + +// Container provides the runtime information for a container, such as ID, hash, +// state of the container. +message Container { + // ID of the container, used by the container runtime to identify + // a container. + string id = 1; + // ID of the sandbox to which this container belongs. + string pod_sandbox_id = 2; + // Metadata of the container. + ContainerMetadata metadata = 3; + // Spec of the image. + ImageSpec image = 4; + // Reference to the image in use. For most runtimes, this should be an + // image ID. + string image_ref = 5; + // State of the container. + ContainerState state = 6; + // Creation time of the container in nanoseconds. + int64 created_at = 7; + // Key-value pairs that may be used to scope and select individual resources. + map labels = 8; + // 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. + map annotations = 9; +} + +message ListContainersResponse { + // List of containers. + repeated Container containers = 1; +} + +message ContainerStatusRequest { + // ID of the container for which to retrieve status. + string container_id = 1; + // Verbose indicates whether to return extra information about the container. + bool verbose = 2; +} + +// ContainerStatus represents the status of a container. +message ContainerStatus { + // ID of the container. + string id = 1; + // Metadata of the container. + ContainerMetadata metadata = 2; + // Status of the container. + ContainerState state = 3; + // Creation time of the container in nanoseconds. + int64 created_at = 4; + // Start time of the container in nanoseconds. Default: 0 (not specified). + int64 started_at = 5; + // Finish time of the container in nanoseconds. Default: 0 (not specified). + int64 finished_at = 6; + // Exit code of the container. Only required when finished_at != 0. Default: 0. + int32 exit_code = 7; + // Spec of the image. + ImageSpec image = 8; + // Reference to the image in use. For most runtimes, this should be an + // image ID + string image_ref = 9; + // Brief CamelCase string explaining why container is in its current state. + string reason = 10; + // Human-readable message indicating details about why container is in its + // current state. + string message = 11; + // Key-value pairs that may be used to scope and select individual resources. + map labels = 12; + // 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. + map annotations = 13; + // Mounts for the container. + repeated Mount mounts = 14; + // Log path of container. + string log_path = 15; +} + +message ContainerStatusResponse { + // Status of the container. + ContainerStatus status = 1; + // Info is extra information of the Container. The key could be abitrary 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. + map info = 2; +} + +message UpdateContainerResourcesRequest { + // ID of the container to update. + string container_id = 1; + // Resource configuration specific to Linux containers. + LinuxContainerResources linux = 2; +} + +message UpdateContainerResourcesResponse {} + +message ExecSyncRequest { + // ID of the container. + string container_id = 1; + // Command to execute. + repeated string cmd = 2; + // Timeout in seconds to stop the command. Default: 0 (run forever). + int64 timeout = 3; +} + +message ExecSyncResponse { + // Captured command stdout output. + bytes stdout = 1; + // Captured command stderr output. + bytes stderr = 2; + // Exit code the command finished with. Default: 0 (success). + int32 exit_code = 3; +} + +message ExecRequest { + // ID of the container in which to execute the command. + string container_id = 1; + // Command to execute. + repeated string cmd = 2; + // Whether to exec the command in a TTY. + bool tty = 3; + // Whether to stream stdin. + // One of `stdin`, `stdout`, and `stderr` MUST be true. + bool stdin = 4; + // Whether to stream stdout. + // One of `stdin`, `stdout`, and `stderr` MUST be true. + bool stdout = 5; + // 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. + bool stderr = 6; +} + +message ExecResponse { + // Fully qualified URL of the exec streaming server. + string url = 1; +} + +message AttachRequest { + // ID of the container to which to attach. + string container_id = 1; + // Whether to stream stdin. + // One of `stdin`, `stdout`, and `stderr` MUST be true. + bool stdin = 2; + // Whether the process being attached is running in a TTY. + // This must match the TTY setting in the ContainerConfig. + bool tty = 3; + // Whether to stream stdout. + // One of `stdin`, `stdout`, and `stderr` MUST be true. + bool stdout = 4; + // 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. + bool stderr = 5; +} + +message AttachResponse { + // Fully qualified URL of the attach streaming server. + string url = 1; +} + +message PortForwardRequest { + // ID of the container to which to forward the port. + string pod_sandbox_id = 1; + // Port to forward. + repeated int32 port = 2; +} + +message PortForwardResponse { + // Fully qualified URL of the port-forward streaming server. + string url = 1; +} + +message ImageFilter { + // Spec of the image. + ImageSpec image = 1; +} + +message ListImagesRequest { + // Filter to list images. + ImageFilter filter = 1; +} + +// Basic information about a container image. +message Image { + // ID of the image. + string id = 1; + // Other names by which this image is known. + repeated string repo_tags = 2; + // Digests by which this image is known. + repeated string repo_digests = 3; + // Size of the image in bytes. Must be > 0. + uint64 size = 4; + // 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. + Int64Value uid = 5; + // User name that will run the command(s). This is used if UID is not set + // and no user is specified when creating container. + string username = 6; +} + +message ListImagesResponse { + // List of images. + repeated Image images = 1; +} + +message ImageStatusRequest { + // Spec of the image. + ImageSpec image = 1; + // Verbose indicates whether to return extra information about the image. + bool verbose = 2; +} + +message ImageStatusResponse { + // Status of the image. + Image image = 1; + // Info is extra information of the Image. The key could be abitrary 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. + map info = 2; +} + +// AuthConfig contains authorization information for connecting to a registry. +message AuthConfig { + string username = 1; + string password = 2; + string auth = 3; + string server_address = 4; + // IdentityToken is used to authenticate the user and get + // an access token for the registry. + string identity_token = 5; + // RegistryToken is a bearer token to be sent to a registry + string registry_token = 6; +} + +message PullImageRequest { + // Spec of the image. + ImageSpec image = 1; + // Authentication configuration for pulling the image. + AuthConfig auth = 2; + // Config of the PodSandbox, which is used to pull image in PodSandbox context. + PodSandboxConfig sandbox_config = 3; +} + +message PullImageResponse { + // Reference to the image in use. For most runtimes, this should be an + // image ID or digest. + string image_ref = 1; +} + +message RemoveImageRequest { + // Spec of the image to remove. + ImageSpec image = 1; +} + +message RemoveImageResponse {} + +message NetworkConfig { + // CIDR to use for pod IP addresses. + string pod_cidr = 1; +} + +message RuntimeConfig { + NetworkConfig network_config = 1; +} + +message UpdateRuntimeConfigRequest { + RuntimeConfig runtime_config = 1; +} + +message UpdateRuntimeConfigResponse {} + +// 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. +message RuntimeCondition { + // Type of runtime condition. + string type = 1; + // Status of the condition, one of true/false. Default: false. + bool status = 2; + // Brief CamelCase string containing reason for the condition's last transition. + string reason = 3; + // Human-readable message indicating details about last transition. + string message = 4; +} + +// RuntimeStatus is information about the current status of the runtime. +message RuntimeStatus { + // List of current observed runtime conditions. + repeated RuntimeCondition conditions = 1; +} + +message StatusRequest { + // Verbose indicates whether to return extra information about the runtime. + bool verbose = 1; +} + +message StatusResponse { + // Status of the Runtime. + RuntimeStatus status = 1; + // Info is extra information of the Runtime. The key could be abitrary 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. + map info = 2; +} + +message ImageFsInfoRequest {} + +// UInt64Value is the wrapper of uint64. +message UInt64Value { + // The value. + uint64 value = 1; +} + +// StorageIdentifier uniquely identify the storage.. +message StorageIdentifier{ + // UUID of the device. + string uuid = 1; +} + +// FilesystemUsage provides the filesystem usage information. +message FilesystemUsage { + // Timestamp in nanoseconds at which the information were collected. Must be > 0. + int64 timestamp = 1; + // The underlying storage of the filesystem. + StorageIdentifier storage_id = 2; + // 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. + UInt64Value used_bytes = 3; + // 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. + UInt64Value inodes_used = 4; +} + +message ImageFsInfoResponse { + // Information of image filesystem(s). + repeated FilesystemUsage image_filesystems = 1; +} + +message ContainerStatsRequest{ + // ID of the container for which to retrieve stats. + string container_id = 1; +} + +message ContainerStatsResponse { + // Stats of the container. + ContainerStats stats = 1; +} + +message ListContainerStatsRequest{ + // Filter for the list request. + ContainerStatsFilter filter = 1; +} + +// ContainerStatsFilter is used to filter containers. +// All those fields are combined with 'AND' +message ContainerStatsFilter { + // ID of the container. + string id = 1; + // ID of the PodSandbox. + string pod_sandbox_id = 2; + // LabelSelector to select matches. + // Only api.MatchLabels is supported for now and the requirements + // are ANDed. MatchExpressions is not supported yet. + map label_selector = 3; +} + +message ListContainerStatsResponse { + // Stats of the container. + repeated ContainerStats stats = 1; +} + +// ContainerAttributes provides basic information of the container. +message ContainerAttributes { + // ID of the container. + string id = 1; + // Metadata of the container. + ContainerMetadata metadata = 2; + // Key-value pairs that may be used to scope and select individual resources. + map labels = 3; + // 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. + map annotations = 4; +} + +// ContainerStats provides the resource usage statistics for a container. +message ContainerStats { + // Information of the container. + ContainerAttributes attributes = 1; + // CPU usage gathered from the container. + CpuUsage cpu = 2; + // Memory usage gathered from the container. + MemoryUsage memory = 3; + // Usage of the writeable layer. + FilesystemUsage writable_layer = 4; +} + +// CpuUsage provides the CPU usage information. +message CpuUsage { + // Timestamp in nanoseconds at which the information were collected. Must be > 0. + int64 timestamp = 1; + // Cumulative CPU usage (sum across all cores) since object creation. + UInt64Value usage_core_nano_seconds = 2; +} + +// MemoryUsage provides the memory usage information. +message MemoryUsage { + // Timestamp in nanoseconds at which the information were collected. Must be > 0. + int64 timestamp = 1; + // The amount of working set memory in bytes. + UInt64Value working_set_bytes = 2; +} diff --git a/cri/apis/v1alpha1/constants.go b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/constants.go similarity index 99% rename from cri/apis/v1alpha1/constants.go rename to vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/constants.go index 82ace15179..04cac264d1 100644 --- a/cri/apis/v1alpha1/constants.go +++ b/vendor/k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime/constants.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1alpha1 +package runtime // This file contains all constants defined in CRI. diff --git a/vendor/vendor.json b/vendor/vendor.json index aac92669b3..24494d68d5 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -1943,6 +1943,12 @@ "path": "k8s.io/apiserver/pkg/util/wsstream", "revision": "d3f753a815b5b1a7f4ecc1d2fdf497dc715c98c7", "revisionTime": "2017-10-18T16:57:59Z" + }, + { + "checksumSHA1": "oRQMrak6qTTdEUnRUMtVpzO9T/A=", + "path": "k8s.io/kubernetes/pkg/kubelet/apis/cri/v1alpha1/runtime", + "revision": "18758f502c4a249bf999f34e4a115ec9881cd9f2", + "revisionTime": "2017-12-26T11:59:59Z" } ], "rootPath": "github.com/alibaba/pouch"