code: func (kubever KubernetesVersionCheck) Check() (warnings, errorList []error) {
  	klog.V(1).Infoln("validating Kubernetes and kubeadm version")
  	// Skip this check for "super-custom builds", where apimachinery/the overall codebase version is not set.
  	if strings.HasPrefix(kubever.KubeadmVersion, "v0.0.0") {
  		return nil, nil
  	}
  
  	kadmVersion, err := versionutil.ParseSemantic(kubever.KubeadmVersion)
  	if err != nil {
  		return nil, []error{errors.Wrapf(err, "couldn't parse kubeadm version %q", kubever.KubeadmVersion)}
  	}
  
  	k8sVersion, err := versionutil.ParseSemantic(kubever.KubernetesVersion)
  	if err != nil {
  		return nil, []error{errors.Wrapf(err, "couldn't parse Kubernetes version %q", kubever.KubernetesVersion)}
  	}
  
  	// Checks if k8sVersion greater or equal than the first unsupported versions by current version of kubeadm,
  	// that is major.minor+1 (all patch and pre-releases versions included)
  	// NB. in semver patches number is a numeric, while prerelease is a string where numeric identifiers always have lower precedence than non-numeric identifiers.
  	//     thus setting the value to x.y.0-0 we are defining the very first patch - prereleases within x.y minor release.
  	firstUnsupportedVersion := versionutil.MustParseSemantic(fmt.Sprintf("%d.%d.%s", kadmVersion.Major(), kadmVersion.Minor()+1, "0-0"))
  	if k8sVersion.AtLeast(firstUnsupportedVersion) {
  		return []error{errors.Errorf("Kubernetes version is greater than kubeadm version. Please consider to upgrade kubeadm. Kubernetes version: %s. Kubeadm version: %d.%d.x", k8sVersion, kadmVersion.Components()[0], kadmVersion.Components()[1])}, nil
  	}
  
  	return nil, nil
  }
docs: // Check validates Kubernetes and kubeadm versions