func()

in pkg/clusters/nodepools.go [79:107]


func (m *nodePoolMigrator) Validate(_ context.Context) error {
	if !m.upgradeRequired {
		log.Infof("State of NodePool %s is valid; does not require an upgrade.", m.ResourcePath())
		return nil
	}
	var (
		desired  = m.opts.DesiredNodeVersion
		resolved = m.resolvedDesiredNodeVersion
		current  = m.nodePool.Version

		// Wrap errors with node pool and method context.
		wrap = func(err error) error {
			return m.wrap(err, "Validation")
		}
	)
	_, valid := getVersions(m.serverConfig, m.releaseChannel, Node)
	if err := isUpgrade(resolved, current, valid, false); err != nil {
		return wrap(err)
	}

	if err := IsWithinVersionSkew(resolved, m.resolvedDesiredControlPlaneVersion, MaxVersionSkew); err != nil {
		return wrap(err)
	}

	log.Infof("Upgrade for NodePool %s is valid; desired: %q (%s), current: %s",
		m.ResourcePath(), desired, resolved, current)

	return nil
}