Skip to content

Commit 11bf750

Browse files
update integration tests for helper
1 parent 62d908c commit 11bf750

File tree

3 files changed

+128
-64
lines changed

3 files changed

+128
-64
lines changed

helpers/foundation-deployer/stages/apply.go

Lines changed: 122 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -278,13 +278,24 @@ func DeployNetworksStage(t testing.TB, s steps.Steps, tfvars GlobalTFVars, outpu
278278

279279
step := GetNetworkStep(c.EnableHubAndSpoke)
280280

281-
// shared
282-
sharedTfvars := NetSharedTfvars{
283-
TargetNameServerAddresses: tfvars.TargetNameServerAddresses,
284-
}
285-
err := utils.WriteTfvars(filepath.Join(c.FoundationPath, step, "shared.auto.tfvars"), sharedTfvars)
286-
if err != nil {
287-
return err
281+
if c.EnableHubAndSpoke {
282+
// shared
283+
sharedTfvars := NetSharedTfvars{
284+
TargetNameServerAddresses: tfvars.TargetNameServerAddresses,
285+
}
286+
err := utils.WriteTfvars(filepath.Join(c.FoundationPath, step, "shared.auto.tfvars"), sharedTfvars)
287+
if err != nil {
288+
return err
289+
}
290+
291+
} else {
292+
productionTfvars := NetSharedTfvars{
293+
TargetNameServerAddresses: tfvars.TargetNameServerAddresses,
294+
}
295+
err := utils.WriteTfvars(filepath.Join(c.FoundationPath, step, "production.auto.tfvars"), productionTfvars)
296+
if err != nil {
297+
return err
298+
}
288299
}
289300
// common
290301
commonTfvars := NetCommonTfvars{
@@ -295,7 +306,7 @@ func DeployNetworksStage(t testing.TB, s steps.Steps, tfvars GlobalTFVars, outpu
295306
if tfvars.EnableHubAndSpoke {
296307
commonTfvars.EnableHubAndSpokeTransitivity = &tfvars.EnableHubAndSpokeTransitivity
297308
}
298-
err = utils.WriteTfvars(filepath.Join(c.FoundationPath, step, "common.auto.tfvars"), commonTfvars)
309+
err := utils.WriteTfvars(filepath.Join(c.FoundationPath, step, "common.auto.tfvars"), commonTfvars)
299310
if err != nil {
300311
return err
301312
}
@@ -308,37 +319,67 @@ func DeployNetworksStage(t testing.TB, s steps.Steps, tfvars GlobalTFVars, outpu
308319
return err
309320
}
310321

311-
conf := utils.CloneCSR(t, NetworksRepo, filepath.Join(c.CheckoutPath, NetworksRepo), outputs.CICDProject, c.Logger)
312-
stageConf := StageConf{
313-
Stage: NetworksRepo,
314-
StageSA: outputs.NetworkSA,
315-
CICDProject: outputs.CICDProject,
316-
DefaultRegion: outputs.DefaultRegion,
317-
Step: step,
318-
Repo: NetworksRepo,
319-
GitConf: conf,
320-
HasManualStep: true,
321-
GroupingUnits: []string{"envs"},
322-
Envs: []string{"production", "nonproduction", "development"},
323-
}
322+
if c.EnableHubAndSpoke {
324323

325-
return deployStage(t, stageConf, s, c)
324+
conf := utils.CloneCSR(t, NetworksRepo, filepath.Join(c.CheckoutPath, NetworksRepo), outputs.CICDProject, c.Logger)
325+
stageConf := StageConf{
326+
Stage: NetworksRepo,
327+
StageSA: outputs.NetworkSA,
328+
CICDProject: outputs.CICDProject,
329+
DefaultRegion: outputs.DefaultRegion,
330+
Step: step,
331+
Repo: NetworksRepo,
332+
GitConf: conf,
333+
HasLocalStep: true,
334+
LocalSteps: []string{"shared"},
335+
GroupingUnits: []string{"envs"},
336+
Envs: []string{"production", "nonproduction", "development"},
337+
}
338+
return deployStage(t, stageConf, s, c)
339+
} else {
340+
conf := utils.CloneCSR(t, NetworksRepo, filepath.Join(c.CheckoutPath, NetworksRepo), outputs.CICDProject, c.Logger)
341+
stageConf := StageConf{
342+
Stage: NetworksRepo,
343+
StageSA: outputs.NetworkSA,
344+
CICDProject: outputs.CICDProject,
345+
DefaultRegion: outputs.DefaultRegion,
346+
Step: step,
347+
Repo: NetworksRepo,
348+
GitConf: conf,
349+
HasLocalStep: true,
350+
LocalSteps: []string{"production", "shared"},
351+
GroupingUnits: []string{"envs"},
352+
Envs: []string{"nonproduction", "development"},
353+
}
354+
return deployStage(t, stageConf, s, c)
355+
}
326356
}
327357

328358
func DeployProjectsStage(t testing.TB, s steps.Steps, tfvars GlobalTFVars, outputs BootstrapOutputs, c CommonConf) error {
329-
// shared
330-
sharedTfvars := ProjSharedTfvars{
331-
DefaultRegion: tfvars.DefaultRegion,
332-
}
333-
err := utils.WriteTfvars(filepath.Join(c.FoundationPath, ProjectsStep, "shared.auto.tfvars"), sharedTfvars)
334-
if err != nil {
335-
return err
359+
360+
if c.EnableHubAndSpoke {
361+
// shared
362+
sharedTfvars := ProjSharedTfvars{
363+
DefaultRegion: tfvars.DefaultRegion,
364+
}
365+
err := utils.WriteTfvars(filepath.Join(c.FoundationPath, ProjectsStep, "shared.auto.tfvars"), sharedTfvars)
366+
if err != nil {
367+
return err
368+
}
369+
} else {
370+
productionTfvars := ProjSharedTfvars{
371+
DefaultRegion: tfvars.DefaultRegion,
372+
}
373+
err := utils.WriteTfvars(filepath.Join(c.FoundationPath, ProjectsStep, "production.auto.tfvars"), productionTfvars)
374+
if err != nil {
375+
return err
376+
}
336377
}
337378
// common
338379
commonTfvars := ProjCommonTfvars{
339380
RemoteStateBucket: outputs.RemoteStateBucket,
340381
}
341-
err = utils.WriteTfvars(filepath.Join(c.FoundationPath, ProjectsStep, "common.auto.tfvars"), commonTfvars)
382+
err := utils.WriteTfvars(filepath.Join(c.FoundationPath, ProjectsStep, "common.auto.tfvars"), commonTfvars)
342383
if err != nil {
343384
return err
344385
}
@@ -359,22 +400,40 @@ func DeployProjectsStage(t testing.TB, s steps.Steps, tfvars GlobalTFVars, outpu
359400
}
360401
}
361402

362-
conf := utils.CloneCSR(t, ProjectsRepo, filepath.Join(c.CheckoutPath, ProjectsRepo), outputs.CICDProject, c.Logger)
363-
stageConf := StageConf{
364-
Stage: ProjectsRepo,
365-
StageSA: outputs.ProjectsSA,
366-
CICDProject: outputs.CICDProject,
367-
DefaultRegion: outputs.DefaultRegion,
368-
Step: ProjectsStep,
369-
Repo: ProjectsRepo,
370-
GitConf: conf,
371-
HasManualStep: true,
372-
GroupingUnits: []string{"business_unit_1"},
373-
Envs: []string{"production", "nonproduction", "development"},
403+
if c.EnableHubAndSpoke {
404+
405+
conf := utils.CloneCSR(t, ProjectsRepo, filepath.Join(c.CheckoutPath, ProjectsRepo), outputs.CICDProject, c.Logger)
406+
stageConf := StageConf{
407+
Stage: ProjectsRepo,
408+
StageSA: outputs.ProjectsSA,
409+
CICDProject: outputs.CICDProject,
410+
DefaultRegion: outputs.DefaultRegion,
411+
Step: ProjectsStep,
412+
Repo: ProjectsRepo,
413+
GitConf: conf,
414+
HasLocalStep: true,
415+
LocalSteps: []string{"shared"},
416+
GroupingUnits: []string{"business_unit_1"},
417+
Envs: []string{"production", "nonproduction", "development"},
418+
}
419+
return deployStage(t, stageConf, s, c)
420+
} else {
421+
conf := utils.CloneCSR(t, ProjectsRepo, filepath.Join(c.CheckoutPath, ProjectsRepo), outputs.CICDProject, c.Logger)
422+
stageConf := StageConf{
423+
Stage: ProjectsRepo,
424+
StageSA: outputs.ProjectsSA,
425+
CICDProject: outputs.CICDProject,
426+
DefaultRegion: outputs.DefaultRegion,
427+
Step: ProjectsStep,
428+
Repo: ProjectsRepo,
429+
GitConf: conf,
430+
HasLocalStep: true,
431+
LocalSteps: []string{"production", "shared"},
432+
GroupingUnits: []string{"business_unit_1"},
433+
Envs: []string{"nonproduction", "development"},
434+
}
435+
return deployStage(t, stageConf, s, c)
374436
}
375-
376-
return deployStage(t, stageConf, s, c)
377-
378437
}
379438

380439
func DeployExampleAppStage(t testing.TB, s steps.Steps, tfvars GlobalTFVars, outputs InfraPipelineOutputs, c CommonConf) error {
@@ -433,22 +492,25 @@ func deployStage(t testing.TB, sc StageConf, s steps.Steps, c CommonConf) error
433492
return err
434493
}
435494

436-
shared := []string{}
437-
if sc.HasManualStep {
438-
shared = sc.GroupingUnits
495+
groupunit := []string{}
496+
if sc.HasLocalStep {
497+
groupunit = sc.GroupingUnits
439498
}
440-
for _, bu := range shared {
441-
buOptions := &terraform.Options{
442-
TerraformDir: filepath.Join(filepath.Join(c.CheckoutPath, sc.Repo), bu, "shared"),
443-
Logger: c.Logger,
444-
NoColor: true,
445-
}
446499

447-
err := s.RunStep(fmt.Sprintf("%s.%s.apply-shared", sc.Stage, bu), func() error {
448-
return applyLocal(t, buOptions, sc.StageSA, c.PolicyPath, c.ValidatorProject)
449-
})
450-
if err != nil {
451-
return err
500+
for _, bu := range groupunit {
501+
for _, localStep := range sc.LocalSteps {
502+
buOptions := &terraform.Options{
503+
TerraformDir: filepath.Join(filepath.Join(c.CheckoutPath, sc.Repo), bu, localStep),
504+
Logger: c.Logger,
505+
NoColor: true,
506+
}
507+
508+
err := s.RunStep(fmt.Sprintf("%s.%s.apply-shared", sc.Stage, bu), func() error {
509+
return applyLocal(t, buOptions, sc.StageSA, c.PolicyPath, c.ValidatorProject)
510+
})
511+
if err != nil {
512+
return err
513+
}
452514
}
453515
}
454516

@@ -514,6 +576,7 @@ func copyStepCode(t testing.TB, conf utils.GitRepo, foundationPath, checkoutPath
514576
}
515577

516578
func planStage(t testing.TB, conf utils.GitRepo, project, region, repo string) error {
579+
517580
err := conf.CommitFiles(fmt.Sprintf("Initialize %s repo", repo))
518581
if err != nil {
519582
return err

helpers/foundation-deployer/stages/data.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,10 @@ type StageConf struct {
6363
Repo string
6464
CustomTargetDirPath string
6565
GitConf utils.GitRepo
66-
HasManualStep bool
66+
HasLocalStep bool
6767
GroupingUnits []string
6868
Envs []string
69+
LocalSteps []string
6970
}
7071

7172
type BootstrapOutputs struct {
@@ -307,7 +308,7 @@ func GetInfraPipelineOutputs(t testing.TB, checkoutPath, workspace string) Infra
307308
func ReadGlobalTFVars(file string) (GlobalTFVars, error) {
308309
var globalTfvars GlobalTFVars
309310
if file == "" {
310-
return globalTfvars, fmt.Errorf("tfvars file is required.")
311+
return globalTfvars, fmt.Errorf("tfvars file is required")
311312
}
312313
_, err := os.Stat(file)
313314
if os.IsNotExist(err) {

helpers/foundation-deployer/stages/destroy.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ func DestroyNetworksStage(t testing.TB, s steps.Steps, outputs BootstrapOutputs,
120120
CICDProject: outputs.CICDProject,
121121
Step: step,
122122
Repo: NetworksRepo,
123-
HasManualStep: true,
123+
HasLocalStep: true,
124124
GroupingUnits: []string{"envs"},
125125
Envs: []string{"development", "nonproduction", "production"},
126126
}
@@ -134,7 +134,7 @@ func DestroyProjectsStage(t testing.TB, s steps.Steps, outputs BootstrapOutputs,
134134
CICDProject: outputs.CICDProject,
135135
Step: ProjectsStep,
136136
Repo: ProjectsRepo,
137-
HasManualStep: true,
137+
HasLocalStep: true,
138138
GroupingUnits: []string{"business_unit_1"},
139139
Envs: []string{"development", "nonproduction", "production"},
140140
}
@@ -188,7 +188,7 @@ func destroyStage(t testing.TB, sc StageConf, s steps.Steps, c CommonConf) error
188188
}
189189
}
190190
groupingUnits := []string{}
191-
if sc.HasManualStep {
191+
if sc.HasLocalStep {
192192
groupingUnits = sc.GroupingUnits
193193
}
194194
for _, g := range groupingUnits {

0 commit comments

Comments
 (0)