sysinfo

package
v28.0.0-rc.1+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 6, 2025 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package sysinfo stores information about which features a kernel supports.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Opt

type Opt func(info *SysInfo)

Opt for New().

func WithCgroup2GroupPath

func WithCgroup2GroupPath(g string) Opt

WithCgroup2GroupPath specifies the cgroup v2 group path to inspect availability of the controllers.

WithCgroup2GroupPath is expected to be used for rootless mode with systemd driver.

e.g. g = "/user.slice/user-1000.slice/user@1000.service"

type SysInfo

type SysInfo struct {
	// Whether the kernel supports AppArmor or not
	AppArmor bool
	// Whether the kernel supports Seccomp or not
	Seccomp bool

	// Whether the kernel supports cgroup namespaces or not
	CgroupNamespaces bool

	// Whether IPv4 forwarding is supported or not, if this was disabled, networking will not work
	IPv4ForwardingDisabled bool

	// Whether bridge-nf-call-iptables is supported or not
	//
	// Deprecated: netfilter module is now loaded on-demand and no longer during daemon startup, making this field obsolete. This field is always false and will be removed in the next release.
	BridgeNFCallIPTablesDisabled bool

	// Whether bridge-nf-call-ip6tables is supported or not
	//
	// Deprecated: netfilter module is now loaded on-demand and no longer during daemon startup, making this field obsolete. This field is always false and will be removed in the next release.
	BridgeNFCallIP6TablesDisabled bool

	// Whether the cgroup has the mountpoint of "devices" or not
	CgroupDevicesEnabled bool

	// Whether the cgroup is in unified mode (v2).
	CgroupUnified bool

	// Warnings contains a slice of warnings that occurred  while collecting
	// system information. These warnings are intended to be informational
	// messages for the user, and can either be logged or returned to the
	// client; they are not intended to be parsed / used for other purposes,
	// and do not have a fixed format.
	Warnings []string
	// contains filtered or unexported fields
}

SysInfo stores information about which features a kernel supports. TODO Windows: Factor out platform specific capabilities.

func New

func New(options ...Opt) *SysInfo

New returns a new SysInfo, using the filesystem to detect which features the kernel supports.

func (SysInfo) IsCpusetCpusAvailable

func (c SysInfo) IsCpusetCpusAvailable(requested string) (bool, error)

IsCpusetCpusAvailable returns `true` if the provided string set is contained in cgroup's cpuset.cpus set, `false` otherwise. If error is not nil a parsing error occurred.

func (SysInfo) IsCpusetMemsAvailable

func (c SysInfo) IsCpusetMemsAvailable(requested string) (bool, error)

IsCpusetMemsAvailable returns `true` if the provided string set is contained in cgroup's cpuset.mems set, `false` otherwise. If error is not nil a parsing error occurred.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL