Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
0fbb506
rally
rajatagarwal-ibm Jun 19, 2025
6b96129
Merge branch 'main' of github.com:terraform-ibm-modules/terraform-ibm…
rajatagarwal-ibm Jun 24, 2025
d102a5e
Merge branch 'main' of github.com:terraform-ibm-modules/terraform-ibm…
rajatagarwal-ibm Jul 16, 2025
516164f
split observability DA consumption
rajatagarwal-ibm Jul 16, 2025
805a290
split observability DA consumption
rajatagarwal-ibm Jul 16, 2025
5a2fb16
split observability DA consumption
rajatagarwal-ibm Aug 1, 2025
deb06ea
Merge branch 'main' into split-observability-da
rajatagarwal-ibm Aug 1, 2025
18af21e
split observability DA consumption
rajatagarwal-ibm Aug 1, 2025
a02c2f9
Merge branch 'split-observability-da' of github.com:terraform-ibm-mod…
rajatagarwal-ibm Aug 1, 2025
2e256a9
Merge branch 'main' into split-observability-da
rajatagarwal-ibm Aug 5, 2025
0b50afa
split observability DA consumption
rajatagarwal-ibm Aug 5, 2025
9f3f008
Merge branch 'main' into split-observability-da
rajatagarwal-ibm Aug 6, 2025
20c82c2
split observability DA consumption
rajatagarwal-ibm Aug 7, 2025
3afb7c9
Merge branch 'split-observability-da' of github.com:terraform-ibm-mod…
rajatagarwal-ibm Aug 7, 2025
5690f9c
split observability DA consumption
rajatagarwal-ibm Aug 7, 2025
fced7f8
split observability DA consumption
rajatagarwal-ibm Aug 7, 2025
4b80f7b
split observability DA consumption
rajatagarwal-ibm Aug 7, 2025
2540e95
split observability DA consumption
rajatagarwal-ibm Aug 8, 2025
43c266b
split observability DA consumption
rajatagarwal-ibm Aug 13, 2025
655cfc3
split observability DA consumption
rajatagarwal-ibm Aug 13, 2025
d3d3c91
split observability DA consumption
rajatagarwal-ibm Aug 13, 2025
ec39f2e
Merge branch 'main' into split-observability-da
rajatagarwal-ibm Aug 25, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 69 additions & 27 deletions ibm_catalog.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
"solution"
],
"short_description": "Cloud architecture including Secrets Manager instance and optional security, logging and notification services.",
"long_description": "This deployable architecture is used to provision and configure an [IBM Cloud Secrets Manager](https://www.ibm.com/products/secrets-manager) instance. **Optionally**, supports creating and/or configuring:\n* [IBM Cloud account](https://cloud.ibm.com/docs/account?topic=account-account-getting-started): To set up IBM Cloud accounts settings.\n* [Key Protect](https://cloud.ibm.com/docs/key-protect?topic=key-protect-getting-started-tutorial): For data encryption using customer-managed keys.\n* [Cloud Logs](https://cloud.ibm.com/docs/cloud-logs?topic=cloud-logs-getting-started): Logging and monitoring platform logs.\n* [Cloud Monitoring](https://cloud.ibm.com/docs/monitoring?topic=monitoring-getting-started):Measure how users and applications interact with the Secrets Manager instance.\n* [Event Notifications](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-getting-started): Send notifications of events to other users, or destinations, by using email, SMS or other supported delivery channels.\n\nℹ️ This Terraform-based automation is part of a broader suite of IBM-maintained Infrastructure as Code (IaC) assets, each following the naming pattern \"Cloud automation for *servicename*\" and focusing on single IBM Cloud service. These single-service deployable architectures can be used on their own to streamline and automate service deployments through an [IaC approach](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-understanding-projects), or assembled together into a broader [automated IaC stack](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-config-stack) to automate the deployment of an end-to-end solution architecture.",
"long_description": "This deployable architecture is used to provision and configure an [IBM Cloud Secrets Manager](https://www.ibm.com/products/secrets-manager) instance. **Optionally**, supports creating and/or configuring:\n* [IBM Cloud account](https://cloud.ibm.com/docs/account?topic=account-account-getting-started): To set up IBM Cloud accounts settings.\n* [Key Protect](https://cloud.ibm.com/docs/key-protect?topic=key-protect-getting-started-tutorial): For data encryption using customer-managed keys.\n* [Cloud Logs](https://cloud.ibm.com/docs/cloud-logs?topic=cloud-logs-getting-started): Logging and monitoring platform logs.\n* [Cloud Monitoring](https://cloud.ibm.com/docs/monitoring?topic=monitoring-getting-started):Measure how users and applications interact with the Secrets Manager instance.\n*[Activity Tracker Event Routing](https://cloud.ibm.com/docs/atracker?topic=atracker-getting-started): Configures how to route auditing events.\n* [Event Notifications](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-getting-started): Send notifications of events to other users, or destinations, by using email, SMS or other supported delivery channels.\n\nℹ️ This Terraform-based automation is part of a broader suite of IBM-maintained Infrastructure as Code (IaC) assets, each following the naming pattern \"Cloud automation for *servicename*\" and focusing on single IBM Cloud service. These single-service deployable architectures can be used on their own to streamline and automate service deployments through an [IaC approach](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-understanding-projects), or assembled together into a broader [automated IaC stack](https://cloud.ibm.com/docs/secure-enterprise?topic=secure-enterprise-config-stack) to automate the deployment of an end-to-end solution architecture.",
"offering_docs_url": "https://github.com/terraform-ibm-modules/terraform-ibm-secrets-manager/blob/main/README.md",
"offering_icon_url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-secrets-manager/main/images/secrets_manager.svg",
"provider_name": "IBM",
Expand Down Expand Up @@ -149,30 +149,20 @@
},
{
"key": "enable_platform_metrics",
"type": "string",
"default_value": "true",
"type": "boolean",
"default_value": false,
"description": "When set to `true`, the IBM Cloud Monitoring instance will be configured to collect platform metrics from the provided region. You can configure 1 instance only of the IBM Cloud Monitoring service per region to collect platform metrics in that location. Check with the account or service administrator if another monitoring instance has already been configured. You may not have permissions to see all monitoring instances in the region. [Learn more](https://cloud.ibm.com/docs/monitoring?topic=monitoring-platform_metrics_enabling).",
"required": true,
"virtual": true,
"options": [
{
"displayname": "true",
"value": "true"
},
{
"displayname": "false",
"value": "false"
}
]
"virtual": true
},
{
"key": "logs_routing_tenant_regions",
"type": "list(string)",
"default_value": "[]",
"description": "To manage platform logs that are generated by IBM Cloud services in a region of IBM Cloud, you must create a tenant in each region that you operate. Pass a list of regions to create a tenant in. [Learn more](https://cloud.ibm.com/docs/logs-router?topic=logs-router-about-platform-logs).",
"required": true,
"default_value": "[]",
"virtual": true,
"custom_config": {
"type": "array",
"grouping": "deployment",
"original_grouping": "deployment",
"config_constraints": {
Expand Down Expand Up @@ -349,15 +339,15 @@
"crn:v1:bluemix:public:iam::::role:Editor"
],
"service_name": "sysdig-monitor",
"notes": "[Optional] Required if you are consuming the Observability deployable architecture which sets up Cloud Monitoring."
"notes": "[Optional] Required if you are consuming the Cloud Monitoring deployable architecture."
},
{
"role_crns": [
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
"crn:v1:bluemix:public:iam::::role:Editor"
],
"service_name": "logs",
"notes": "[Optional] Required if you are consuming the Observability deployable architecture which sets up Cloud Logs."
"notes": "[Optional] Required if you are consuming the Cloud logs deployable architecture."
},
{
"role_crns": [
Expand Down Expand Up @@ -457,17 +447,50 @@
],
"optional": true,
"on_by_default": true,
"version": "v5.1.4"
"version": "v5.1.19"
},
{
"name": "deploy-arch-ibm-cloud-logs",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just started looking at doing this for Event Streams does Cloud Logs have a dependency on COS?

image

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think yes, Cloud Logs have dependency on COS

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, so COS is automatically added as an addon because it is a dependency of an enabled addon

When COS is disabled the user would have to supply the existing_cos_instance_crn themselves... got it, thanks

"description": "Enable to provision and configure IBM Cloud Logs for analysing logs generated by the Event Notifications instance.",
"flavors": [
"fully-configurable"
],
"id": "63d8ae58-fbf3-41ce-b844-0fb5b85882ab-global",
"catalog_id": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3",
"input_mapping": [
{
"dependency_input": "prefix",
"version_input": "prefix",
"reference_version": true
},
{
"dependency_input": "region",
"version_input": "region",
"reference_version": true
},
{
"dependency_input": "logs_routing_tenant_regions",
"version_input": "logs_routing_tenant_regions",
"reference_version": true
}
],
"optional": true,
"on_by_default": true,
"version": "v1.6.11"
},
{
"name": "deploy-arch-ibm-observability",
"description": "Enables provisioning and configuration of IBM Cloud Logs to collect, route, analyze, and visualize platform logs and events — including those generated by the Event Notifications instance — for enhanced visibility, alerting, and troubleshooting.",
"name": "deploy-arch-ibm-cloud-monitoring",
"description": "Enable to provision and configure IBM Cloud Activity Tracker for routing events generated by the Event Notifications instance to a Cloud logs instance.",
"flavors": [
"instances"
"fully-configurable"
],
"id": "a3137d28-79e0-479d-8a24-758ebd5a0eab-global",
"id": "73debdbf-894f-4c14-81c7-5ece3a70b67d-global",
"catalog_id": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3",
"input_mapping": [
{
"dependency_output": "cloud_monitoring_crn",
"version_input": "existing_monitoring_crn"
},
{
"dependency_input": "prefix",
"version_input": "prefix",
Expand All @@ -482,16 +505,35 @@
"dependency_input": "enable_platform_metrics",
"version_input": "enable_platform_metrics",
"reference_version": true
}
],
"optional": true,
"on_by_default": true,
"version": "v1.6.4"
},
{
"name": "deploy-arch-ibm-activity-tracker",
"description": "Enable to provision and configure IBM Cloud Activity Tracker event routing for analysing logs and metrics generated by the Event Notifications instance.",
"flavors": [
"fully-configurable"
],
"id": "918453c3-4f97-4583-8c4a-83ef12fc7916-global",
"catalog_id": "7a4d68b4-cf8b-40cd-a3d1-f49aff526eb3",
"input_mapping": [
{
"dependency_input": "prefix",
"version_input": "prefix",
"reference_version": true
},
{
"dependency_input": "logs_routing_tenant_regions",
"version_input": "logs_routing_tenant_regions",
"dependency_input": "region",
"version_input": "region",
"reference_version": true
}
],
"optional": true,
"on_by_default": true,
"version": "v3.0.3"
"version": "v1.2.12"
},
{
"name": "deploy-arch-ibm-event-notifications",
Expand Down Expand Up @@ -519,7 +561,7 @@
],
"optional": true,
"on_by_default": true,
"version": "v2.3.7"
"version": "v2.6.11"
}
],
"dependency_version_2": true,
Expand Down
50 changes: 50 additions & 0 deletions tests/pr_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package test

