@@ -588,60 +588,10 @@ func (r *ConfigurationReconciler) preCheck(ctx context.Context, configuration *v
588
588
}
589
589
}
590
590
591
- if meta .GitCredentialsSecretReference != nil {
592
- gitCreds , err := GetGitCredentialsSecret (ctx , k8sClient , meta .GitCredentialsSecretReference )
593
- if gitCreds == nil {
594
- msg := string (types .InvalidGitCredentialsSecretReference )
595
- if err != nil {
596
- msg = err .Error ()
597
- }
598
- if updateStatusErr := meta .updateApplyStatus (ctx , k8sClient , types .InvalidGitCredentialsSecretReference , msg ); updateStatusErr != nil {
599
- return errors .Wrap (updateStatusErr , msg )
600
- }
601
- return errors .New (msg )
602
- }
603
- }
604
-
605
- if meta .TerraformCredentialsSecretReference != nil {
606
- terraformCreds , err := GetTerraformCredentialsSecret (ctx , k8sClient , meta .TerraformCredentialsSecretReference )
607
- if terraformCreds == nil {
608
- msg := string (types .InvalidTerraformCredentialsSecretReference )
609
- if err != nil {
610
- msg = err .Error ()
611
- }
612
- if updateStatusErr := meta .updateApplyStatus (ctx , k8sClient , types .InvalidTerraformCredentialsSecretReference , msg ); updateStatusErr != nil {
613
- return errors .Wrap (updateStatusErr , msg )
614
- }
615
- return errors .New (msg )
616
- }
617
- }
618
-
619
- if meta .TerraformRCConfigMapReference != nil {
620
- terraformRegistryConfig , err := GetTerraformRegistryConfigMap (ctx , k8sClient , meta .TerraformRCConfigMapReference )
621
- if terraformRegistryConfig == nil {
622
- msg := string (types .InvalidTerraformRCConfigMapReference )
623
- if err != nil {
624
- msg = err .Error ()
625
- }
626
- if updateStatusErr := meta .updateApplyStatus (ctx , k8sClient , types .InvalidTerraformRCConfigMapReference , msg ); updateStatusErr != nil {
627
- return errors .Wrap (updateStatusErr , msg )
628
- }
629
- return errors .New (msg )
630
- }
631
- }
632
-
633
- if meta .TerraformCredentialsHelperConfigMapReference != nil {
634
- terraformCredentialsHelper , err := GetTerraformCredentialsHelperConfigMap (ctx , k8sClient , meta .TerraformCredentialsHelperConfigMapReference )
635
- if terraformCredentialsHelper == nil {
636
- msg := string (types .InvalidTerraformCredentialsHelperConfigMapReference )
637
- if err != nil {
638
- msg = err .Error ()
639
- }
640
- if updateStatusErr := meta .updateApplyStatus (ctx , k8sClient , types .InvalidTerraformCredentialsHelperConfigMapReference , msg ); updateStatusErr != nil {
641
- return errors .Wrap (updateStatusErr , msg )
642
- }
643
- return errors .New (msg )
644
- }
591
+ // validate secretreferences and config maps. 1. GitCredentialsSecretReference 2. TerraformCredentialsSecretReference 3. TerraformRCConfigMapReference
592
+ // 4. TerraformCredentialsHelperConfigMapReference
593
+ if err := meta .validateSecretAndConfigMap (ctx , k8sClient ); err != nil {
594
+ return err
645
595
}
646
596
647
597
// Render configuration with backend
@@ -710,6 +660,81 @@ func (r *ConfigurationReconciler) preCheck(ctx context.Context, configuration *v
710
660
return createTerraformExecutorClusterRole (ctx , k8sClient , fmt .Sprintf ("%s-%s" , meta .ControllerNamespace , ClusterRoleName ))
711
661
}
712
662
663
+ func (meta * TFConfigurationMeta ) validateSecretAndConfigMap (ctx context.Context , k8sClient client.Client ) error {
664
+
665
+ secretConfigMapToCheck := []struct {
666
+ ref * v1.SecretReference
667
+ notFoundState types.ConfigurationState
668
+ refType string
669
+ }{
670
+ {
671
+ ref : meta .GitCredentialsSecretReference ,
672
+ notFoundState : types .InvalidGitCredentialsSecretReference ,
673
+ refType : "GitCredentialsSecretReference" ,
674
+ },
675
+ {
676
+ ref : meta .TerraformCredentialsSecretReference ,
677
+ notFoundState : types .InvalidTerraformCredentialsSecretReference ,
678
+ refType : "TerraformCredentialsSecretReference" ,
679
+ },
680
+ {
681
+ ref : meta .TerraformRCConfigMapReference ,
682
+ notFoundState : types .InvalidTerraformRCConfigMapReference ,
683
+ refType : "TerraformRCConfigMapReference" ,
684
+ },
685
+ {
686
+ ref : meta .TerraformCredentialsHelperConfigMapReference ,
687
+ notFoundState : types .InvalidTerraformCredentialsHelperConfigMapReference ,
688
+ refType : "TerraformCredentialsHelperConfigMapReference" ,
689
+ },
690
+ }
691
+
692
+ var checkErr error
693
+ var checkErrFlag bool
694
+ for _ , check := range secretConfigMapToCheck {
695
+ if check .ref != nil {
696
+ switch check .refType {
697
+ case "GitCredentialsSecretReference" :
698
+ gitCreds , err := GetGitCredentialsSecret (ctx , k8sClient , check .ref )
699
+ if gitCreds == nil {
700
+ checkErr = err
701
+ checkErrFlag = true
702
+ }
703
+ case "TerraformCredentialsSecretReference" :
704
+ terraformCreds , err := GetTerraformCredentialsSecret (ctx , k8sClient , check .ref )
705
+ if terraformCreds == nil {
706
+ checkErr = err
707
+ checkErrFlag = true
708
+ }
709
+ case "TerraformRCConfigMapReference" :
710
+ terraformRegistryConfig , err := GetTerraformRCConfigMap (ctx , k8sClient , check .ref )
711
+ if terraformRegistryConfig == nil {
712
+ checkErr = err
713
+ checkErrFlag = true
714
+ }
715
+ case "TerraformCredentialsHelperConfigMapReference" :
716
+ terraformCredentialsHelper , err := GetTerraformCredentialsHelperConfigMap (ctx , k8sClient , check .ref )
717
+ if terraformCredentialsHelper == nil {
718
+ checkErr = err
719
+ checkErrFlag = true
720
+ }
721
+ }
722
+
723
+ if checkErrFlag {
724
+ msg := string (check .notFoundState )
725
+ if checkErr != nil {
726
+ msg = checkErr .Error ()
727
+ }
728
+ if updateStatusErr := meta .updateApplyStatus (ctx , k8sClient , check .notFoundState , msg ); updateStatusErr != nil {
729
+ return errors .Wrap (updateStatusErr , msg )
730
+ }
731
+ return errors .New (msg )
732
+ }
733
+ }
734
+ }
735
+ return nil
736
+ }
737
+
713
738
func (meta * TFConfigurationMeta ) updateApplyStatus (ctx context.Context , k8sClient client.Client , state types.ConfigurationState , message string ) error {
714
739
var configuration v1beta2.Configuration
715
740
if err := k8sClient .Get (ctx , client.ObjectKey {Name : meta .Name , Namespace : meta .Namespace }, & configuration ); err == nil {
@@ -1460,9 +1485,8 @@ func GetGitCredentialsSecret(ctx context.Context, k8sClient client.Client, secre
1460
1485
secret , _ , err := GetSecretOrConfigMap (ctx , k8sClient , true , secretRef , needSecretKeys , errMsg , keyErrMsg )
1461
1486
if secret != nil {
1462
1487
return secret , nil
1463
- } else {
1464
- return nil , err
1465
1488
}
1489
+ return nil , err
1466
1490
}
1467
1491
1468
1492
// GetTerraformCredentialsSecret will get the secret containing the terraform credentials
@@ -1473,22 +1497,20 @@ func GetTerraformCredentialsSecret(ctx context.Context, k8sClient client.Client,
1473
1497
secret , _ , err := GetSecretOrConfigMap (ctx , k8sClient , true , secretRef , needSecretKeys , errMsg , keyErrMsg )
1474
1498
if secret != nil {
1475
1499
return secret , nil
1476
- } else {
1477
- return nil , err
1478
1500
}
1501
+ return nil , err
1479
1502
}
1480
1503
1481
- // GetTerraformRegistryConfigMap will get the config map containing the terraform registry configuration
1482
- func GetTerraformRegistryConfigMap (ctx context.Context , k8sClient client.Client , configMapRef * v1.SecretReference ) (* v1.ConfigMap , error ) {
1504
+ // GetTerraformRCConfigMap will get the config map containing the terraform registry configuration
1505
+ func GetTerraformRCConfigMap (ctx context.Context , k8sClient client.Client , configMapRef * v1.SecretReference ) (* v1.ConfigMap , error ) {
1483
1506
neededKeys := []string {TerraformRegistryConfig }
1484
1507
errMsg := "Failed to get the terraform registry config configmap"
1485
1508
keyErrMsg := "not in terraform registry configuration configmap"
1486
1509
_ , configMap , err := GetSecretOrConfigMap (ctx , k8sClient , false , configMapRef , neededKeys , errMsg , keyErrMsg )
1487
1510
if configMap != nil {
1488
1511
return configMap , nil
1489
- } else {
1490
- return nil , err
1491
1512
}
1513
+ return nil , err
1492
1514
}
1493
1515
1494
1516
// GetTerraformCredentialsHelperConfigMap get the config map containing the terraform credentials helper
@@ -1498,9 +1520,8 @@ func GetTerraformCredentialsHelperConfigMap(ctx context.Context, k8sClient clien
1498
1520
_ , configMap , err := GetSecretOrConfigMap (ctx , k8sClient , false , configMapRef , neededKeys , errMsg , "" )
1499
1521
if configMap != nil {
1500
1522
return configMap , nil
1501
- } else {
1502
- return nil , err
1503
1523
}
1524
+ return nil , err
1504
1525
}
1505
1526
1506
1527
func GetSecretOrConfigMap (ctx context.Context , k8sClient client.Client , isSecret bool , ref * v1.SecretReference , neededKeys []string , errMsg string , keyErrMsg string ) (* v1.Secret , * v1.ConfigMap , error ) {
@@ -1538,7 +1559,7 @@ func GetSecretOrConfigMap(ctx context.Context, k8sClient client.Client, isSecret
1538
1559
}
1539
1560
if isSecret {
1540
1561
return secret , nil , nil
1541
- } else {
1542
- return nil , configMap , nil
1543
1562
}
1563
+
1564
+ return nil , configMap , nil
1544
1565
}
0 commit comments