@@ -4,8 +4,11 @@ package test
44import (
55 "testing"
66
7+ "github.com/IBM/go-sdk-core/core"
78 "github.com/gruntwork-io/terratest/modules/terraform"
89 "github.com/stretchr/testify/assert"
10+ "github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/cloudinfo"
11+ "github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/testaddons"
912 "github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/testhelper"
1013 "github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/testschematic"
1114)
@@ -192,3 +195,257 @@ func TestFSCloudInSchematic(t *testing.T) {
192195 err := options .RunSchematicTest ()
193196 assert .Nil (t , err , "This should not have errored" )
194197}
198+
199+ func TestAddonPermutations (t * testing.T ) {
200+
201+ testCases := []testaddons.AddonTestCase {
202+ {
203+ Name : "no-addons" ,
204+ Prefix : "no-addons" ,
205+ Dependencies : []cloudinfo.AddonConfig {
206+ {
207+ OfferingName : "deploy-arch-ibm-slz-vpc" ,
208+ OfferingFlavor : "fully-configurable" ,
209+ Enabled : core .BoolPtr (false ),
210+ },
211+ {
212+ OfferingName : "deploy-arch-ibm-account-infra-base" ,
213+ OfferingFlavor : "resource-group-only" ,
214+ Enabled : core .BoolPtr (false ),
215+ },
216+ {
217+ OfferingName : "deploy-arch-ibm-kms" ,
218+ OfferingFlavor : "fully-configurable" ,
219+ Enabled : core .BoolPtr (false ),
220+ },
221+ {
222+ OfferingName : "deploy-arch-ibm-cos" ,
223+ OfferingFlavor : "instance" ,
224+ Enabled : core .BoolPtr (false ),
225+ },
226+ {
227+ OfferingName : "deploy-arch-ibm-cloud-logs" ,
228+ OfferingFlavor : "fully-configurable" ,
229+ Enabled : core .BoolPtr (false ),
230+ },
231+ {
232+ OfferingName : "deploy-arch-ibm-cloud-monitoring" ,
233+ OfferingFlavor : "fully-configurable" ,
234+ Enabled : core .BoolPtr (false ),
235+ },
236+ {
237+ OfferingName : "deploy-arch-ibm-activity-tracker" ,
238+ OfferingFlavor : "fully-configurable" ,
239+ Enabled : core .BoolPtr (false ),
240+ },
241+ {
242+ OfferingName : "deploy-arch-ibm-secrets-manager" ,
243+ OfferingFlavor : "fully-configurable" ,
244+ Enabled : core .BoolPtr (false ),
245+ },
246+ {
247+ OfferingName : "deploy-arch-ibm-scc-workload-protection" ,
248+ OfferingFlavor : "fully-configurable" ,
249+ Enabled : core .BoolPtr (false ),
250+ },
251+ },
252+ },
253+ {
254+ Name : "all-addons" ,
255+ Prefix : "all-addons" ,
256+ Dependencies : []cloudinfo.AddonConfig {
257+ {
258+ OfferingName : "deploy-arch-ibm-slz-vpc" ,
259+ OfferingFlavor : "fully-configurable" ,
260+ Enabled : core .BoolPtr (true ),
261+ },
262+ {
263+ OfferingName : "deploy-arch-ibm-account-infra-base" ,
264+ OfferingFlavor : "resource-group-only" ,
265+ Enabled : core .BoolPtr (true ),
266+ },
267+ {
268+ OfferingName : "deploy-arch-ibm-kms" ,
269+ OfferingFlavor : "fully-configurable" ,
270+ Enabled : core .BoolPtr (true ),
271+ },
272+ {
273+ OfferingName : "deploy-arch-ibm-cos" ,
274+ OfferingFlavor : "instance" ,
275+ Enabled : core .BoolPtr (true ),
276+ },
277+ {
278+ OfferingName : "deploy-arch-ibm-cloud-logs" ,
279+ OfferingFlavor : "fully-configurable" ,
280+ Enabled : core .BoolPtr (true ),
281+ },
282+ {
283+ OfferingName : "deploy-arch-ibm-cloud-monitoring" ,
284+ OfferingFlavor : "fully-configurable" ,
285+ Enabled : core .BoolPtr (true ),
286+ },
287+ {
288+ OfferingName : "deploy-arch-ibm-activity-tracker" ,
289+ OfferingFlavor : "fully-configurable" ,
290+ Enabled : core .BoolPtr (true ),
291+ },
292+ {
293+ OfferingName : "deploy-arch-ibm-secrets-manager" ,
294+ OfferingFlavor : "fully-configurable" ,
295+ Enabled : core .BoolPtr (true ),
296+ },
297+ {
298+ OfferingName : "deploy-arch-ibm-scc-workload-protection" ,
299+ OfferingFlavor : "fully-configurable" ,
300+ Enabled : core .BoolPtr (true ),
301+ },
302+ },
303+ },
304+ {
305+ Name : "scc-with-appconfig-disabled" ,
306+ Prefix : "scc-no-app" ,
307+ Dependencies : []cloudinfo.AddonConfig {
308+ {
309+ OfferingName : "deploy-arch-ibm-slz-vpc" ,
310+ OfferingFlavor : "fully-configurable" ,
311+ Enabled : core .BoolPtr (false ),
312+ },
313+ {
314+ OfferingName : "deploy-arch-ibm-account-infra-base" ,
315+ OfferingFlavor : "resource-group-only" ,
316+ Enabled : core .BoolPtr (false ),
317+ },
318+ {
319+ OfferingName : "deploy-arch-ibm-kms" ,
320+ OfferingFlavor : "fully-configurable" ,
321+ Enabled : core .BoolPtr (false ),
322+ },
323+ {
324+ OfferingName : "deploy-arch-ibm-cos" ,
325+ OfferingFlavor : "instance" ,
326+ Enabled : core .BoolPtr (false ),
327+ },
328+ {
329+ OfferingName : "deploy-arch-ibm-cloud-logs" ,
330+ OfferingFlavor : "fully-configurable" ,
331+ Enabled : core .BoolPtr (false ),
332+ },
333+ {
334+ OfferingName : "deploy-arch-ibm-cloud-monitoring" ,
335+ OfferingFlavor : "fully-configurable" ,
336+ Enabled : core .BoolPtr (false ),
337+ },
338+ {
339+ OfferingName : "deploy-arch-ibm-activity-tracker" ,
340+ OfferingFlavor : "fully-configurable" ,
341+ Enabled : core .BoolPtr (false ),
342+ },
343+ {
344+ OfferingName : "deploy-arch-ibm-secrets-manager" ,
345+ OfferingFlavor : "fully-configurable" ,
346+ Enabled : core .BoolPtr (false ),
347+ },
348+ {
349+ OfferingName : "deploy-arch-ibm-scc-workload-protection" ,
350+ OfferingFlavor : "fully-configurable" ,
351+ Enabled : core .BoolPtr (true ),
352+ },
353+ {
354+ OfferingName : "deploy-arch-ibm-apprapp" ,
355+ OfferingFlavor : "fully-configurable" ,
356+ Enabled : core .BoolPtr (false ),
357+ },
358+ },
359+ },
360+ {
361+ Name : "observability-with-no-deps" ,
362+ Prefix : "obs-no-dep" ,
363+ Dependencies : []cloudinfo.AddonConfig {
364+ {
365+ OfferingName : "deploy-arch-ibm-slz-vpc" ,
366+ OfferingFlavor : "fully-configurable" ,
367+ Enabled : core .BoolPtr (false ),
368+ },
369+ {
370+ OfferingName : "deploy-arch-ibm-account-infra-base" ,
371+ OfferingFlavor : "resource-group-only" ,
372+ Enabled : core .BoolPtr (false ),
373+ },
374+ {
375+ OfferingName : "deploy-arch-ibm-kms" ,
376+ OfferingFlavor : "fully-configurable" ,
377+ Enabled : core .BoolPtr (false ),
378+ },
379+ {
380+ OfferingName : "deploy-arch-ibm-cos" ,
381+ OfferingFlavor : "instance" ,
382+ Enabled : core .BoolPtr (false ),
383+ },
384+ {
385+ OfferingName : "deploy-arch-ibm-cloud-logs" ,
386+ OfferingFlavor : "fully-configurable" ,
387+ Enabled : core .BoolPtr (true ),
388+ },
389+ {
390+ OfferingName : "deploy-arch-ibm-cloud-monitoring" ,
391+ OfferingFlavor : "fully-configurable" ,
392+ Enabled : core .BoolPtr (true ),
393+ },
394+ {
395+ OfferingName : "deploy-arch-ibm-activity-tracker" ,
396+ OfferingFlavor : "fully-configurable" ,
397+ Enabled : core .BoolPtr (true ),
398+ },
399+ {
400+ OfferingName : "deploy-arch-ibm-secrets-manager" ,
401+ OfferingFlavor : "fully-configurable" ,
402+ Enabled : core .BoolPtr (false ),
403+ },
404+ {
405+ OfferingName : "deploy-arch-ibm-scc-workload-protection" ,
406+ OfferingFlavor : "fully-configurable" ,
407+ Enabled : core .BoolPtr (false ),
408+ },
409+ {
410+ OfferingName : "deploy-arch-ibm-event-notifications" ,
411+ OfferingFlavor : "fully-configurable" ,
412+ Enabled : core .BoolPtr (false ),
413+ },
414+ },
415+ },
416+ }
417+
418+ baseOptions := testaddons .TestAddonsOptionsDefault (& testaddons.TestAddonOptions {
419+ Testing : t ,
420+ Prefix : "adv-matrix" ,
421+ ResourceGroup : resourceGroup ,
422+ QuietMode : true ,
423+ DeployTimeoutMinutes : 240 ,
424+ })
425+
426+ matrix := testaddons.AddonTestMatrix {
427+ BaseOptions : baseOptions ,
428+ TestCases : testCases ,
429+ BaseSetupFunc : func (baseOptions * testaddons.TestAddonOptions , testCase testaddons.AddonTestCase ) * testaddons.TestAddonOptions {
430+ return testaddons .TestAddonsOptionsDefault (& testaddons.TestAddonOptions {
431+ Testing : t ,
432+ Prefix : testCase .Prefix ,
433+ ResourceGroup : resourceGroup ,
434+ VerboseOnFailure : true ,
435+ })
436+ },
437+ AddonConfigFunc : func (options * testaddons.TestAddonOptions , testCase testaddons.AddonTestCase ) cloudinfo.AddonConfig {
438+ return cloudinfo .NewAddonConfigTerraform (
439+ options .Prefix ,
440+ "deploy-arch-ibm-slz-ocp" ,
441+ "fully-configurable" ,
442+ map [string ]interface {}{
443+ "prefix" : options .Prefix ,
444+ "region" : "us-south" ,
445+ },
446+ )
447+ },
448+ }
449+
450+ baseOptions .RunAddonTestMatrix (matrix )
451+ }
0 commit comments