import (
"fmt"
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/cloudinfo"
"github.com/terraform-ibm-modules/ibmcloud-terratest-wrapper/testaddons"
"log"
"math/rand"
"os"
Expand Down Expand Up @@ -414,3 +416,51 @@ func TestRunSecretsManagerSecurityEnforcedUpgradeSchematic(t *testing.T) {
}

}

func TestSecretsManagerDefaultConfiguration(t *testing.T) {
t.Parallel()

options := testaddons.TestAddonsOptionsDefault(&testaddons.TestAddonOptions{
Testing: t,
Prefix: "smdeft",
ResourceGroup: resourceGroup,
QuietMode: true, // Suppress logs except on failure
})

options.AddonConfig = cloudinfo.NewAddonConfigTerraform(
options.Prefix,
"deploy-arch-ibm-secrets-manager",
"fully-configurable",
map[string]interface{}{
"prefix": options.Prefix,
"region": validRegions[rand.Intn(len(validRegions))],
"enable_platform_metrics": "false", // Disable platform metrics for addon tests
"service_plan": "standard",
},
)

err := options.RunAddonTest()
require.NoError(t, err)
}

// TestDependencyPermutations runs dependency permutations for the Secrets Manager and all its dependencies
func TestDependencyPermutations(t *testing.T) {

options := testaddons.TestAddonsOptionsDefault(&testaddons.TestAddonOptions{
Testing: t,
Prefix: "sm-perm",
AddonConfig: cloudinfo.AddonConfig{
OfferingName: "deploy-arch-ibm-secrets-manager",
OfferingFlavor: "fully-configurable",
Inputs: map[string]interface{}{
"prefix": "sm-perm",
"region": validRegions[rand.Intn(len(validRegions))],
"existing_resource_group_name": resourceGroup,
"service_plan": "standard",
},
},
})

err := options.RunAddonPermutationTest()
assert.NoError(t, err, "Dependency permutation test should not fail")
}