func DeployProjectsStage()

in helpers/foundation-deployer/stages/apply.go [336:384]


func DeployProjectsStage(t testing.TB, s steps.Steps, tfvars GlobalTFVars, outputs BootstrapOutputs, c CommonConf) error {
	// shared
	sharedTfvars := ProjSharedTfvars{
		DefaultRegion: tfvars.DefaultRegion,
	}
	err := utils.WriteTfvars(filepath.Join(c.FoundationPath, ProjectsStep, "shared.auto.tfvars"), sharedTfvars)
	if err != nil {
		return err
	}
	// common
	commonTfvars := ProjCommonTfvars{
		RemoteStateBucket: outputs.RemoteStateBucket,
	}
	err = utils.WriteTfvars(filepath.Join(c.FoundationPath, ProjectsStep, "common.auto.tfvars"), commonTfvars)
	if err != nil {
		return err
	}
	//for each environment
	envTfvars := ProjEnvTfvars{
		ProjectsKMSLocation: tfvars.ProjectsKMSLocation,
		ProjectsGCSLocation: tfvars.ProjectsGCSLocation,
	}
	for _, envfile := range []string{
		"development.auto.tfvars",
		"non-production.auto.tfvars",
		"production.auto.tfvars"} {
		err = utils.WriteTfvars(filepath.Join(c.FoundationPath, ProjectsStep, envfile), envTfvars)
		if err != nil {
			return err
		}
	}

	conf := utils.CloneCSR(t, ProjectsRepo, filepath.Join(c.CheckoutPath, ProjectsRepo), outputs.CICDProject, c.Logger)
	stageConf := StageConf{
		Stage:         ProjectsRepo,
		StageSA:       outputs.ProjectsSA,
		CICDProject:   outputs.CICDProject,
		DefaultRegion: outputs.DefaultRegion,
		Step:          ProjectsStep,
		Repo:          ProjectsRepo,
		GitConf:       conf,
		HasManualStep: true,
		GroupingUnits: []string{"business_unit_1", "business_unit_2"},
		Envs:          []string{"production", "non-production", "development"},
	}

	return deployStage(t, stageConf, s, c)

}