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
}