Skip to content

Commit cac6e1c

Browse files
authored
feat: Updated the DA to use the new Observability DAs in its dependency list (#300)
1 parent 41fb96e commit cac6e1c

File tree

5 files changed

+192
-22
lines changed

5 files changed

+192
-22
lines changed

ibm_catalog.json

Lines changed: 140 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
],
8989
"catalog_id": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3",
9090
"id": "045c1169-d15a-4046-ae81-aa3d3348421f-global",
91-
"version": "v1.7.0",
91+
"version": "v1.10.0",
9292
"optional": true,
9393
"input_mapping": [
9494
{
@@ -134,18 +134,17 @@
134134
"on_by_default": true
135135
},
136136
{
137-
"name": "deploy-arch-ibm-observability",
138-
"description": "Enable to provision and configure IBM Cloud Logs, Cloud Monitoring, Metrics routing and Activity Tracker event routing for analysing logs and metrics generated by the SCC Workload Protection instance.",
137+
"name": "deploy-arch-ibm-cloud-logs",
138+
"description": "Configure IBM Cloud Logs instance to analyse the platform logs.",
139+
"catalog_id": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3",
139140
"flavors": [
140-
"instances"
141+
"fully-configurable"
141142
],
142-
"id": "a3137d28-79e0-479d-8a24-758ebd5a0eab-global",
143-
"catalog_id": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3",
143+
"id": "63d8ae58-fbf3-41ce-b844-0fb5b85882ab-global",
144+
"version": "v1.6.11",
145+
"optional": true,
146+
"on_by_default": true,
144147
"input_mapping": [
145-
{
146-
"dependency_output": "cloud_monitoring_crn",
147-
"version_input": "existing_monitoring_crn"
148-
},
149148
{
150149
"dependency_input": "prefix",
151150
"version_input": "prefix",
@@ -156,20 +155,69 @@
156155
"version_input": "region",
157156
"reference_version": true
158157
},
158+
{
159+
"dependency_input": "logs_routing_tenant_regions",
160+
"version_input": "logs_routing_tenant_regions",
161+
"reference_version": true
162+
}
163+
]
164+
},
165+
{
166+
"name": "deploy-arch-ibm-cloud-monitoring",
167+
"description": "Configure IBM Cloud Monitoring to collect the platform metrics.",
168+
"id": "73debdbf-894f-4c14-81c7-5ece3a70b67d-global",
169+
"version": "v1.6.4",
170+
"flavors": [
171+
"fully-configurable"
172+
],
173+
"catalog_id": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3",
174+
"optional": true,
175+
"on_by_default": false,
176+
"input_mapping": [
177+
{
178+
"dependency_output": "cloud_monitoring_crn",
179+
"version_input": "existing_monitoring_crn"
180+
},
159181
{
160182
"dependency_input": "enable_platform_metrics",
161183
"version_input": "enable_platform_metrics",
162184
"reference_version": true
163185
},
164186
{
165-
"dependency_input": "logs_routing_tenant_regions",
166-
"version_input": "logs_routing_tenant_regions",
187+
"dependency_input": "prefix",
188+
"version_input": "prefix",
189+
"reference_version": true
190+
},
191+
{
192+
"dependency_input": "region",
193+
"version_input": "region",
167194
"reference_version": true
168195
}
196+
]
197+
},
198+
{
199+
"name": "deploy-arch-ibm-activity-tracker",
200+
"description": "Configure Activity Tracker Event Routing to route the auditing events.",
201+
"id": "918453c3-4f97-4583-8c4a-83ef12fc7916-global",
202+
"version": "v1.2.12",
203+
"flavors": [
204+
"fully-configurable"
169205
],
206+
"catalog_id": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3",
170207
"optional": true,
171208
"on_by_default": true,
172-
"version": "v3.0.3"
209+
"input_mapping": [
210+
{
211+
"dependency_input": "prefix",
212+
"version_input": "prefix",
213+
"reference_version": true
214+
},
215+
{
216+
"dependency_input": "region",
217+
"version_input": "region",
218+
"reference_version": true
219+
}
220+
]
173221
}
174222
],
175223
"configuration": [
@@ -417,7 +465,85 @@
417465
"role_crns": [
418466
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
419467
"crn:v1:bluemix:public:iam::::role:Editor"
420-
]
468+
],
469+
"notes":"Required for creating and managing SCC Workload Protection instance."
470+
},
471+
{
472+
"role_crns": [
473+
"crn:v1:bluemix:public:iam::::role:Viewer"
474+
],
475+
"service_name": "Resource group only",
476+
"notes": "Viewer access is required in the resource group you want to provision in."
477+
},
478+
{
479+
"role_crns": [
480+
"crn:v1:bluemix:public:iam::::role:Administrator",
481+
"crn:v1:bluemix:public:iam::::serviceRole:Manager"
482+
],
483+
"service_name": "apprapp",
484+
"notes": "[Optional] Required for provisioning the App Configuration instance."
485+
},
486+
{
487+
"role_crns": [
488+
"crn:v1:bluemix:public:iam::::role:Administrator"
489+
],
490+
"service_name": "All Account Management services",
491+
"notes": "[Optional] Required to deploy Cloud automation for account configuration which creates resource group and to create trusted profile for App Configuration aggregator."
492+
},
493+
{
494+
"role_crns": [
495+
"crn:v1:bluemix:public:iam::::role:Administrator"
496+
],
497+
"service_name": "All Identity and Access enabled services",
498+
"notes": "[Optional] Required to deploy Cloud automation for account configuration which creates foundational IBM Cloud account resources, like resource group with account settings and to create trusted profile for App Configuration aggregator."
499+
},
500+
{
501+
"role_crns": [
502+
"crn:v1:bluemix:public:iam::::serviceRole:Writer",
503+
"crn:v1:bluemix:public:iam::::role:Editor"
504+
],
505+
"service_name": "atracker",
506+
"notes": "[Optional] Required when enabling the Activity Tracker Event Routing."
507+
},
508+
{
509+
"role_crns": [
510+
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
511+
"crn:v1:bluemix:public:iam::::role:Editor"
512+
],
513+
"service_name": "sysdig-monitor",
514+
"notes": "[Optional] Required to create an instance of Cloud Monitoring."
515+
},
516+
{
517+
"role_crns": [
518+
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
519+
"crn:v1:bluemix:public:iam::::role:Editor"
520+
],
521+
"service_name": "logs",
522+
"notes": "[Optional] Required to create an instance of Cloud Logs."
523+
},
524+
{
525+
"role_crns": [
526+
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
527+
"crn:v1:bluemix:public:iam::::role:Editor"
528+
],
529+
"service_name": "hs-crypto",
530+
"notes": "[Optional] Required if Hyper Protect Crypto Services is used for encryption."
531+
},
532+
{
533+
"role_crns": [
534+
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
535+
"crn:v1:bluemix:public:iam::::role:Editor"
536+
],
537+
"service_name": "kms",
538+
"notes": "[Optional] Required to deploy Cloud automation for Key Protect, so you can use your own managed encryption keys."
539+
},
540+
{
541+
"role_crns": [
542+
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
543+
"crn:v1:bluemix:public:iam::::role:Editor"
544+
],
545+
"service_name": "cloud-object-storage",
546+
"notes": "[Optional] Required to deploy Cloud automation for Object Storage."
421547
}
422548
],
423549
"architecture": {

reference-architecture/scc.svg

Lines changed: 1 addition & 1 deletion
Loading

tests/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ toolchain go1.25.0
77
require (
88
github.com/gruntwork-io/terratest v0.50.0
99
github.com/stretchr/testify v1.10.0
10-
github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.59.1
10+
github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.59.3
1111
)
1212

1313
require (

tests/go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,8 +295,8 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO
295295
github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
296296
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
297297
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
298-
github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.59.1 h1:9/uYvUFFLIH91F16AiJqP/LZeGi4t2CYtc8iz3bBXdQ=
299-
github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.59.1/go.mod h1:kdhZ+FeS71D+tB0E2Sh1ISD3zQ+RThPX5SyFqduo7G8=
298+
github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.59.3 h1:Z5lZaaka8ilzOws9BrtJgmU4Kdt+ntVKWHnebMJUhvU=
299+
github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper v1.59.3/go.mod h1:kdhZ+FeS71D+tB0E2Sh1ISD3zQ+RThPX5SyFqduo7G8=
300300
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
301301
github.com/tmccombs/hcl2json v0.6.4 h1:/FWnzS9JCuyZ4MNwrG4vMrFrzRgsWEOVi+1AyYUVLGw=
302302
github.com/tmccombs/hcl2json v0.6.4/go.mod h1:+ppKlIW3H5nsAsZddXPy2iMyvld3SHxyjswOZhavRDk=

tests/pr_test.go

Lines changed: 48 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,20 @@ package test
44
import (
55
"fmt"
66
"log"
7+
"math/rand"
78
"os"
89
"strings"
910
"testing"
1011

11-
"math/rand/v2"
12-
1312
"github.com/gruntwork-io/terratest/modules/files"
1413
"github.com/gruntwork-io/terratest/modules/logger"
1514
"github.com/gruntwork-io/terratest/modules/random"
1615
"github.com/gruntwork-io/terratest/modules/terraform"
1716
"github.com/stretchr/testify/assert"
1817
"github.com/stretchr/testify/require"
18+
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/cloudinfo"
1919
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/common"
20+
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/testaddons"
2021
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/testhelper"
2122
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/testschematic"
2223
)
@@ -59,7 +60,7 @@ func TestMain(m *testing.M) {
5960
func TestFullyConfigurable(t *testing.T) {
6061
t.Parallel()
6162

62-
var region = validRegions[rand.IntN(len(validRegions))]
63+
var region = validRegions[rand.Intn(len(validRegions))]
6364

6465
// ------------------------------------------------------------------------------------
6566
// Provision App Config first
@@ -146,7 +147,7 @@ func TestFullyConfigurable(t *testing.T) {
146147
func TestFullyConfigurableUpgrade(t *testing.T) {
147148
t.Parallel()
148149

149-
var region = validRegions[rand.IntN(len(validRegions))]
150+
var region = validRegions[rand.Intn(len(validRegions))]
150151

151152
// ------------------------------------------------------------------------------------
152153
// Provision App Config first
@@ -231,3 +232,46 @@ func TestFullyConfigurableUpgrade(t *testing.T) {
231232
logger.Log(t, "END: Destroy (prereq resources)")
232233
}
233234
}
235+
236+
func TestSccWpAddonDefaultConfiguration(t *testing.T) {
237+
t.Parallel()
238+
239+
options := testaddons.TestAddonsOptionsDefault(&testaddons.TestAddonOptions{
240+
Testing: t,
241+
Prefix: "scc-def",
242+
ResourceGroup: resourceGroup,
243+
QuietMode: true, // Suppress logs except on failure
244+
})
245+
246+
options.AddonConfig = cloudinfo.NewAddonConfigTerraform(
247+
options.Prefix,
248+
"deploy-arch-ibm-scc-workload-protection",
249+
"fully-configurable",
250+
map[string]interface{}{
251+
"prefix": options.Prefix,
252+
"region": validRegions[rand.Intn(len(validRegions))],
253+
},
254+
)
255+
256+
err := options.RunAddonTest()
257+
require.NoError(t, err)
258+
}
259+
260+
// TestDependencyPermutations runs dependency permutations for SCC WP and all its dependencies
261+
func TestSccWpDependencyPermutations(t *testing.T) {
262+
options := testaddons.TestAddonsOptionsDefault(&testaddons.TestAddonOptions{
263+
Testing: t,
264+
Prefix: "scc-per",
265+
AddonConfig: cloudinfo.AddonConfig{
266+
OfferingName: "deploy-arch-ibm-scc-workload-protection",
267+
OfferingFlavor: "fully-configurable",
268+
Inputs: map[string]interface{}{
269+
"prefix": "scc-per",
270+
"region": validRegions[rand.Intn(len(validRegions))],
271+
},
272+
},
273+
})
274+
275+
err := options.RunAddonPermutationTest()
276+
assert.NoError(t, err, "Dependency permutation test should not fail")
277+
}

0 commit comments

Comments
 (0)