diff --git a/pkg/apis/eksctl.io/v1alpha5/known_addons.go b/pkg/apis/eksctl.io/v1alpha5/known_addons.go index 87504296de..9f51a73302 100644 --- a/pkg/apis/eksctl.io/v1alpha5/known_addons.go +++ b/pkg/apis/eksctl.io/v1alpha5/known_addons.go @@ -44,11 +44,11 @@ var KnownAddons = map[string]struct { }, } -// HasDefaultAddons reports whether addons contains at least one default addon. -func HasDefaultAddons(addons []*Addon) bool { +// HasDefaultNonAutoAddon reports whether addons contains at least one non-auto mode default addon +func HasDefaultNonAutoAddon(addons []*Addon) bool { for _, addon := range addons { addonConfig, ok := KnownAddons[addon.Name] - if ok && addonConfig.IsDefault { + if ok && addonConfig.IsDefault && !addonConfig.IsDefaultAutoMode { return true } } diff --git a/pkg/ctl/cmdutils/configfile.go b/pkg/ctl/cmdutils/configfile.go index f7128d2193..7394d4ed15 100644 --- a/pkg/ctl/cmdutils/configfile.go +++ b/pkg/ctl/cmdutils/configfile.go @@ -317,8 +317,9 @@ func NewCreateClusterLoader(cmd *Cmd, ngFilter *filter.NodeGroupFilter, ng *api. return errors.New("creation of managed or self-managed nodegroups is not supported during cluster creation " + "when Auto Mode is enabled; please create them post cluster creation using `eksctl create nodegroup`" + " after creating core networking addons in the cluster") - } - if api.HasDefaultAddons(clusterConfig.Addons) { + } else if len(clusterConfig.FargateProfiles) == 0 && clusterConfig.RemoteNetworkConfig == nil && + api.HasDefaultNonAutoAddon(clusterConfig.Addons) { + // Only an error if fargate profiles and hybrid nodes (remote network config) are not set/defined return errors.New("core networking addons are not required on a cluster using Auto Mode; " + "if you still wish to create them, use `eksctl create addon` post cluster creation") }