Commit a413c5ba authored by Brad Davidson's avatar Brad Davidson Committed by Brad Davidson

Add nonroot-devices flag to agent CLI

Add new flag that is passed through to the device_ownership_from_security_context parameter in the containerd CRI config. This is not possible to change without providing a complete custom containerd.toml template so we should add a flag for it. Signed-off-by: 's avatarBrad Davidson <brad.davidson@rancher.com> (cherry picked from commit 56fb3b09) Signed-off-by: 's avatarBrad Davidson <brad.davidson@rancher.com>
parent 6459d778
...@@ -603,6 +603,7 @@ func get(ctx context.Context, envInfo *cmds.Agent, proxy proxy.Proxy) (*config.N ...@@ -603,6 +603,7 @@ func get(ctx context.Context, envInfo *cmds.Agent, proxy proxy.Proxy) (*config.N
nodeConfig.Containerd.Log = filepath.Join(envInfo.DataDir, "agent", "containerd", "containerd.log") nodeConfig.Containerd.Log = filepath.Join(envInfo.DataDir, "agent", "containerd", "containerd.log")
nodeConfig.Containerd.Registry = filepath.Join(envInfo.DataDir, "agent", "etc", "containerd", "certs.d") nodeConfig.Containerd.Registry = filepath.Join(envInfo.DataDir, "agent", "etc", "containerd", "certs.d")
nodeConfig.Containerd.NoDefault = envInfo.ContainerdNoDefault nodeConfig.Containerd.NoDefault = envInfo.ContainerdNoDefault
nodeConfig.Containerd.NonrootDevices = envInfo.ContainerdNonrootDevices
nodeConfig.Containerd.Debug = envInfo.Debug nodeConfig.Containerd.Debug = envInfo.Debug
applyContainerdStateAndAddress(nodeConfig) applyContainerdStateAndAddress(nodeConfig)
applyCRIDockerdAddress(nodeConfig) applyCRIDockerdAddress(nodeConfig)
......
...@@ -73,6 +73,7 @@ func SetupContainerdConfig(cfg *config.Node) error { ...@@ -73,6 +73,7 @@ func SetupContainerdConfig(cfg *config.Node) error {
SystemdCgroup: cfg.AgentConfig.Systemd, SystemdCgroup: cfg.AgentConfig.Systemd,
IsRunningInUserNS: isRunningInUserNS, IsRunningInUserNS: isRunningInUserNS,
EnableUnprivileged: kernel.CheckKernelVersion(4, 11, 0), EnableUnprivileged: kernel.CheckKernelVersion(4, 11, 0),
NonrootDevices: cfg.Containerd.NonrootDevices,
PrivateRegistryConfig: cfg.AgentConfig.Registry, PrivateRegistryConfig: cfg.AgentConfig.Registry,
ExtraRuntimes: extraRuntimes, ExtraRuntimes: extraRuntimes,
Program: version.Program, Program: version.Program,
......
...@@ -23,6 +23,7 @@ type ContainerdConfig struct { ...@@ -23,6 +23,7 @@ type ContainerdConfig struct {
IsRunningInUserNS bool IsRunningInUserNS bool
EnableUnprivileged bool EnableUnprivileged bool
NoDefaultEndpoint bool NoDefaultEndpoint bool
NonrootDevices bool
PrivateRegistryConfig *registries.Registry PrivateRegistryConfig *registries.Registry
ExtraRuntimes map[string]ContainerdRuntimeConfig ExtraRuntimes map[string]ContainerdRuntimeConfig
Program string Program string
......
...@@ -19,6 +19,7 @@ version = 2 ...@@ -19,6 +19,7 @@ version = 2
enable_selinux = {{ .NodeConfig.SELinux }} enable_selinux = {{ .NodeConfig.SELinux }}
enable_unprivileged_ports = {{ .EnableUnprivileged }} enable_unprivileged_ports = {{ .EnableUnprivileged }}
enable_unprivileged_icmp = {{ .EnableUnprivileged }} enable_unprivileged_icmp = {{ .EnableUnprivileged }}
device_ownership_from_security_context = {{ .NonrootDevices }}
{{- if .DisableCgroup}} {{- if .DisableCgroup}}
disable_cgroup = true disable_cgroup = true
......
...@@ -28,6 +28,7 @@ type Agent struct { ...@@ -28,6 +28,7 @@ type Agent struct {
Snapshotter string Snapshotter string
Docker bool Docker bool
ContainerdNoDefault bool ContainerdNoDefault bool
ContainerdNonrootDevices bool
ContainerRuntimeEndpoint string ContainerRuntimeEndpoint string
DefaultRuntime string DefaultRuntime string
ImageServiceEndpoint string ImageServiceEndpoint string
...@@ -228,6 +229,11 @@ var ( ...@@ -228,6 +229,11 @@ var (
Usage: "(agent/containerd) Disables containerd's fallback default registry endpoint when a mirror is configured for that registry", Usage: "(agent/containerd) Disables containerd's fallback default registry endpoint when a mirror is configured for that registry",
Destination: &AgentConfig.ContainerdNoDefault, Destination: &AgentConfig.ContainerdNoDefault,
} }
NonrootDevicesFlag = &cli.BoolFlag{
Name: "nonroot-devices",
Usage: "(agent/containerd) Allows non-root pods to access devices by setting device_ownership_from_security_context=true in the containerd CRI config",
Destination: &AgentConfig.ContainerdNonrootDevices,
}
EnablePProfFlag = &cli.BoolFlag{ EnablePProfFlag = &cli.BoolFlag{
Name: "enable-pprof", Name: "enable-pprof",
Usage: "(experimental) Enable pprof endpoint on supervisor port", Usage: "(experimental) Enable pprof endpoint on supervisor port",
...@@ -291,6 +297,7 @@ func NewAgentCommand(action func(ctx *cli.Context) error) cli.Command { ...@@ -291,6 +297,7 @@ func NewAgentCommand(action func(ctx *cli.Context) error) cli.Command {
SnapshotterFlag, SnapshotterFlag,
PrivateRegistryFlag, PrivateRegistryFlag,
DisableDefaultRegistryEndpointFlag, DisableDefaultRegistryEndpointFlag,
NonrootDevicesFlag,
AirgapExtraRegistryFlag, AirgapExtraRegistryFlag,
NodeIPFlag, NodeIPFlag,
BindAddressFlag, BindAddressFlag,
......
...@@ -527,6 +527,7 @@ var ServerFlags = []cli.Flag{ ...@@ -527,6 +527,7 @@ var ServerFlags = []cli.Flag{
DefaultRuntimeFlag, DefaultRuntimeFlag,
ImageServiceEndpointFlag, ImageServiceEndpointFlag,
DisableDefaultRegistryEndpointFlag, DisableDefaultRegistryEndpointFlag,
NonrootDevicesFlag,
PauseImageFlag, PauseImageFlag,
SnapshotterFlag, SnapshotterFlag,
PrivateRegistryFlag, PrivateRegistryFlag,
......
...@@ -89,6 +89,7 @@ type Containerd struct { ...@@ -89,6 +89,7 @@ type Containerd struct {
RDTConfig string RDTConfig string
Registry string Registry string
NoDefault bool NoDefault bool
NonrootDevices bool
SELinux bool SELinux bool
Debug bool Debug bool
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment