func()

in k8s-tester/config.go [560:950]


func (cfg *Config) UpdateFromEnvs() (err error) {
	var vv interface{}
	vv, err = parseEnvs(ENV_PREFIX, cfg)
	if err != nil {
		return err
	}
	if av, ok := vv.(*Config); ok {
		cfg = av
	} else {
		return fmt.Errorf("expected *Config, got %T", vv)
	}

	// tester order is defined as https://github.com/aws/aws-k8s-tester/blob/v1.5.9/eks/eks.go#L617
	vv, err = parseEnvs(ENV_PREFIX+cloudwatch_agent.Env()+"_", cfg.AddOnCloudwatchAgent)
	if err != nil {
		return err
	}
	if av, ok := vv.(*cloudwatch_agent.Config); ok {
		cfg.AddOnCloudwatchAgent = av
	} else {
		return fmt.Errorf("expected *cloudwatch_agent.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+fluent_bit.Env()+"_", cfg.AddOnFluentBit)
	if err != nil {
		return err
	}
	if av, ok := vv.(*fluent_bit.Config); ok {
		cfg.AddOnFluentBit = av
	} else {
		return fmt.Errorf("expected *fluent_bit.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+metrics_server.Env()+"_", cfg.AddOnMetricsServer)
	if err != nil {
		return err
	}
	if av, ok := vv.(*metrics_server.Config); ok {
		cfg.AddOnMetricsServer = av
	} else {
		return fmt.Errorf("expected *metrics_server.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+kubecost.Env()+"_", cfg.AddOnKubecost)
	if err != nil {
		return err
	}
	if av, ok := vv.(*kubecost.Config); ok {
		cfg.AddOnKubecost = av
	} else {
		return fmt.Errorf("expected *kubecost.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+cni.Env()+"_", cfg.AddOnCNI)
	if err != nil {
		return err
	}
	if av, ok := vv.(*cni.Config); ok {
		cfg.AddOnCNI = av
	} else {
		return fmt.Errorf("expected *cni.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+conformance.Env()+"_", cfg.AddOnConformance)
	if err != nil {
		return err
	}
	if av, ok := vv.(*conformance.Config); ok {
		cfg.AddOnConformance = av
	} else {
		return fmt.Errorf("expected *conformance.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+csi_ebs.Env()+"_", cfg.AddOnCSIEBS)
	if err != nil {
		return err
	}
	if av, ok := vv.(*csi_ebs.Config); ok {
		cfg.AddOnCSIEBS = av
	} else {
		return fmt.Errorf("expected *csi_ebs.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+csi_efs.Env()+"_", cfg.AddOnCSIEFS)
	if err != nil {
		return err
	}
	if av, ok := vv.(*csi_efs.Config); ok {
		cfg.AddOnCSIEFS = av
	} else {
		return fmt.Errorf("expected *csi_efs.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+kubernetes_dashboard.Env()+"_", cfg.AddOnKubernetesDashboard)
	if err != nil {
		return err
	}
	if av, ok := vv.(*kubernetes_dashboard.Config); ok {
		cfg.AddOnKubernetesDashboard = av
	} else {
		return fmt.Errorf("expected *kubernetes_dashboard.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+falco.Env()+"_", cfg.AddOnFalco)
	if err != nil {
		return err
	}
	if av, ok := vv.(*falco.Config); ok {
		cfg.AddOnFalco = av
	} else {
		return fmt.Errorf("expected *falco.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+php_apache.Env()+"_", cfg.AddOnPHPApache)
	if err != nil {
		return err
	}
	if av, ok := vv.(*php_apache.Config); ok {
		cfg.AddOnPHPApache = av
	} else {
		return fmt.Errorf("expected *php_apache.Config, got %T", vv)
	}
	if cfg.AddOnPHPApache != nil {
		vv, err = parseEnvs(ENV_PREFIX+php_apache.EnvRepository()+"_", cfg.AddOnPHPApache.Repository)
		if err != nil {
			return err
		}
		if av, ok := vv.(*aws_v1_ecr.Repository); ok {
			cfg.AddOnPHPApache.Repository = av
		} else {
			return fmt.Errorf("expected *aws_v1_ecr.Repository, got %T", vv)
		}
	}

	vv, err = parseEnvs(ENV_PREFIX+nlb_guestbook.Env()+"_", cfg.AddOnNLBGuestbook)
	if err != nil {
		return err
	}
	if av, ok := vv.(*nlb_guestbook.Config); ok {
		cfg.AddOnNLBGuestbook = av
	} else {
		return fmt.Errorf("expected *nlb_guestbook.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+nlb_hello_world.Env()+"_", cfg.AddOnNLBHelloWorld)
	if err != nil {
		return err
	}
	if av, ok := vv.(*nlb_hello_world.Config); ok {
		cfg.AddOnNLBHelloWorld = av
	} else {
		return fmt.Errorf("expected *nlb_hello_world.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+wordpress.Env()+"_", cfg.AddOnWordpress)
	if err != nil {
		return err
	}
	if av, ok := vv.(*wordpress.Config); ok {
		cfg.AddOnWordpress = av
	} else {
		return fmt.Errorf("expected *wordpress.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+vault.Env()+"_", cfg.AddOnVault)
	if err != nil {
		return err
	}
	if av, ok := vv.(*vault.Config); ok {
		cfg.AddOnVault = av
	} else {
		return fmt.Errorf("expected *vault.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+jobs_pi.Env()+"_", cfg.AddOnJobsPi)
	if err != nil {
		return err
	}
	if av, ok := vv.(*jobs_pi.Config); ok {
		cfg.AddOnJobsPi = av
	} else {
		return fmt.Errorf("expected *jobs_pi.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+jobs_echo.Env("Job")+"_", cfg.AddOnJobsEcho)
	if err != nil {
		return err
	}
	if av, ok := vv.(*jobs_echo.Config); ok {
		cfg.AddOnJobsEcho = av
	} else {
		return fmt.Errorf("expected *jobs_echo.Config, got %T", vv)
	}
	if cfg.AddOnJobsEcho != nil {
		vv, err = parseEnvs(ENV_PREFIX+jobs_echo.EnvRepository("Job")+"_", cfg.AddOnJobsEcho.Repository)
		if err != nil {
			return err
		}
		if av, ok := vv.(*aws_v1_ecr.Repository); ok {
			cfg.AddOnJobsEcho.Repository = av
		} else {
			return fmt.Errorf("expected *aws_v1_ecr.Repository, got %T", vv)
		}
	}

	vv, err = parseEnvs(ENV_PREFIX+jobs_echo.Env("CronJob")+"_", cfg.AddOnCronJobsEcho)
	if err != nil {
		return err
	}
	if av, ok := vv.(*jobs_echo.Config); ok {
		cfg.AddOnCronJobsEcho = av
	} else {
		return fmt.Errorf("expected *jobs_echo.Config, got %T", vv)
	}
	if cfg.AddOnCronJobsEcho != nil {
		vv, err = parseEnvs(ENV_PREFIX+jobs_echo.EnvRepository("CronJob")+"_", cfg.AddOnCronJobsEcho.Repository)
		if err != nil {
			return err
		}
		if av, ok := vv.(*aws_v1_ecr.Repository); ok {
			cfg.AddOnCronJobsEcho.Repository = av
		} else {
			return fmt.Errorf("expected *aws_v1_ecr.Repository, got %T", vv)
		}
	}

	vv, err = parseEnvs(ENV_PREFIX+configmaps.Env()+"_", cfg.AddOnConfigmaps)
	if err != nil {
		return err
	}
	if av, ok := vv.(*configmaps.Config); ok {
		cfg.AddOnConfigmaps = av
	} else {
		return fmt.Errorf("expected *configmaps.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+csrs.Env()+"_", cfg.AddOnCSRs)
	if err != nil {
		return err
	}
	if av, ok := vv.(*csrs.Config); ok {
		cfg.AddOnCSRs = av
	} else {
		return fmt.Errorf("expected *csrs.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+secrets.Env()+"_", cfg.AddOnSecrets)
	if err != nil {
		return err
	}
	if av, ok := vv.(*secrets.Config); ok {
		cfg.AddOnSecrets = av
	} else {
		return fmt.Errorf("expected *secrets.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+clusterloader.Env()+"_", cfg.AddOnClusterloader)
	if err != nil {
		return err
	}
	if av, ok := vv.(*clusterloader.Config); ok {
		cfg.AddOnClusterloader = av
	} else {
		return fmt.Errorf("expected *clusterloader.Config, got %T", vv)
	}
	if cfg.AddOnClusterloader != nil {
		vv, err = parseEnvs(ENV_PREFIX+clusterloader.EnvTestOverride()+"_", cfg.AddOnClusterloader.TestOverride)
		if err != nil {
			return err
		}
		if av, ok := vv.(*clusterloader.TestOverride); ok {
			cfg.AddOnClusterloader.TestOverride = av
		} else {
			return fmt.Errorf("expected *clusterloader.TestOverride, got %T", vv)
		}
	}

	vv, err = parseEnvs(ENV_PREFIX+stress.Env()+"_", cfg.AddOnStress)
	if err != nil {
		return err
	}
	if av, ok := vv.(*stress.Config); ok {
		cfg.AddOnStress = av
	} else {
		return fmt.Errorf("expected *stress.Config, got %T", vv)
	}
	if cfg.AddOnStress != nil {
		vv, err = parseEnvs(ENV_PREFIX+stress.EnvRepository()+"_", cfg.AddOnStress.Repository)
		if err != nil {
			return err
		}
		if av, ok := vv.(*aws_v1_ecr.Repository); ok {
			cfg.AddOnStress.Repository = av
		} else {
			return fmt.Errorf("expected *aws_v1_ecr.Repository, got %T", vv)
		}
	}

	vv, err = parseEnvs(ENV_PREFIX+stress_in_cluster.Env()+"_", cfg.AddOnStressInCluster)
	if err != nil {
		return err
	}
	if av, ok := vv.(*stress_in_cluster.Config); ok {
		cfg.AddOnStressInCluster = av
	} else {
		return fmt.Errorf("expected *stress_in_cluster.Config, got %T", vv)
	}
	if cfg.AddOnStressInCluster != nil {
		vv, err = parseEnvs(ENV_PREFIX+stress_in_cluster.EnvK8sTesterStressRepository()+"_", cfg.AddOnStressInCluster.K8sTesterStressRepository)
		if err != nil {
			return err
		}
		if av, ok := vv.(*aws_v1_ecr.Repository); ok {
			cfg.AddOnStressInCluster.K8sTesterStressRepository = av
		} else {
			return fmt.Errorf("expected *aws_v1_ecr.Repository, got %T", vv)
		}

		vv, err = parseEnvs(ENV_PREFIX+stress_in_cluster.EnvK8sTesterStressCLI()+"_", cfg.AddOnStressInCluster.K8sTesterStressCLI)
		if err != nil {
			return err
		}
		if av, ok := vv.(*stress_in_cluster.K8sTesterStressCLI); ok {
			cfg.AddOnStressInCluster.K8sTesterStressCLI = av
		} else {
			return fmt.Errorf("expected *stress_in_cluster.K8sTesterStressCLI, got %T", vv)
		}

		vv, err = parseEnvs(ENV_PREFIX+stress_in_cluster.EnvK8sTesterStressCLIBusyboxRepository()+"_", cfg.AddOnStressInCluster.K8sTesterStressCLI.BusyboxRepository)
		if err != nil {
			return err
		}
		if av, ok := vv.(*aws_v1_ecr.Repository); ok {
			cfg.AddOnStressInCluster.K8sTesterStressCLI.BusyboxRepository = av
		} else {
			return fmt.Errorf("expected *aws_v1_ecr.Repository, got %T", vv)
		}
	}

	vv, err = parseEnvs(ENV_PREFIX+aqua.Env()+"_", cfg.AddOnAqua)
	if err != nil {
		return err
	}
	if av, ok := vv.(*aqua.Config); ok {
		cfg.AddOnAqua = av
	} else {
		return fmt.Errorf("expected *aqua.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+armory.Env()+"_", cfg.AddOnArmory)
	if err != nil {
		return err
	}
	if av, ok := vv.(*armory.Config); ok {
		cfg.AddOnArmory = av
	} else {
		return fmt.Errorf("expected *armory.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+epsagon.Env()+"_", cfg.AddOnEpsagon)
	if err != nil {
		return err
	}
	if av, ok := vv.(*epsagon.Config); ok {
		cfg.AddOnEpsagon = av
	} else {
		return fmt.Errorf("expected *epsagon.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+sysdig.Env()+"_", cfg.AddOnSysdig)
	if err != nil {
		return err
	}
	if av, ok := vv.(*sysdig.Config); ok {
		cfg.AddOnSysdig = av
	} else {
		return fmt.Errorf("expected *sysdig.Config, got %T", vv)
	}

	vv, err = parseEnvs(ENV_PREFIX+splunk.Env()+"_", cfg.AddOnSplunk)
	if err != nil {
		return err
	}
	if av, ok := vv.(*splunk.Config); ok {
		cfg.AddOnSplunk = av
	} else {
		return fmt.Errorf("expected *splunk.Config, got %T", vv)
	}

	return err
}