diff --git a/cmd/kubeadm/app/cmd/phases/upgrade/apply/preflight.go b/cmd/kubeadm/app/cmd/phases/upgrade/apply/preflight.go index ad0da05d4b9..55ce568b2ff 100644 --- a/cmd/kubeadm/app/cmd/phases/upgrade/apply/preflight.go +++ b/cmd/kubeadm/app/cmd/phases/upgrade/apply/preflight.go @@ -72,6 +72,9 @@ func runPreflight(c workflow.RunData) error { if err := preflight.RunRootCheckOnly(ignorePreflightErrors); err != nil { return err } + if err := preflight.RunUpgradeChecks(ignorePreflightErrors); err != nil { + return err + } // Run CoreDNS migration check. if err := upgrade.RunCoreDNSMigrationCheck(client, ignorePreflightErrors); err != nil { diff --git a/cmd/kubeadm/app/cmd/phases/upgrade/node/preflight.go b/cmd/kubeadm/app/cmd/phases/upgrade/node/preflight.go index 25ed36f0c72..10ddeab9c41 100644 --- a/cmd/kubeadm/app/cmd/phases/upgrade/node/preflight.go +++ b/cmd/kubeadm/app/cmd/phases/upgrade/node/preflight.go @@ -54,6 +54,9 @@ func runPreflight(c workflow.RunData) error { if err := preflight.RunRootCheckOnly(data.IgnorePreflightErrors()); err != nil { return err } + if err := preflight.RunUpgradeChecks(data.IgnorePreflightErrors()); err != nil { + return err + } // If this is a control-plane node, pull the basic images. if data.IsControlPlaneNode() { diff --git a/cmd/kubeadm/app/preflight/checks.go b/cmd/kubeadm/app/preflight/checks.go index d5cd1e758d3..9935f2866fd 100644 --- a/cmd/kubeadm/app/preflight/checks.go +++ b/cmd/kubeadm/app/preflight/checks.go @@ -1091,6 +1091,15 @@ func RunRootCheckOnly(ignorePreflightErrors sets.Set[string]) error { return RunChecks(checks, os.Stderr, ignorePreflightErrors) } +// RunUpgradeChecks initializes checks slice of structs and call RunChecks +func RunUpgradeChecks(ignorePreflightErrors sets.Set[string]) error { + checks := []Checker{ + SystemVerificationCheck{}, + } + + return RunChecks(checks, os.Stderr, ignorePreflightErrors) +} + // RunPullImagesCheck will pull images kubeadm needs if they are not found on the system func RunPullImagesCheck(execer utilsexec.Interface, cfg *kubeadmapi.InitConfiguration, ignorePreflightErrors sets.Set[string]) error { containerRuntime := utilruntime.NewContainerRuntime(cfg.NodeRegistration.CRISocket)