runhcs.proto 4.7 KB

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