Provided by: containerd_2.0.5-0ubuntu1_amd64 bug

NAME

       containerd-config.toml - configuration file for containerd

SYNOPSIS

       The  config.toml  file  is  a  configuration  file  for the containerd daemon. The file must be placed at
       /etc/containerd/config.toml or specified with the --config option of containerd to be used by the daemon.
       If the file does not exist at the appropriate location  or  is  not  provided  via  the  --config  option
       containerd  uses its default configuration settings, which can be displayed with the containerd config(1)
       command.

DESCRIPTION

       The TOML file used to configure the containerd daemon settings  has  a  short  list  of  global  settings
       followed  by a series of sections for specific areas of daemon configuration. There is also a section for
       plugins that allows each containerd  plugin  to  have  an  area  for  plugin-specific  configuration  and
       settings.

FORMAT

       version
              The  version  field  in  the  config  file specifies the config’s version. If no version number is
              specified inside the config file then it is assumed to be a version 1 config and parsed  as  such.
              Please use version = 2 to enable version 2 config as version 1 has been deprecated.

       root   The root directory for containerd metadata. (Default: "/var/lib/containerd")

       state  The state directory for containerd (Default: "/run/containerd")

       plugin_dir
              The directory for dynamic plugins to be stored

       [grpc] Section for gRPC socket listener settings. Contains the following properties:

              • address (Default: "/run/containerd/containerd.sock")

              • tcp_addresstcp_tls_certtcp_tls_keyuid (Default: 0)

              • gid (Default: 0)

              • max_recv_message_sizemax_send_message_size

       [ttrpc]
              Section for TTRPC settings. Contains properties:

              • address (Default: "")

              • uid (Default: 0)

              • gid (Default: 0)

       [debug]
              Section to enable and configure a debug socket listener. Contains four properties:

              • address (Default: "/run/containerd/debug.sock")

              • uid (Default: 0)

              • gid (Default: 0)

              • level  (Default:  "info")  sets  the  debug  log  level. Supported levels are: "trace", "debug",
                "info", "warn", "error", "fatal", "panic"

              • format (Default: "text") sets log format. Supported formats are "text" and "json"

       [metrics]
              Section to enable and configure a metrics listener. Contains two properties:

              • address (Default: "") Metrics endpoint does not listen by default

              • grpc_histogram (Default: false) Turn on or off gRPC histogram metrics

       disabled_plugins
              Disabled plugins are IDs of plugins to disable. Disabled plugins won't be initialized and started.

       required_plugins
              Required plugins are IDs of required plugins. Containerd exits  if  any  required  plugin  doesn't
              exist or fails to be initialized or started.

       [plugins]
              The  plugins section contains configuration options exposed from installed plugins.  The following
              plugins are enabled by default and their settings are shown below.  Plugins that are  not  enabled
              by default will provide their own configuration values documentation.

              • [plugins."io.containerd.monitor.v1.cgroups"] has one option no_prometheus (Default: false)

              • [plugins."io.containerd.service.v1.diff-service"]  has one option default, a list by default set
                to ["walking"][plugins."io.containerd.gc.v1.scheduler"] has several options that perform advanced  tuning  for
                the scheduler:

                • pause_threshold is the maximum amount of time GC should be scheduled (Default: 0.02),

                • deletion_threshold  guarantees  GC  is  scheduled after n number of deletions (Default: 0 [not
                  triggered]),

                • mutation_threshold guarantees GC is scheduled after n number of database  mutations  (Default:
                  100),

                • schedule_delay  defines  the  delay  after trigger event before scheduling a GC (Default "0ms"
                  [immediate]),

                • startup_delay defines the delay after startup before scheduling a GC (Default "100ms")

              • [plugins."io.containerd.runtime.v2.task"] specifies options for configuring the runtime shim:

                • platforms specifies the list of supported platforms

                • sched_core Core scheduling is a feature that allows only trusted tasks to run concurrently  on
                  cpus sharing compute resources (eg: hyperthreads on a core). (Default: false)

              • [plugins."io.containerd.service.v1.tasks-service"] has performance options:

                • blockio_config_file  (Linux  only)  specifies path to blockio class definitions (Default: "").
                  Controls  I/O  scheduler  priority  and  bandwidth  throttling.   See  blockio   configuration
                  ⟨https://github.com/intel/goresctrl/blob/main/doc/blockio.md#configuration⟩ for details of the
                  file format.

                • rdt_config_file  (Linux  only)  specifies  path  to  a  configuration used for configuring RDT
                  (Default: ""). Enables support for Intel RDT, a technology  for  cache  and  memory  bandwidth
                  management.                      See                     RDT                     configuration
                  ⟨https://github.com/intel/goresctrl/blob/main/doc/rdt.md#configuration⟩  for  details  of  the
                  file format.

              • [plugins."io.containerd.grpc.v1.cri".containerd]  contains options for the CRI plugin, and child
                nodes for CRI options:

                • default_runtime_name (Default: "runc") specifies the default runtime name

              • [plugins."io.containerd.grpc.v1.cri".containerd.runtimes] one or more container  runtimes,  each
                with a unique name

              • [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.] a runtime named <runtime>[plugins."io.containerd.grpc.v1.cri".containerd.runtimes..options]   options   for   the   named
                <runtime>, most important:

                • BinaryName specifies the path  to  the  actual  runtime  to  be  invoked  by  the  shim,  e.g.
                  "/usr/bin/runc"

       oom_score
              The out of memory (OOM) score applied to the containerd daemon process (Default: 0)

       [cgroup]
              Section for Linux cgroup specific settings

              • path (Default: "") Specify a custom cgroup path for created containers

       [proxy_plugins]
              Proxy plugins configures plugins which are communicated to over gRPC

              • type (Default: "")

              • address (Default: "")

       timeouts
              Timeouts specified as a duration

       imports
              Imports  is  a  list  of additional configuration files to include.  This allows to split the main
              configuration file and keep some sections separately  (for  example  vendors  may  keep  a  custom
              runtime  configuration in a separate file without modifying the main config.toml).  Imported files
              will overwrite simple fields like int or string (if not empty)  and  will  append  array  and  map
              fields.  Imported files are also versioned, and the version can't be higher than the main config.

       stream_processorsaccepts (Default: "[]") Accepts specific media-types

              • returns (Default: "") Returns the media-type

              • path (Default: "") Path or name of the binary

              • args (Default: "[]") Args to the binary

