common icon indicating copy to clipboard operation
common copied to clipboard

Feature request: The runtime parameter can be defined when defining runtime

Open unknowndevQwQ opened this issue 4 years ago • 18 comments

There is currently no https://docs.docker.com/engine/reference/commandline/dockerd/#docker-runtime-execution-options equivalent option in [engine.runtimes].

This feature is very useful for kata runtime Also, this feature makes it easier to debug the runtime

Configuration format assumptions:

[engine.runtimes]
youki = [
  args = [ ]
  path = [
    "/usr/bin/youki",
    "/usr/sbin/youki",
    "/usr/local/bin/youki",
    "/usr/local/sbin/youki",
    "/sbin/youki",
    "/bin/youki",
    "/run/current-system/sw/bin/youki",
  ]
]

youki-debug = [
  args = [
    "--log /tmp/youki",
    "--log-format json"
  ]
  path = [
    "/usr/bin/youki",
    "/usr/sbin/youki",
    "/usr/local/bin/youki",
    "/usr/local/sbin/youki",
    "/sbin/youki",
    "/bin/youki",
    "/run/current-system/sw/bin/youki",
  ]
]

crun = [
  path = [
    "/usr/bin/crun",
    "/usr/sbin/crun",
    "/usr/local/bin/crun",
    "/usr/local/sbin/crun",
    "/sbin/crun",
    "/bin/crun",
    "/run/current-system/sw/bin/crun",
  ]
]

runsc = [
  args = [
    "--debug-log /tmp/runsc-log"
  ]
  path = [
    "/usr/bin/runsc",
    "/usr/sbin/runsc",
    "/usr/local/bin/runsc",
    "/usr/local/sbin/runsc",
    "/sbin/runsc",
    "/bin/runsc",
    "/run/current-system/sw/bin/runsc",
  ]
]

kata-fc = [
  args = [
    "--config /usr/share/defaults/kata-containers/configuration-fc.toml"
  ]
  path = [
    "/usr/bin/kata-runtime",
    "/usr/sbin/kata-runtime",
    "/usr/local/bin/kata-runtime",
    "/usr/local/sbin/kata-runtime",
    "/sbin/kata-runtime",
    "/bin/kata-runtime",
    "/run/current-system/sw/bin/kata-runtime",
  ]
]

kata-qemu = [
  args = [
    "--config /usr/share/defaults/kata-containers/configuration-qemu.toml"
  ]
  path = [
    "/usr/bin/kata-runtime",
    "/usr/sbin/kata-runtime",
    "/usr/local/bin/kata-runtime",
    "/usr/local/sbin/kata-runtime",
    "/sbin/kata-runtime",
    "/bin/kata-runtime",
    "/run/current-system/sw/bin/kata-runtime",
  ]
]

unknowndevQwQ avatar Aug 06 '21 10:08 unknowndevQwQ

SGTM Are those the default options, or should the defaults be empty?

rhatdan avatar Aug 06 '21 12:08 rhatdan

SGTM Are those the default options, or should the defaults be empty?

What?

unknowndevQwQ avatar Aug 07 '21 10:08 unknowndevQwQ

  args = [
    "--config /usr/share/defaults/kata-containers/configuration-qemu.toml"
  ]

Is this a valid default or should it be

  args = [ ]

rhatdan avatar Aug 07 '21 10:08 rhatdan

  args = [
    "--config /usr/share/defaults/kata-containers/configuration-qemu.toml"
  ]

Is this a valid default or should it be

  args = [ ]

Both no writing and args = [ ] are valid defaults

unknowndevQwQ avatar Aug 07 '21 11:08 unknowndevQwQ

@rhatdan I've changed it

unknowndevQwQ avatar Oct 29 '21 10:10 unknowndevQwQ

@mheon WDYT?

rhatdan avatar Oct 29 '21 13:10 rhatdan

As described this is a breaking change, and I see no reason for it to be. I'd add a separate table, runtime_args, that allows us to add per-runtime arguments for the specific runtimes that require them without changing the format of the existing runtimes config.

mheon avatar Oct 29 '21 20:10 mheon

As described this is a breaking change, and I see no reason for it to be. I'd add a separate table, runtime_args, that allows us to add per-runtime arguments for the specific runtimes that require them without changing the format of the existing runtimes config.

Can you give an example?

unknowndevQwQ avatar Oct 30 '21 07:10 unknowndevQwQ

[engine.runtime_flags]
crun = [
  "--debug",
]
runsc = [
  "--config",
  "/usr/share/defaults/kata-containers/configuration-qemu.toml",
]

Similar to this

mheon avatar Nov 04 '21 19:11 mheon

[engine.runtime_flags]
crun = [
  "--debug",
]
runsc = [
  "--config",
  "/usr/share/defaults/kata-containers/configuration-qemu.toml",
]

Similar to this

Why is there a , symbol even when there is only one line?

unknowndevQwQ avatar Nov 06 '21 02:11 unknowndevQwQ

TOML formatting allows it, and it simplifies adding new entries.

mheon avatar Nov 08 '21 15:11 mheon

@mheon Do we have this functionality now? Should we open a PR to add runsc defaults?

rhatdan avatar Nov 08 '21 15:11 rhatdan

We do not have this functionality. We need to add the fields to containers.conf and them modify Podman to respect them.

mheon avatar Nov 08 '21 16:11 mheon

Ok thanks.

rhatdan avatar Nov 08 '21 19:11 rhatdan

Wait, can we set agrs for all OCI runtimes?

e.g. [engine.runtime_args_global]

unknowndevQwQ avatar Nov 12 '21 07:11 unknowndevQwQ

@unknowndevQwQ Interested in working on this one?

rhatdan avatar Oct 13 '22 10:10 rhatdan

@unknowndevQwQ Interested in working on this one?

Have some interest, but don't know what to do

unknowndevQwQ avatar Oct 13 '22 13:10 unknowndevQwQ

@cdoern PTAL

rhatdan avatar Oct 13 '22 19:10 rhatdan