in eksconfig/config.go [992:1161]
func (cfg *Config) ValidateAndSetDefaults() error {
if cfg.mu == nil {
cfg.mu = new(sync.RWMutex)
}
cfg.mu.Lock()
defer func() {
if serr := cfg.unsafeSync(); serr != nil {
fmt.Fprintf(os.Stderr, "[WARN] failed to sync config files %v\n", serr)
}
cfg.mu.Unlock()
}()
// generically defaults and validates addons that are members of cfg.Spec
spec := reflect.ValueOf(cfg.Spec)
for i := 0; i < spec.NumField(); i++ {
// skip if the field does not implement Addon or is Nil
if addon, ok := spec.Field(i).Interface().(Addon); ok && !reflect.ValueOf(addon).IsNil() {
addon.Default(cfg)
if err := addon.Validate(cfg); err != nil {
return fmt.Errorf("failed to validate %s, %v", reflect.ValueOf(addon).Type(), err)
}
}
}
if err := cfg.validateConfig(); err != nil {
return fmt.Errorf("validateConfig failed [%v]", err)
}
if err := cfg.validateAddOnNodeGroups(); err != nil {
return fmt.Errorf("validateAddOnNodeGroups failed [%v]", err)
}
if err := cfg.validateAddOnManagedNodeGroups(); err != nil {
return fmt.Errorf("validateAddOnManagedNodeGroups failed [%v]", err)
}
if err := cfg.validateAddOnCNIVPC(); err != nil {
return fmt.Errorf("validateAddOnCNIVPC failed [%v]", err)
}
total := int32(0)
if cfg.IsEnabledAddOnNodeGroups() {
for _, cur := range cfg.AddOnNodeGroups.ASGs {
total += cur.ASGDesiredCapacity
}
}
if cfg.IsEnabledAddOnManagedNodeGroups() {
for _, cur := range cfg.AddOnManagedNodeGroups.MNGs {
total += int32(cur.ASGDesiredCapacity)
}
}
cfg.TotalNodes = total
if err := cfg.validateAddOnCWAgent(); err != nil {
return fmt.Errorf("validateAddOnCWAgent failed [%v]", err)
}
if err := cfg.validateAddOnFluentd(); err != nil {
return fmt.Errorf("validateAddOnFluentd failed [%v]", err)
}
if err := cfg.validateAddOnMetricsServer(); err != nil {
return fmt.Errorf("validateAddOnMetricsServer failed [%v]", err)
}
if err := cfg.validateAddOnConformance(); err != nil {
return fmt.Errorf("validateAddOnConformance failed [%v]", err)
}
if err := cfg.validateAddOnAppMesh(); err != nil {
return fmt.Errorf("validateAddOnAppMesh failed [%v]", err)
}
if err := cfg.validateAddOnCSIEBS(); err != nil {
return fmt.Errorf("validateAddOnCSIEBS failed [%v]", err)
}
if err := cfg.validateAddOnKubernetesDashboard(); err != nil {
return fmt.Errorf("validateAddOnKubernetesDashboard failed [%v]", err)
}
if err := cfg.validateAddOnPrometheusGrafana(); err != nil {
return fmt.Errorf("validateAddOnPrometheusGrafana failed [%v]", err)
}
if err := cfg.validateAddOnPHPApache(); err != nil {
return fmt.Errorf("validateAddOnPHPApache failed [%v]", err)
}
if err := cfg.validateAddOnNLBHelloWorld(); err != nil {
return fmt.Errorf("validateAddOnNLBHelloWorld failed [%v]", err)
}
if err := cfg.validateAddOnNLBGuestbook(); err != nil {
return fmt.Errorf("validateAddOnNLBGuestbook failed [%v]", err)
}
if err := cfg.validateAddOnALB2048(); err != nil {
return fmt.Errorf("validateAddOnALB2048 failed [%v]", err)
}
if err := cfg.validateAddOnJobsPi(); err != nil {
return fmt.Errorf("validateAddOnJobsPi failed [%v]", err)
}
if err := cfg.validateAddOnJobsEcho(); err != nil {
return fmt.Errorf("validateAddOnJobsEcho failed [%v]", err)
}
if err := cfg.validateAddOnCronJobs(); err != nil {
return fmt.Errorf("validateAddOnCronJobs failed [%v]", err)
}
if err := cfg.validateAddOnCSRsLocal(); err != nil {
return fmt.Errorf("validateAddOnCSRsLocal failed [%v]", err)
}
if err := cfg.validateAddOnCSRsRemote(); err != nil {
return fmt.Errorf("validateAddOnCSRsRemote failed [%v]", err)
}
if err := cfg.validateAddOnConfigmapsLocal(); err != nil {
return fmt.Errorf("validateAddOnConfigmapsLocal failed [%v]", err)
}
if err := cfg.validateAddOnConfigmapsRemote(); err != nil {
return fmt.Errorf("validateAddOnConfigmapsRemote failed [%v]", err)
}
if err := cfg.validateAddOnSecretsLocal(); err != nil {
return fmt.Errorf("validateAddOnSecretsLocal failed [%v]", err)
}
if err := cfg.validateAddOnSecretsRemote(); err != nil {
return fmt.Errorf("validateAddOnSecretsRemote failed [%v]", err)
}
if err := cfg.validateAddOnFargate(); err != nil {
return fmt.Errorf("validateAddOnFargate failed [%v]", err)
}
if err := cfg.validateAddOnIRSA(); err != nil {
return fmt.Errorf("validateAddOnIRSA failed [%v]", err)
}
if err := cfg.validateAddOnIRSAFargate(); err != nil {
return fmt.Errorf("validateIRSAAddOnFargate failed [%v]", err)
}
if err := cfg.validateAddOnWordpress(); err != nil {
return fmt.Errorf("validateAddOnWordpress failed [%v]", err)
}
if err := cfg.validateAddOnJupyterHub(); err != nil {
return fmt.Errorf("validateAddOnJupyterHub failed [%v]", err)
}
if err := cfg.validateAddOnKubeflow(); err != nil {
return fmt.Errorf("validateAddOnKubeflow failed [%v]", err)
}
if err := cfg.validateAddOnCUDAVectorAdd(); err != nil {
return fmt.Errorf("validateAddOnCUDAVectorAdd failed [%v]", err)
}
if err := cfg.validateAddOnClusterLoaderLocal(); err != nil {
return fmt.Errorf("validateAddOnClusterLoaderLocal failed [%v]", err)
}
if err := cfg.validateAddOnClusterLoaderRemote(); err != nil {
return fmt.Errorf("validateAddOnClusterLoaderRemote failed [%v]", err)
}
if err := cfg.validateAddOnStresserLocal(); err != nil {
return fmt.Errorf("validateAddOnStresserLocal failed [%v]", err)
}
if err := cfg.validateAddOnStresserRemote(); err != nil {
return fmt.Errorf("validateAddOnStresserRemote failed [%v]", err)
}
if err := cfg.validateAddOnStresserRemoteV2(); err != nil {
return fmt.Errorf("validateAddOnStresserRemoteV2 failed [%v]", err)
}
if err := cfg.validateAddOnClusterVersionUpgrade(); err != nil {
return fmt.Errorf("validateAddOnClusterVersionUpgrade failed [%v]", err)
}
if err := cfg.validateAddOnAmiSoftLockupIssue454(); err != nil {
return fmt.Errorf("validateAddOnClusterVersionUpgrade failed [%v]", err)
}
return nil
}