sysinfo

package
v27.0.1-rc.1+incompatible Latest Latest
Warning

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

Go to latest
Published: Jun 20, 2024 License: Apache-2.0 Imports: 16 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

func NumCPU

func NumCPU() int

NumCPU returns the number of CPUs. On Linux and Windows, it returns the number of CPUs which are currently online. On other platforms, it's the equivalent of runtime.NumCPU.

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
	BridgeNFCallIPTablesDisabled bool

	// Whether bridge-nf-call-ip6tables is supported or not
	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(provided 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(provided 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