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,
......
...@@ -78,19 +78,20 @@ type EtcdS3 struct { ...@@ -78,19 +78,20 @@ type EtcdS3 struct {
} }
type Containerd struct { type Containerd struct {
Address string Address string
Log string Log string
Root string Root string
State string State string
Config string Config string
Opt string Opt string
Template string Template string
BlockIOConfig string BlockIOConfig string
RDTConfig string RDTConfig string
Registry string Registry string
NoDefault bool NoDefault bool
SELinux bool NonrootDevices bool
Debug bool SELinux bool
Debug bool
} }
type CRIDockerd struct { type CRIDockerd struct {
......
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