@@ -688,107 +688,168 @@ func TestValidInstanceTypeForProvider(t *testing.T) {
688
688
testCases := map [string ]struct {
689
689
variant variant.Variant
690
690
instanceTypes []string
691
+ providerConfig ProviderConfig
691
692
expectedResult bool
692
693
}{
693
694
"empty all" : {
694
695
variant : variant.Dummy {},
695
696
instanceTypes : []string {},
696
697
expectedResult : false ,
698
+ providerConfig : ProviderConfig {},
697
699
},
698
700
"empty aws" : {
699
701
variant : variant.AWSSEVSNP {},
700
702
instanceTypes : []string {},
701
703
expectedResult : false ,
704
+ providerConfig : ProviderConfig {},
702
705
},
703
706
"empty azure only CVMs" : {
704
707
variant : variant.AzureSEVSNP {},
705
708
instanceTypes : []string {},
706
709
expectedResult : false ,
710
+ providerConfig : ProviderConfig {},
707
711
},
708
712
"empty azure with non-CVMs" : {
709
713
variant : variant.AzureTrustedLaunch {},
710
714
instanceTypes : []string {},
711
715
expectedResult : false ,
716
+ providerConfig : ProviderConfig {},
712
717
},
713
718
"empty gcp" : {
714
719
variant : variant.GCPSEVES {},
715
720
instanceTypes : []string {},
716
721
expectedResult : false ,
722
+ providerConfig : ProviderConfig {},
717
723
},
718
724
"azure only CVMs (SNP)" : {
719
725
variant : variant.AzureSEVSNP {},
720
726
instanceTypes : instancetypes .AzureSNPInstanceTypes ,
721
727
expectedResult : true ,
728
+ providerConfig : ProviderConfig {},
722
729
},
723
730
"azure only CVMs (TDX)" : {
724
731
variant : variant.AzureTDX {},
725
732
instanceTypes : instancetypes .AzureTDXInstanceTypes ,
726
733
expectedResult : true ,
734
+ providerConfig : ProviderConfig {},
727
735
},
728
736
"azure trusted launch VMs" : {
729
737
variant : variant.AzureTrustedLaunch {},
730
738
instanceTypes : instancetypes .AzureTrustedLaunchInstanceTypes ,
731
739
expectedResult : true ,
740
+ providerConfig : ProviderConfig {},
732
741
},
733
742
"gcp" : {
734
743
variant : variant.GCPSEVES {},
735
744
instanceTypes : instancetypes .GCPInstanceTypes ,
736
745
expectedResult : true ,
746
+ providerConfig : ProviderConfig {},
737
747
},
738
748
"gcp sev-snp" : {
739
749
variant : variant.GCPSEVSNP {},
740
750
instanceTypes : instancetypes .GCPInstanceTypes ,
741
751
expectedResult : true ,
752
+ providerConfig : ProviderConfig {},
742
753
},
743
754
"put gcp when azure is set" : {
744
755
variant : variant.AzureSEVSNP {},
745
756
instanceTypes : instancetypes .GCPInstanceTypes ,
746
757
expectedResult : false ,
758
+ providerConfig : ProviderConfig {},
747
759
},
748
760
"put azure when gcp is set" : {
749
761
variant : variant.GCPSEVES {},
750
762
instanceTypes : instancetypes .AzureSNPInstanceTypes ,
751
763
expectedResult : false ,
764
+ providerConfig : ProviderConfig {},
752
765
},
753
766
// Testing every possible instance type for AWS is not feasible, so we just test a few based on known supported / unsupported families
754
767
// Also serves as a test for checkIfInstanceInValidAWSFamilys
755
768
"aws two valid instances" : {
756
769
variant : variant.AWSSEVSNP {},
757
770
instanceTypes : []string {"c5.xlarge" , "c5a.2xlarge" , "c5a.16xlarge" , "u-12tb1.112xlarge" },
758
771
expectedResult : false , // False because 2 two of the instances are not valid
772
+ providerConfig : ProviderConfig {},
759
773
},
760
774
"aws one valid instance one with too little vCPUs" : {
761
775
variant : variant.AWSSEVSNP {},
762
776
instanceTypes : []string {"c5.medium" },
763
777
expectedResult : false ,
778
+ providerConfig : ProviderConfig {},
764
779
},
765
780
"aws graviton sub-family unsupported" : {
766
781
variant : variant.AWSSEVSNP {},
767
782
instanceTypes : []string {"m6g.xlarge" , "r6g.2xlarge" , "x2gd.xlarge" , "g5g.8xlarge" },
768
783
expectedResult : false ,
784
+ providerConfig : ProviderConfig {},
769
785
},
770
786
"aws combined two valid instances as one string" : {
771
787
variant : variant.AWSSEVSNP {},
772
788
instanceTypes : []string {"c5.xlarge, c5a.2xlarge" },
773
789
expectedResult : false ,
790
+ providerConfig : ProviderConfig {},
774
791
},
775
792
"aws only CVMs" : {
776
793
variant : variant.AWSSEVSNP {},
777
794
instanceTypes : []string {"c6a.xlarge" , "m6a.xlarge" , "r6a.xlarge" },
778
795
expectedResult : true ,
796
+ providerConfig : ProviderConfig {},
779
797
},
780
798
"aws nitroTPM VMs" : {
781
799
variant : variant.AWSNitroTPM {},
782
800
instanceTypes : []string {"c5.xlarge" , "c5a.2xlarge" , "c5a.16xlarge" , "u-12tb1.112xlarge" },
783
801
expectedResult : true ,
802
+ providerConfig : ProviderConfig {},
803
+ },
804
+ "stackit valid flavors" : {
805
+ variant : variant.QEMUVTPM {},
806
+ instanceTypes : []string {
807
+ "m1a.2cd" ,
808
+ "m1a.4cd" ,
809
+ "m1a.8cd" ,
810
+ "m1a.16cd" ,
811
+ "m1a.30cd" ,
812
+ },
813
+ expectedResult : true ,
814
+ providerConfig : ProviderConfig {OpenStack : & OpenStackConfig {Cloud : "stackit" }},
815
+ },
816
+ "stackit not valid flavors" : {
817
+ variant : variant.QEMUVTPM {},
818
+ instanceTypes : []string {
819
+ // removed the c which indicates a confidential flavor
820
+ "m1a.2d" ,
821
+ "m1a.4d" ,
822
+ "m1a.8d" ,
823
+ "m1a.16d" ,
824
+ "m1a.30d" ,
825
+ },
826
+ expectedResult : false ,
827
+ providerConfig : ProviderConfig {OpenStack : & OpenStackConfig {Cloud : "stackit" }},
828
+ },
829
+ "openstack cloud named test" : {
830
+ variant : variant.QEMUVTPM {},
831
+ instanceTypes : []string {
832
+ "foo.bar" ,
833
+ "foo.bar1" ,
834
+ },
835
+ expectedResult : true ,
836
+ providerConfig : ProviderConfig {OpenStack : & OpenStackConfig {Cloud : "test" }},
837
+ },
838
+ "Qemutdx valid instance type" : {
839
+ variant : variant.QEMUTDX {},
840
+ instanceTypes : []string {
841
+ "foo.bar" ,
842
+ },
843
+ expectedResult : true ,
844
+ providerConfig : ProviderConfig {QEMU : & QEMUConfig {}},
784
845
},
785
846
}
786
847
for name , tc := range testCases {
787
848
t .Run (name , func (t * testing.T ) {
788
849
assert := assert .New (t )
789
850
for _ , instanceType := range tc .instanceTypes {
790
851
assert .Equal (
791
- tc .expectedResult , validInstanceTypeForProvider (instanceType , tc .variant ),
852
+ tc .expectedResult , validInstanceTypeForProvider (instanceType , tc .variant , tc . providerConfig ),
792
853
instanceType ,
793
854
)
794
855
}
0 commit comments