Skip to content

Commit 0d46b7e

Browse files
authored
feat: initial release (#2)
1 parent 8a71b91 commit 0d46b7e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1454
-353
lines changed

.catalog-onboard-pipeline.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
apiVersion: v1
3+
offerings:
4+
- name: deploy-arch-ibm-catalog-management
5+
kind: solution
6+
catalog_id: 7df1e4ca-d54c-4fd0-82ce-3d13247308cd
7+
offering_id: 69a02a09-0563-4625-9c6e-28faf4a538f4
8+
variations:
9+
- name: catalog
10+
mark_ready: true
11+
install_type: fullstack
12+
- name: vpe-object
13+
mark_ready: true
14+
install_type: fullstack
15+
pre_validation: "tests/scripts/pre-validate.sh"
16+
post_validation: "tests/scripts/post-validate.sh"

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# Primary owner should be listed first in list of global owners, followed by any secondary owners
2-
* @ocofaigh @daniel-butler-irl
2+
* @ocofaigh @vbontempi

.github/settings.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ repository:
1515
# By changing this field, you rename the repository.
1616

1717
# Uncomment this name property and set the name to the current repo name.
18-
# name: ""
18+
name: "terraform-ibm-catalog-management"
1919

2020
# The description is displayed under the repository name on the
2121
# organization page and in the 'About' section of the repository.
2222

2323
# Uncomment this description property
2424
# and update the description to the current repo description.
25-
# description: ""
25+
description: "Automation to manage an IBM Cloud catalog"
2626

2727
# Use a comma-separated list of topics to set on the repo (ensure not to use any caps in the topic string).
28-
topics: terraform, ibm-cloud, terraform-module
28+
topics: terraform, ibm-cloud, terraform-module, core-team, cm, catalog, catalog-management, deployable-architecture

.releaserc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
}],
1111
["@semantic-release/exec", {
1212
"successCmd": "echo \"SEMVER_VERSION=${nextRelease.version}\" >> $GITHUB_ENV"
13+
}],
14+
["@semantic-release/exec",{
15+
"publishCmd": "./ci/trigger-catalog-onboarding-pipeline.sh --version=v${nextRelease.version}"
1316
}]
1417
]
1518
}

