diff --git a/pkg/actions/addon/tasks.go b/pkg/actions/addon/tasks.go index b3b0d88385..74a4ae1c92 100644 --- a/pkg/actions/addon/tasks.go +++ b/pkg/actions/addon/tasks.go @@ -29,8 +29,11 @@ func CreateAddonTasks(ctx context.Context, cfg *api.ClusterConfig, clusterProvid if addonInfo.IsDefault && !slices.ContainsFunc(cfg.Addons, func(a *api.Addon) bool { return strings.EqualFold(a.Name, addonName) }) { - addons = append(addons, &api.Addon{Name: addonName}) - autoDefaultAddonNames = append(autoDefaultAddonNames, addonName) + if !cfg.IsAutoModeEnabled() || addonInfo.IsDefaultAutoMode { + addons = append(addons, &api.Addon{Name: addonName}) + autoDefaultAddonNames = append(autoDefaultAddonNames, addonName) + } + } } } else { diff --git a/pkg/apis/eksctl.io/v1alpha5/known_addons.go b/pkg/apis/eksctl.io/v1alpha5/known_addons.go index 8bb8f789d6..90282a6179 100644 --- a/pkg/apis/eksctl.io/v1alpha5/known_addons.go +++ b/pkg/apis/eksctl.io/v1alpha5/known_addons.go @@ -5,6 +5,7 @@ import "slices" var KnownAddons = map[string]struct { IsDefault bool CreateBeforeNodeGroup bool + IsDefaultAutoMode bool }{ VPCCNIAddon: { IsDefault: true, @@ -26,6 +27,7 @@ var KnownAddons = map[string]struct { MetricsServerAddon: { IsDefault: true, CreateBeforeNodeGroup: true, + IsDefaultAutoMode: true, }, } diff --git a/pkg/ctl/create/cluster.go b/pkg/ctl/create/cluster.go index 2f85f1ba3f..b49920164c 100644 --- a/pkg/ctl/create/cluster.go +++ b/pkg/ctl/create/cluster.go @@ -369,20 +369,17 @@ func doCreateCluster(cmd *cmdutils.Cmd, ngFilter *filter.NodeGroupFilter, params postNodeGroupAddons *tasks.TaskTree postClusterCreationTasks *tasks.TaskTree ) - if cfg.IsAutoModeEnabled() { - postClusterCreationTasks = ctl.CreateExtraClusterConfigTasks(ctx, cfg, nil, nil) - } else { - iamRoleCreator := &podidentityassociation.IAMRoleCreator{ - ClusterName: cfg.Metadata.Name, - StackCreator: stackManager, - } - preNodegroupAddons, postAddons, updateVPCCNITask, autoDefaultAddons := addon.CreateAddonTasks(ctx, cfg, ctl, iamRoleCreator, true, cmd.ProviderConfig.WaitTimeout) - if len(autoDefaultAddons) > 0 { - logger.Info("default addons %s were not specified, will install them as EKS addons", strings.Join(autoDefaultAddons, ", ")) - } - postNodeGroupAddons = postAddons - postClusterCreationTasks = ctl.CreateExtraClusterConfigTasks(ctx, cfg, preNodegroupAddons, updateVPCCNITask) + + iamRoleCreator := &podidentityassociation.IAMRoleCreator{ + ClusterName: cfg.Metadata.Name, + StackCreator: stackManager, + } + preNodegroupAddons, postAddons, updateVPCCNITask, autoDefaultAddons := addon.CreateAddonTasks(ctx, cfg, ctl, iamRoleCreator, true, cmd.ProviderConfig.WaitTimeout) + if len(autoDefaultAddons) > 0 { + logger.Info("default addons %s were not specified, will install them as EKS addons", strings.Join(autoDefaultAddons, ", ")) } + postNodeGroupAddons = postAddons + postClusterCreationTasks = ctl.CreateExtraClusterConfigTasks(ctx, cfg, preNodegroupAddons, updateVPCCNITask) taskTree := stackManager.NewTasksToCreateCluster(ctx, cfg.NodeGroups, cfg.ManagedNodeGroups, cfg.AccessConfig, makeAccessEntryCreator(cfg.Metadata.Name, stackManager), params.NodeGroupParallelism, postClusterCreationTasks)