func GetKubeletVersion(execer utilsexec.Interface) (*version.Version, error)
GetKubeletVersion is helper function that returns version of kubelet available in $PATH
func RunChecks(checks []Checker, ww io.Writer, ignorePreflightErrors sets.Set[string]) error
RunChecks runs each check, displays its warnings/errors, and once all are processed will exit if any errors occurred.
func RunInitNodeChecks(execer utilsexec.Interface, cfg *kubeadmapi.InitConfiguration, ignorePreflightErrors sets.Set[string], isSecondaryControlPlane bool, downloadCerts bool) error
RunInitNodeChecks executes all individual, applicable to control-plane node checks. The boolean flag 'isSecondaryControlPlane' controls whether we are running checks in a --join-control-plane scenario. The boolean flag 'downloadCerts' controls whether we should skip checks on certificates because we are downloading them. If the flag is set to true we should skip checks already executed by RunJoinNodeChecks.
func RunJoinNodeChecks(execer utilsexec.Interface, cfg *kubeadmapi.JoinConfiguration, ignorePreflightErrors sets.Set[string]) error
RunJoinNodeChecks executes all individual, applicable to node checks.
func RunPullImagesCheck(execer utilsexec.Interface, cfg *kubeadmapi.InitConfiguration, ignorePreflightErrors sets.Set[string]) error
RunPullImagesCheck will pull images kubeadm needs if they are not found on the system
func RunRootCheckOnly(ignorePreflightErrors sets.Set[string]) error
RunRootCheckOnly initializes checks slice of structs and call RunChecks
Checker validates the state of the system to ensure kubeadm will be successful as often as possible.
type Checker interface { Check() (warnings, errorList []error) Name() string }
func InitNodeChecks(execer utilsexec.Interface, cfg *kubeadmapi.InitConfiguration, ignorePreflightErrors sets.Set[string], isSecondaryControlPlane bool, downloadCerts bool) ([]Checker, error)
InitNodeChecks returns checks specific to "kubeadm init"
func JoinNodeChecks(execer utilsexec.Interface, cfg *kubeadmapi.JoinConfiguration, ignorePreflightErrors sets.Set[string]) ([]Checker, error)
JoinNodeChecks returns checks specific to "kubeadm join"
ContainerRuntimeCheck verifies the container runtime.
type ContainerRuntimeCheck struct {
// contains filtered or unexported fields
}
func (crc ContainerRuntimeCheck) Check() (warnings, errorList []error)
Check validates the container runtime
func (ContainerRuntimeCheck) Name() string
Name returns label for RuntimeCheck.
DirAvailableCheck checks if the given directory either does not exist, or is empty.
type DirAvailableCheck struct { Path string Label string }
func (dac DirAvailableCheck) Check() (warnings, errorList []error)
Check validates if a directory does not exist or empty.
func (dac DirAvailableCheck) Name() string
Name returns label for individual DirAvailableChecks. If not known, will return based on path.
Error defines struct for communicating error messages generated by preflight checks
type Error struct { Msg string }
func (e *Error) Error() string
Error implements the standard error interface
func (e *Error) Preflight() bool
Preflight identifies this error as a preflight error
ExternalEtcdVersionCheck checks if version of external etcd meets the demand of kubeadm
type ExternalEtcdVersionCheck struct { Etcd kubeadmapi.Etcd }
func (evc ExternalEtcdVersionCheck) Check() (warnings, errorList []error)
Check validates external etcd version TODO: Use the official etcd Golang client for this instead?
func (ExternalEtcdVersionCheck) Name() string
Name will return ExternalEtcdVersion as name for ExternalEtcdVersionCheck
FileAvailableCheck checks that the given file does not already exist.
type FileAvailableCheck struct { Path string Label string }
func (fac FileAvailableCheck) Check() (warnings, errorList []error)
Check validates if the given file does not already exist.
func (fac FileAvailableCheck) Name() string
Name returns label for individual FileAvailableChecks. If not known, will return based on path.
FileContentCheck checks that the given file contains the string Content.
type FileContentCheck struct { Path string Content []byte Label string }
func (fcc FileContentCheck) Check() (warnings, errorList []error)
Check validates if the given file contains the given content.
func (fcc FileContentCheck) Name() string
Name returns label for individual FileContentChecks. If not known, will return based on path.
FileExistingCheck checks that the given file does not already exist.
type FileExistingCheck struct { Path string Label string }
func (fac FileExistingCheck) Check() (warnings, errorList []error)
Check validates if the given file already exists.
func (fac FileExistingCheck) Name() string
Name returns label for individual FileExistingChecks. If not known, will return based on path.
FirewalldCheck checks if firewalld is enabled or active. If it is, warn the user that there may be problems if no actions are taken.
type FirewalldCheck struct {
// contains filtered or unexported fields
}
func (fc FirewalldCheck) Check() (warnings, errorList []error)
Check validates if the firewall is enabled and active.
func (FirewalldCheck) Name() string
Name returns label for FirewalldCheck.
HTTPProxyCIDRCheck checks if https connection to specific subnet is going to be done directly or over proxy. If proxy detected, it will return warning. Similar to HTTPProxyCheck above, but operates with subnets and uses API machinery transport defaults to simulate kube-apiserver accessing cluster services and pods.
type HTTPProxyCIDRCheck struct { Proto string CIDR string }
func (subnet HTTPProxyCIDRCheck) Check() (warnings, errorList []error)
Check validates http connectivity to first IP address in the CIDR. If it is not directly connected and goes via proxy it will produce warning.
func (HTTPProxyCIDRCheck) Name() string
Name will return HTTPProxyCIDR as name for HTTPProxyCIDRCheck
HTTPProxyCheck checks if https connection to specific host is going to be done directly or over proxy. If proxy detected, it will return warning.
type HTTPProxyCheck struct { Proto string Host string }
func (hst HTTPProxyCheck) Check() (warnings, errorList []error)
Check validates http connectivity type, direct or via proxy.
func (hst HTTPProxyCheck) Name() string
Name returns HTTPProxy as name for HTTPProxyCheck
HostnameCheck checks if hostname match dns subdomain regex. If hostname doesn't match this regex, kubelet will not launch static pods like kube-apiserver/kube-controller-manager and so on.
type HostnameCheck struct {
// contains filtered or unexported fields
}
func (hc HostnameCheck) Check() (warnings, errorList []error)
Check validates if hostname match dns subdomain regex. Check hostname length and format
func (HostnameCheck) Name() string
Name will return Hostname as name for HostnameCheck
ImagePullCheck will pull container images used by kubeadm
type ImagePullCheck struct {
// contains filtered or unexported fields
}
func (ipc ImagePullCheck) Check() (warnings, errorList []error)
Check pulls images required by kubeadm. This is a mutating check
func (ImagePullCheck) Name() string
Name returns the label for ImagePullCheck
InPathCheck checks if the given executable is present in $PATH
type InPathCheck struct {
// contains filtered or unexported fields
}
func (ipc InPathCheck) Check() (warnings, errs []error)
Check validates if the given executable is present in the path.
func (ipc InPathCheck) Name() string
Name returns label for individual InPathCheck. If not known, will return based on path.
IsPrivilegedUserCheck verifies user is privileged (linux - root, windows - Administrator)
type IsPrivilegedUserCheck struct{}
func (ipuc IsPrivilegedUserCheck) Check() (warnings, errorList []error)
Check validates if an user has elevated (root) privileges.
func (IsPrivilegedUserCheck) Name() string
Name returns name for IsPrivilegedUserCheck
KubeletVersionCheck validates installed kubelet version
type KubeletVersionCheck struct { KubernetesVersion string // contains filtered or unexported fields }
func (kubever KubeletVersionCheck) Check() (warnings, errorList []error)
Check validates kubelet version. It should be not less than minimal supported version
func (KubeletVersionCheck) Name() string
Name will return KubeletVersion as name for KubeletVersionCheck
KubernetesVersionCheck validates Kubernetes and kubeadm versions
type KubernetesVersionCheck struct { KubeadmVersion string KubernetesVersion string }
func (kubever KubernetesVersionCheck) Check() (warnings, errorList []error)
Check validates Kubernetes and kubeadm versions
func (KubernetesVersionCheck) Name() string
Name will return KubernetesVersion as name for KubernetesVersionCheck
MemCheck checks if the number of megabytes of memory is not less than required
type MemCheck struct { Mem uint64 }
func (mc MemCheck) Check() (warnings, errorList []error)
Check number of memory required by kubeadm
func (MemCheck) Name() string
Name returns the label for memory
NumCPUCheck checks if current number of CPUs is not less than required
type NumCPUCheck struct { NumCPU int }
func (ncc NumCPUCheck) Check() (warnings, errorList []error)
Check number of CPUs required by kubeadm
func (NumCPUCheck) Name() string
Name returns the label for NumCPUCheck
PortOpenCheck ensures the given port is available for use.
type PortOpenCheck struct {
// contains filtered or unexported fields
}
func (poc PortOpenCheck) Check() (warnings, errorList []error)
Check validates if the particular port is available.
func (poc PortOpenCheck) Name() string
Name returns name for PortOpenCheck. If not known, will return "PortXXXX" based on port number
ServiceCheck verifies that the given service is enabled and active. If we do not detect a supported init system however, all checks are skipped and a warning is returned.
type ServiceCheck struct { Service string CheckIfActive bool Label string }
func (sc ServiceCheck) Check() (warnings, errorList []error)
Check validates if the service is enabled and active.
func (sc ServiceCheck) Name() string
Name returns label for ServiceCheck. If not provided, will return based on the service parameter
SwapCheck warns if swap is enabled
type SwapCheck struct{}
func (swc SwapCheck) Check() (warnings, errorList []error)
Check validates whether swap is enabled or not
func (SwapCheck) Name() string
Name will return Swap as name for SwapCheck
SystemVerificationCheck defines struct used for running the system verification node check in test/e2e_node/system
type SystemVerificationCheck struct{}
func (sysver SystemVerificationCheck) Check() (warnings, errorList []error)
Check runs all individual checks
func (SystemVerificationCheck) Name() string
Name will return SystemVerification as name for SystemVerificationCheck