.secrets.baseline

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"files": "go.sum|^.secrets.baseline$",
44
"lines": null
55
},
6-
"generated_at": "2024-11-22T17:36:38Z",
6+
"generated_at": "2025-04-02T15:31:45Z",
77
"plugins_used": [
88
{
99
"name": "AWSKeyDetector"
@@ -82,7 +82,17 @@
8282
"hashed_secret": "ff9ee043d85595eb255c05dfe32ece02a53efbb2",
8383
"is_secret": false,
8484
"is_verified": false,
85-
"line_number": 74,
85+
"line_number": 46,
86+
"type": "Secret Keyword",
87+
"verified_result": null
88+
}
89+
],
90+
"modules/vpe-catalog-object/README.md": [
91+
{
92+
"hashed_secret": "ff9ee043d85595eb255c05dfe32ece02a53efbb2",
93+
"is_secret": false,
94+
"is_verified": false,
95+
"line_number": 23,
8696
"type": "Secret Keyword",
8797
"verified_result": null
8898
}

README.md

Lines changed: 32 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,26 @@
1-
<!-- Update this title with a descriptive name. Use sentence case. -->
2-
# Terraform modules template project
1+
# Catalog management module
32

4-
<!--
5-
Update status and "latest release" badges:
6-
1. For the status options, see https://terraform-ibm-modules.github.io/documentation/#/badge-status
7-
2. Update the "latest release" badge to point to the correct module's repo. Replace "terraform-ibm-module-template" in two places.
8-
-->
9-
[![Incubating (Not yet consumable)](https://img.shields.io/badge/status-Incubating%20(Not%20yet%20consumable)-red)](https://terraform-ibm-modules.github.io/documentation/#/badge-status)
10-
[![latest release](https://img.shields.io/github/v/release/terraform-ibm-modules/terraform-ibm-module-template?logo=GitHub&sort=semver)](https://github.com/terraform-ibm-modules/terraform-ibm-module-template/releases/latest)
3+
[![Stable (With quality checks)](https://img.shields.io/badge/Status-Stable%20(With%20quality%20checks)-green)](https://terraform-ibm-modules.github.io/documentation/#/badge-status)
4+
[![latest release](https://img.shields.io/github/v/release/terraform-ibm-modules/terraform-ibm-catalog-management?logo=GitHub&sort=semver)](https://github.com/terraform-ibm-modules/terraform-ibm-catalog-management/releases/latest)
115
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
126
[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/)
137
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
148

15-
<!--
16-
Add a description of modules in this repo.
17-
Expand on the repo short description in the .github/settings.yml file.
18-
19-
For information, see "Module names and descriptions" at
20-
https://terraform-ibm-modules.github.io/documentation/#/implementation-guidelines?id=module-names-and-descriptions
21-
-->
22-
23-
TODO: Replace this with a description of the modules in this repo.
24-
9+
Automation to manage an IBM Cloud catalog.
2510

2611
<!-- The following content is automatically populated by the pre-commit hook -->
2712
<!-- BEGIN OVERVIEW HOOK -->
2813
## Overview
29-
* [terraform-ibm-module-template](#terraform-ibm-module-template)
14+
* [terraform-ibm-catalog-management](#terraform-ibm-catalog-management)
15+
* [Submodules](./modules)
16+
* [vpe-catalog-object](./modules/vpe-catalog-object)
3017
* [Examples](./examples)
31-
* [Advanced example](./examples/advanced)
32-
* [Basic example](./examples/basic)
18+
* [Offering catalog example](./examples/offering-catalog)
19+
* [VPE object example](./examples/vpe-catalog)
3320
* [Contributing](#contributing)
3421
<!-- END OVERVIEW HOOK -->
3522

36-
37-
<!--
38-
If this repo contains any reference architectures, uncomment the heading below and link to them.
39-
(Usually in the `/reference-architectures` directory.)
40-
See "Reference architecture" in the public documentation at
41-
https://terraform-ibm-modules.github.io/documentation/#/implementation-guidelines?id=reference-architecture
42-
-->
43-
<!-- ## Reference architectures -->
44-
45-
46-
<!-- Replace this heading with the name of the root level module (the repo name) -->
47-
## terraform-ibm-module-template
23+
## terraform-ibm-catalog-management
4824

4925
### Usage
5026

@@ -66,55 +42,28 @@ terraform {
6642
}
6743
}
6844
69-
locals {
70-
region = "us-south"
71-
}
72-
7345
provider "ibm" {
7446
ibmcloud_api_key = "XXXXXXXXXX" # replace with apikey value
75-
region = local.region
7647
}
7748
78-
module "module_template" {
79-
source = "terraform-ibm-modules/<replace>/ibm"
49+
module "catalog" {
50+
source = "terraform-ibm-modules/catalog-management/ibm"
8051
version = "X.Y.Z" # Replace "X.Y.Z" with a release version to lock into a specific release
81-
region = local.region
82-
name = "instance-name"
52+
label = "My catalog"
53+
kind = "offering"
8354
resource_group_id = "xxXXxxXXxXxXXXXxxXxxxXXXXxXXXXX" # Replace with the actual ID of resource group to use
8455
}
8556
```
8657

8758
### Required access policies
8859

89-
<!-- PERMISSIONS REQUIRED TO RUN MODULE
90-
If this module requires permissions, uncomment the following block and update
91-
the sample permissions, following the format.
92-
Replace the 'Sample IBM Cloud' service and roles with applicable values.
93-
The required information can usually be found in the services official
94-
IBM Cloud documentation.
95-
To view all available service permissions, you can go in the
96-
console at Manage > Access (IAM) > Access groups and click into an existing group
97-
(or create a new one) and in the 'Access' tab click 'Assign access'.
98-
-->
99-
100-
<!--
10160
You need the following permissions to run this module:
10261

10362
- Service
10463
- **Resource group only**
10564
- `Viewer` access on the specific resource group
106-
- **Sample IBM Cloud** service
65+
- **Catalog Management** service
10766
- `Editor` platform access
108-
- `Manager` service access
109-
-->
110-
111-
<!-- NO PERMISSIONS FOR MODULE
112-
If no permissions are required for the module, uncomment the following
113-
statement instead the previous block.
114-
-->
115-
116-
<!-- No permissions are needed to run this module.-->
117-
11867

11968
<!-- The following content is automatically populated by the pre-commit hook -->
12069
<!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
@@ -123,7 +72,7 @@ statement instead the previous block.
12372
| Name | Version |
12473
|------|---------|
12574
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.9.0 |
126-
| <a name="requirement_ibm"></a> [ibm](#requirement\_ibm) | >= 1.71.2, < 2.0.0 |
75+
| <a name="requirement_ibm"></a> [ibm](#requirement\_ibm) | >= 1.76.3, < 2.0.0 |
12776

12877
### Modules
12978

@@ -133,25 +82,32 @@ No modules.
13382

13483
| Name | Type |
13584
|------|------|
136-
| [ibm_resource_instance.cos_instance](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/resource_instance) | resource |
85+
| [ibm_cm_catalog.cm_catalog](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/cm_catalog) | resource |
13786

13887
### Inputs
13988

14089
| Name | Description | Type | Default | Required |
14190
|------|-------------|------|---------|:--------:|
142-
| <a name="input_name"></a> [name](#input\_name) | A descriptive name used to identify the resource instance. | `string` | n/a | yes |
143-
| <a name="input_plan"></a> [plan](#input\_plan) | The name of the plan type supported by service. | `string` | `"standard"` | no |
144-
| <a name="input_resource_group_id"></a> [resource\_group\_id](#input\_resource\_group\_id) | The ID of the resource group where you want to create the service. | `string` | n/a | yes |
145-
| <a name="input_resource_tags"></a> [resource\_tags](#input\_resource\_tags) | List of resource tag to associate with the instance. | `list(string)` | `[]` | no |
91+
| <a name="input_catalog_banner_url"></a> [catalog\_banner\_url](#input\_catalog\_banner\_url) | URL for a banner image for this catalog. | `string` | `null` | no |
92+
| <a name="input_catalog_icon_url"></a> [catalog\_icon\_url](#input\_catalog\_icon\_url) | URL for an icon associated with this catalog. | `string` | `null` | no |
93+
| <a name="input_disabled"></a> [disabled](#input\_disabled) | Denotes whether a catalog is disabled. | `bool` | `false` | no |
94+
| <a name="input_kind"></a> [kind](#input\_kind) | Kind of catalog. Supported kinds are 'offering' and 'vpe'. | `string` | `"offering"` | no |
95+
| <a name="input_label"></a> [label](#input\_label) | Display name for the catalog. | `string` | n/a | yes |
96+
| <a name="input_resource_group_id"></a> [resource\_group\_id](#input\_resource\_group\_id) | Resource group id the catalog is owned by. | `string` | n/a | yes |
97+
| <a name="input_short_description"></a> [short\_description](#input\_short\_description) | A description of the catalog. | `string` | `null` | no |
98+
| <a name="input_tags"></a> [tags](#input\_tags) | List of tags associated with this catalog. | `list(string)` | `[]` | no |
99+
| <a name="input_target_accounts"></a> [target\_accounts](#input\_target\_accounts) | List of target accounts to add to this catalog. Can only be configured on an update, not on a create. | <pre>list(object({<br/> api_key = optional(string)<br/> name = string<br/> label = string<br/> project_id = optional(string)<br/> trusted_profile_id = optional(string)<br/> target_service_id = optional(string)<br/> }))</pre> | `[]` | no |
146100

147101
### Outputs
148102

149103
| Name | Description |
150104
|------|-------------|
151-
| <a name="output_account_id"></a> [account\_id](#output\_account\_id) | An alpha-numeric value identifying the account ID. |
152-
| <a name="output_crn"></a> [crn](#output\_crn) | The CRN of the resource instance. |
153-
| <a name="output_guid"></a> [guid](#output\_guid) | The GUID of the resource instance. |
154-
| <a name="output_id"></a> [id](#output\_id) | The unique identifier of the resource instance. |
105+
| <a name="output_catalog_banner_url"></a> [catalog\_banner\_url](#output\_catalog\_banner\_url) | The url of the catalog banner. |
106+
| <a name="output_catalog_icon_url"></a> [catalog\_icon\_url](#output\_catalog\_icon\_url) | The url of the catalog icon. |
107+
| <a name="output_crn"></a> [crn](#output\_crn) | CRN associated with the catalog. |
108+
| <a name="output_id"></a> [id](#output\_id) | The unique identifier of the catalog. |
109+
| <a name="output_label"></a> [label](#output\_label) | Display Name. |
110+
| <a name="output_resource_group_id"></a> [resource\_group\_id](#output\_resource\_group\_id) | Resource group id the catalog is owned by. |
155111
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
156112

157113
<!-- Leave this section as is so that your module has a link to local development environment set-up steps for contributors to follow -->

cra-config.yaml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@
77

88
version: "v1"
99
CRA_TARGETS:
10-
- CRA_TARGET: "examples/advanced" # Target directory for CRA scan. If not provided, the CRA Scan will not be run.
10+
- CRA_TARGET: "solutions/catalog" # Target directory for CRA scan. If not provided, the CRA Scan will not be run.
1111
CRA_IGNORE_RULES_FILE: "cra-tf-validate-ignore-rules.json"
1212
PROFILE_ID: "fe96bd4d-9b37-40f2-b39f-a62760e326a3" # SCC profile ID (currently set to 'IBM Cloud Framework for Financial Services' '1.7.0' profile).
1313
# SCC_INSTANCE_ID: "" # The SCC instance ID to use to download profile for CRA scan. If not provided, a default global value will be used.
1414
# SCC_REGION: "" # The IBM Cloud region that the SCC instance is in. If not provided, a default global value will be used.
1515
CRA_ENVIRONMENT_VARIABLES: # An optional map of environment variables for CRA, where the key is the variable name and value is the value. Useful for providing TF_VARs.
16-
TF_VAR_prefix: "mock"
17-
TF_VAR_region: "us-south"
16+
TF_VAR_label: "test"

examples/advanced/README.md

Lines changed: 0 additions & 4 deletions
This file was deleted.

examples/advanced/main.tf

Lines changed: 0 additions & 32 deletions
This file was deleted.

examples/advanced/outputs.tf

Lines changed: 0 additions & 38 deletions
This file was deleted.

0 commit comments

Comments
 (0)