...
1syntax = "proto3";
2
3package containerd.runhcs.v1;
4
5import weak "gogoproto/gogo.proto";
6import "google/protobuf/timestamp.proto";
7
8option go_package = "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options;options";
9
10// Options are the set of customizations that can be passed at Create time.
11message Options {
12 // Enable debug tracing (sets the logrus log level to debug). This may be deprecated in the future, prefer
13 // log_level as this will override debug if both of them are set.
14 bool debug = 1;
15
16 enum DebugType {
17 NPIPE = 0;
18 FILE = 1;
19 ETW = 2;
20 }
21
22 // debug tracing output type
23 DebugType debug_type = 2;
24
25 // registry key root for storage of the runhcs container state
26 string registry_root = 3;
27
28 // sandbox_image is the image to use for the sandbox that matches the
29 // sandbox_platform.
30 string sandbox_image = 4;
31
32 // sandbox_platform is a CRI setting that specifies the platform
33 // architecture for all sandbox's in this runtime. Values are
34 // 'windows/amd64' and 'linux/amd64'.
35 string sandbox_platform = 5;
36
37 enum SandboxIsolation {
38 PROCESS = 0;
39 HYPERVISOR = 1;
40 }
41
42 // sandbox_isolation is a CRI setting that specifies the isolation level of
43 // the sandbox. For Windows runtime PROCESS and HYPERVISOR are valid. For
44 // LCOW only HYPERVISOR is valid and default if omitted.
45 SandboxIsolation sandbox_isolation = 6;
46
47 // boot_files_root_path is the path to the directory containing the LCOW
48 // kernel and root FS files.
49 string boot_files_root_path = 7;
50
51 // vm_processor_count is the default number of processors to create for the
52 // hypervisor isolated utility vm.
53 //
54 // The platform default if omitted is 2, unless the host only has a single
55 // core in which case it is 1.
56 int32 vm_processor_count = 8;
57
58 // vm_memory_size_in_mb is the default amount of memory to assign to the
59 // hypervisor isolated utility vm.
60 //
61 // The platform default is 1024MB if omitted.
62 int32 vm_memory_size_in_mb = 9;
63
64 // GPUVHDPath is the path to the gpu vhd to add to the uvm
65 // when a container requests a gpu
66 string GPUVHDPath = 10;
67
68 // scale_cpu_limits_to_sandbox indicates that container CPU limits should
69 // be adjusted to account for the difference in number of cores between the
70 // host and UVM.
71 bool scale_cpu_limits_to_sandbox = 11;
72
73 // default_container_scratch_size_in_gb is the default scratch size (sandbox.vhdx)
74 // to be used for containers. Every container will get a sandbox of `size_in_gb` assigned
75 // instead of the default of 20GB.
76 int32 default_container_scratch_size_in_gb = 12;
77
78 // default_vm_scratch_size_in_gb is the default scratch size (sandbox.vhdx)
79 // to be used for the UVM. This only applies to WCOW as LCOW doesn't mount a scratch
80 // specifically for the UVM.
81 int32 default_vm_scratch_size_in_gb = 13;
82
83 // share_scratch specifies if we'd like to reuse scratch space between multiple containers.
84 // This currently only affects LCOW. The sandbox containers scratch space is re-used for all
85 // subsequent containers launched in the pod.
86 bool share_scratch = 14;
87
88 // NCProxyAddr is the address of the network configuration proxy service. If omitted
89 // the network is setup locally.
90 string NCProxyAddr = 15;
91
92 // log_level specifies the logrus log level for the shim. Supported values are a string representation of the
93 // logrus log levels: "trace", "debug", "info", "warn", "error", "fatal", "panic". This setting will override
94 // the `debug` field if both are specified, unless the level specified is also "debug", as these are equivalent.
95 string log_level = 16;
96
97 // io_retry_timeout_in_sec is the timeout in seconds for how long to try and reconnect to an upstream IO provider if a connection is lost.
98 // The typical example is if Containerd has restarted but is expected to come back online. A 0 for this field is interpreted as an infinite
99 // timeout.
100 int32 io_retry_timeout_in_sec = 17;
101
102 // default_container_annotations specifies a set of annotations that should be set for every workload container
103 map<string, string> default_container_annotations = 18;
104
105 // no_inherit_host_timezone specifies to skip inheriting the hosts time zone for WCOW UVMs and instead default to
106 // UTC.
107 bool no_inherit_host_timezone = 19;
108
109 // scrub_logs enables removing environment variables and other potentially sensitive information from logs
110 bool scrub_logs = 20;
111}
112
113// ProcessDetails contains additional information about a process. This is the additional
114// info returned in the Pids query.
115message ProcessDetails {
116 string image_name = 1;
117 google.protobuf.Timestamp created_at = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
118 uint64 kernel_time_100_ns = 3;
119 uint64 memory_commit_bytes = 4;
120 uint64 memory_working_set_private_bytes = 5;
121 uint64 memory_working_set_shared_bytes = 6;
122 uint32 process_id = 7;
123 uint64 user_time_100_ns = 8;
124 string exec_id = 9;
125}
View as plain text