EXAMPLES

   Complete Configuration
       The following is a complete config.toml default configuration example:

       version = 2

       root = "/var/lib/containerd"
       state = "/run/containerd"
       oom_score = 0
       imports = ["/etc/containerd/runtime_*.toml", "./debug.toml"]

       [grpc]
         address = "/run/containerd/containerd.sock"
         uid = 0
         gid = 0

       [debug]
         address = "/run/containerd/debug.sock"
         uid = 0
         gid = 0
         level = "info"

       [metrics]
         address = ""
         grpc_histogram = false

       [cgroup]
         path = ""

       [plugins]
         [plugins."io.containerd.monitor.v1.cgroups"]
           no_prometheus = false
         [plugins."io.containerd.service.v1.diff-service"]
           default = ["walking"]
         [plugins."io.containerd.gc.v1.scheduler"]
           pause_threshold = 0.02
           deletion_threshold = 0
           mutation_threshold = 100
           schedule_delay = 0
           startup_delay = "100ms"
         [plugins."io.containerd.runtime.v2.task"]
           platforms = ["linux/amd64"]
           sched_core = true
         [plugins."io.containerd.service.v1.tasks-service"]
           blockio_config_file = ""
           rdt_config_file = ""

   Multiple Runtimes
       The following is an example partial configuration with two runtimes:

       [plugins]

         [plugins."io.containerd.grpc.v1.cri"]

           [plugins."io.containerd.grpc.v1.cri".containerd]
             default_runtime_name = "runc"

             [plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
               [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
                 privileged_without_host_devices = false
                 runtime_type = "io.containerd.runc.v2"

                 [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
                   BinaryName = "/usr/bin/runc"

               [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.other]
                 privileged_without_host_devices = false
                 runtime_type = "io.containerd.runc.v2"

                 [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.other.options]
                   BinaryName = "/usr/bin/path-to-runtime"

       The  above creates two named runtime configurations - named runc and other - and sets the default runtime
       to runc.  The above are used solely for runtimes invoked via CRI. To use the non-default "other"  runtime
       in  this  example, a spec will include the runtime handler named "other" to specify the desire to use the
       named runtime config.

       The                   CRI                   specification                   includes                    a
       ⟨https://github.com/kubernetes/cri-api/blob/de5f1318aede866435308f39cb432618a15f104e/pkg/apis/runtime/v1/api.proto#L476⟩,
       which will reference the named runtime.

       It     is     important     to     note     the     naming     convention.     Runtimes     are     under
       [plugins."io.containerd.grpc.v1.cri".containerd.runtimes], with each runtime given a  unique  name,  e.g.
       [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc].  In addition, each runtime can have shim-
       specific  options  under [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.<runtime>.options], for
       example, [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options].

       The io.containerd.runc.v2 runtime is used to run OCI-compatible runtimes on Linux, such as runc.  In  the
       example  above,  the  runtime_type  field  specifies  the  shim  to use (io.containerd.runc.v2) while the
       BinaryName field is a shim-specific option which specifies the path to the OCI runtime.

       For the example configuration named "runc", the shim will launch /usr/bin/runc as the OCI  runtime.   For
       the example configuration named "other", the shim will launch /usr/bin/path-to-runtime instead.

BUGS

       Please file any specific issues that you encounter at https://github.com/containerd/containerd.

AUTHOR

       Phil Estes estesp@gmail.commailto:estesp@gmail.com

SEE ALSO

       ctr(8), containerd-config(8), containerd(8)

                                                   04/05/2022                     /etc/containerd/config.toml(5)