@@ -4,6 +4,9 @@ package test
44import (
55 "testing"
66
7+ "github.com/IBM/go-sdk-core/v5/core"
8+ "github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/cloudinfo"
9+ "github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/testaddons"
710 "github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/testhelper"
811
912 "github.com/stretchr/testify/assert"
@@ -53,3 +56,143 @@ func TestRunCustomSecurityGroupExample(t *testing.T) {
5356 assert .Nil (t , err , "This should not have errored" )
5457 assert .NotNil (t , output , "Expected some output" )
5558}
59+
60+ func TestAddonPermutations (t * testing.T ) {
61+ t .Parallel ()
62+
63+ testCases := []testaddons.AddonTestCase {
64+ {
65+ Name : "no-addons" ,
66+ Prefix : "no-addons" ,
67+ Dependencies : []cloudinfo.AddonConfig {
68+ {
69+ OfferingName : "deploy-arch-ibm-kms" ,
70+ OfferingFlavor : "fully-configurable" ,
71+ Enabled : core .BoolPtr (false ),
72+ },
73+ {
74+ OfferingName : "deploy-arch-ibm-cloud-logs" ,
75+ OfferingFlavor : "fully-configurable" ,
76+ Enabled : core .BoolPtr (false ),
77+ },
78+ {
79+ OfferingName : "deploy-arch-ibm-cloud-monitoring" ,
80+ OfferingFlavor : "fully-configurable" ,
81+ Enabled : core .BoolPtr (false ),
82+ },
83+ {
84+ OfferingName : "deploy-arch-ibm-activity-tracker" ,
85+ OfferingFlavor : "fully-configurable" ,
86+ Enabled : core .BoolPtr (false ),
87+ },
88+ {
89+ OfferingName : "deploy-arch-ibm-scc-workload-protection" ,
90+ OfferingFlavor : "fully-configurable" ,
91+ Enabled : core .BoolPtr (false ),
92+ },
93+ },
94+ },
95+ {
96+ Name : "all-addons" ,
97+ Prefix : "all-addons" ,
98+ Dependencies : []cloudinfo.AddonConfig {
99+ {
100+ OfferingName : "deploy-arch-ibm-kms" ,
101+ OfferingFlavor : "fully-configurable" ,
102+ Enabled : core .BoolPtr (true ),
103+ },
104+ {
105+ OfferingName : "deploy-arch-ibm-cos" ,
106+ OfferingFlavor : "instance" ,
107+ Enabled : core .BoolPtr (true ),
108+ },
109+ {
110+ OfferingName : "deploy-arch-ibm-cloud-logs" ,
111+ OfferingFlavor : "fully-configurable" ,
112+ Enabled : core .BoolPtr (true ),
113+ },
114+ {
115+ OfferingName : "deploy-arch-ibm-cloud-monitoring" ,
116+ OfferingFlavor : "fully-configurable" ,
117+ Enabled : core .BoolPtr (true ),
118+ },
119+ {
120+ OfferingName : "deploy-arch-ibm-activity-tracker" ,
121+ OfferingFlavor : "fully-configurable" ,
122+ Enabled : core .BoolPtr (true ),
123+ },
124+ {
125+ OfferingName : "deploy-arch-ibm-scc-workload-protection" ,
126+ OfferingFlavor : "fully-configurable" ,
127+ Enabled : core .BoolPtr (true ),
128+ },
129+ },
130+ },
131+ {
132+ Name : "observability-with-no-deps" ,
133+ Prefix : "obs-no-dep" ,
134+ Dependencies : []cloudinfo.AddonConfig {
135+ {
136+ OfferingName : "deploy-arch-ibm-kms" ,
137+ OfferingFlavor : "fully-configurable" ,
138+ Enabled : core .BoolPtr (false ),
139+ },
140+ {
141+ OfferingName : "deploy-arch-ibm-cloud-logs" ,
142+ OfferingFlavor : "fully-configurable" ,
143+ Enabled : core .BoolPtr (true ),
144+ },
145+ {
146+ OfferingName : "deploy-arch-ibm-cloud-monitoring" ,
147+ OfferingFlavor : "fully-configurable" ,
148+ Enabled : core .BoolPtr (true ),
149+ },
150+ {
151+ OfferingName : "deploy-arch-ibm-activity-tracker" ,
152+ OfferingFlavor : "fully-configurable" ,
153+ Enabled : core .BoolPtr (true ),
154+ },
155+ {
156+ OfferingName : "deploy-arch-ibm-scc-workload-protection" ,
157+ OfferingFlavor : "fully-configurable" ,
158+ Enabled : core .BoolPtr (false ),
159+ },
160+ {
161+ OfferingName : "deploy-arch-ibm-event-notifications" ,
162+ OfferingFlavor : "fully-configurable" ,
163+ Enabled : core .BoolPtr (false ),
164+ },
165+ },
166+ },
167+ }
168+
169+ baseOptions := testaddons .TestAddonsOptionsDefault (& testaddons.TestAddonOptions {
170+ Testing : t ,
171+ ResourceGroup : resourceGroup ,
172+ QuietMode : true ,
173+ DeployTimeoutMinutes : 240 ,
174+ })
175+
176+ matrix := testaddons.AddonTestMatrix {
177+ BaseOptions : baseOptions ,
178+ TestCases : testCases ,
179+ BaseSetupFunc : func (baseOptions * testaddons.TestAddonOptions , testCase testaddons.AddonTestCase ) * testaddons.TestAddonOptions {
180+ return testaddons .TestAddonsOptionsDefault (& testaddons.TestAddonOptions {
181+ Testing : t ,
182+ Prefix : testCase .Prefix ,
183+ ResourceGroup : resourceGroup ,
184+ VerboseOnFailure : true ,
185+ })
186+ },
187+ AddonConfigFunc : func (options * testaddons.TestAddonOptions , testCase testaddons.AddonTestCase ) cloudinfo.AddonConfig {
188+ return cloudinfo .NewAddonConfigTerraform (
189+ options .Prefix ,
190+ "deploy-arch-ibm-slz-vpc" ,
191+ "fully-configurable" ,
192+ map [string ]interface {}{},
193+ )
194+ },
195+ }
196+
197+ baseOptions .RunAddonTestMatrix (matrix )
198+ }
0 commit comments