Skip to content
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
a305dab
add : fully configurable version
Aditya-ranjan-16 Apr 17, 2025
f708cc7
Merge branch 'main' into DA-13008
Aditya-ranjan-16 Apr 20, 2025
db10441
fix: made kms encryption optional
Aditya-ranjan-16 Apr 22, 2025
9eef3c0
fix: added security-enforced variation
Aditya-ranjan-16 Apr 24, 2025
4129153
Merge branch 'main' into DA-13008
Aditya-ranjan-16 Apr 27, 2025
1aeb6d4
Merge branch 'main' into DA-13008
Aditya-ranjan-16 Apr 28, 2025
df1752d
fix: added var in root module and refactored validations
Aditya-ranjan-16 Apr 28, 2025
0f4d7a3
Merge branch 'main' into DA-13008
Aditya-ranjan-16 Apr 29, 2025
4b5c114
Merge branch 'main' into DA-13008
Aditya-ranjan-16 May 5, 2025
1ed8dcc
update: test,catalog changes etc..
Aditya-ranjan-16 May 5, 2025
5745f7d
fix
Aditya-ranjan-16 May 5, 2025
deaae38
fix
Aditya-ranjan-16 May 5, 2025
ac25cc0
SKIP UPGRADE TEST
Aditya-ranjan-16 May 5, 2025
03054ae
fix: resolved comments
Aditya-ranjan-16 May 7, 2025
7d61759
fix
Aditya-ranjan-16 May 7, 2025
a9b37c0
Merge branch 'main' into DA-13008
Aditya-ranjan-16 May 8, 2025
e3cd7e2
fix: prefix validation , pipeline failures
Aditya-ranjan-16 May 8, 2025
6cf52b5
fix
Aditya-ranjan-16 May 8, 2025
c7382d7
Merge branch 'main' into DA-13008
Aditya-ranjan-16 May 12, 2025
d487821
Merge branch 'main' into DA-13008
Aditya-ranjan-16 May 15, 2025
1fa45b3
Merge branch 'main' into DA-13008
Aditya-ranjan-16 May 27, 2025
1c47b13
fix: synced changes
Aditya-ranjan-16 May 27, 2025
b4b211c
fix
Aditya-ranjan-16 May 30, 2025
96f54ed
fiix
Aditya-ranjan-16 May 30, 2025
507e035
fix: pre-commit
Aditya-ranjan-16 May 30, 2025
ecec24d
fix: SE upgrade test added
Aditya-ranjan-16 Jun 3, 2025
38aa4a7
fix: minor changes, formatting, references to other ICD types, versions
shemau Jun 5, 2025
26dd07c
Merge branch 'main' into DA-13008
Aditya-ranjan-16 Jun 18, 2025
a52c822
improve DA user experience
Aditya-ranjan-16 Jun 18, 2025
b43e39e
fix: changed region variable description
Aditya-ranjan-16 Jun 18, 2025
a046eec
synced with redis PR
Aditya-ranjan-16 Jun 25, 2025
6b7464d
fix
Aditya-ranjan-16 Jun 25, 2025
154e9b7
fix
Aditya-ranjan-16 Jun 26, 2025
683b0cc
fix: minor changes
Aditya-ranjan-16 Jun 26, 2025
eac103a
fix: resolved comments
Aditya-ranjan-16 Jun 27, 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
10 changes: 9 additions & 1 deletion .catalog-onboard-pipeline.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,17 @@ offerings:
catalog_id: 7df1e4ca-d54c-4fd0-82ce-3d13247308cd
offering_id: 4be16b65-3efc-457e-bc30-690e3ac7a6a1
variations:
- name: standard
- name: fully-configurable
mark_ready: true
install_type: fullstack
scc:
instance_id: 1c7d5f78-9262-44c3-b779-b28fe4d88c37
region: us-south
scope_resource_group_var_name: existing_resource_group_name
- name: security-enforced
mark_ready: true
install_type: fullstack
scc:
instance_id: 1c7d5f78-9262-44c3-b779-b28fe4d88c37
region: us-south
scope_resource_group_var_name: existing_resource_group_name
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ To attach access management tags to resources in this module, you need the follo
| <a name="input_configuration"></a> [configuration](#input\_configuration) | Database configuration parameters, see https://cloud.ibm.com/docs/databases-for-mysql?topic=databases-for-mysql-changing-configuration&interface=api for more details. | <pre>object({<br/> default_authentication_plugin = optional(string) # sha256_password,caching_sha2_password,mysql_native_password<br/> innodb_buffer_pool_size_percentage = optional(number) # 10 ≤ value ≤ 100<br/> innodb_flush_log_at_trx_commit = optional(number) # 0 ≤ value ≤ 2<br/> innodb_log_buffer_size = optional(number) # 1048576 ≤ value ≤ 4294967295<br/> innodb_log_file_size = optional(number) # 4194304 ≤ value ≤ 274877906900<br/> innodb_lru_scan_depth = optional(number) # 128 ≤ value ≤ 2048<br/> innodb_read_io_threads = optional(number) # 1 ≤ value ≤ 64<br/> innodb_write_io_threads = optional(number) # 1 ≤ value ≤ 64<br/> max_allowed_packet = optional(number) # 1024 ≤ value ≤ 1073741824<br/> max_connections = optional(number) # 100 ≤ value ≤ 200000<br/> max_prepared_stmt_count = optional(number) # 0 ≤ value ≤ 4194304<br/> mysql_max_binlog_age_sec = optional(number) # 300 ≤ value ≤ 1073741823 Default: 1800<br/> net_read_timeout = optional(number) # 1 ≤ value ≤ 7200<br/> net_write_timeout = optional(number) # 1 ≤ value ≤ 7200<br/> sql_mode = optional(string) # The comma-separated list of SQL modes applied on this server globally<br/> wait_timeout = optional(number) # 1 ≤ value ≤ 31536000<br/> })</pre> | `null` | no |
| <a name="input_cpu_count"></a> [cpu\_count](#input\_cpu\_count) | Allocated dedicated CPU per member. For shared CPU, set to 0. [Learn more](https://cloud.ibm.com/docs/databases-for-mysql?topic=databases-for-mysql-resources-scaling) | `number` | `0` | no |
| <a name="input_disk_mb"></a> [disk\_mb](#input\_disk\_mb) | Allocated disk per member. [Learn more](https://cloud.ibm.com/docs/databases-for-mysql?topic=databases-for-mysql-resources-scaling) | `number` | `10240` | no |
| <a name="input_kms_encryption_enabled"></a> [kms\_encryption\_enabled](#input\_kms\_encryption\_enabled) | Set to true to enable KMS Encryption using customer managed keys. When set to true, a value must be passed for either 'existing\_kms\_instance\_crn', 'existing\_kms\_key\_crn' or 'existing\_backup\_kms\_key\_crn'. | `bool` | `true` | no |
| <a name="input_kms_key_crn"></a> [kms\_key\_crn](#input\_kms\_key\_crn) | The CRN of a Key Protect or Hyper Protect Crypto Services encryption key to encrypt your data. Applies only if `use_ibm_owned_encryption_key` is false. By default this key is used for both deployment data and backups, but this behaviour can be altered using the `use_same_kms_key_for_backups` and `backup_encryption_key_crn` inputs. Bare in mind that backups encryption is only available in certain regions. See [Bring your own key for backups](https://cloud.ibm.com/docs/cloud-databases?topic=cloud-databases-key-protect&interface=ui#key-byok) and [Using the HPCS Key for Backup encryption](https://cloud.ibm.com/docs/cloud-databases?topic=cloud-databases-hpcs#use-hpcs-backups). | `string` | `null` | no |
| <a name="input_member_host_flavor"></a> [member\_host\_flavor](#input\_member\_host\_flavor) | Allocated host flavor per member. [Learn more](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/database#host_flavor). | `string` | `null` | no |
| <a name="input_members"></a> [members](#input\_members) | Allocated number of members. Members can be scaled up but not down. | `number` | `3` | no |
Expand Down
6 changes: 3 additions & 3 deletions cra-config.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# More info about this file at https://github.com/terraform-ibm-modules/common-pipeline-assets/blob/main/.github/workflows/terraform-test-pipeline.md#cra-config-yaml
version: "v1"
CRA_TARGETS:
- CRA_TARGET: "solutions/standard" # Target directory for CRA scan. If not provided, the CRA Scan will not be run.
- CRA_TARGET: "solutions/fully-configurable" # Target directory for CRA scan. If not provided, the CRA Scan will not be run.
CRA_IGNORE_RULES_FILE: "cra-tf-validate-ignore-rules.json" # CRA Ignore file to use. If not provided, it checks the repo root directory for `cra-tf-validate-ignore-rules.json`
PROFILE_ID: "fe96bd4d-9b37-40f2-b39f-a62760e326a3" # SCC profile ID (currently set to 'IBM Cloud Framework for Financial Services' '1.7.0' profile).
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.
TF_VAR_existing_kms_key_crn: "crn:v1:bluemix:public:hs-crypto:us-south:a/abac0df06b644a9cabc6e44f55b3880e:e6dce284-e80f-46e1-a3c1-830f7adff7a9:key:76170fae-4e0c-48c3-8ebe-326059ebb533"
TF_VAR_use_existing_resource_group: true
TF_VAR_resource_group_name: "geretain-test-mysql"
TF_VAR_existing_resource_group_name: "geretain-test-mysql"
TF_VAR_kms_encryption_enabled: true
TF_VAR_provider_visibility: "public"
288 changes: 279 additions & 9 deletions ibm_catalog.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@
"in memory"
],
"short_description": "Creates and configures an instance of IBM Cloud Databases for MySQL.",
"long_description": "This architecture supports creating and configuring an instance of Databases for MySQL with KMS encryption.",
"long_description": "This architecture supports creating and configuring an instance of [Databases for MySQL](https://www.ibm.com/products/databases-for-mysql), with optional KMS encryption. This Terraform-based automation is part of a broader suite of IBM-maintained Infrastructure as Code (IaC) asset collection, 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-icd-mysql/blob/main/README.md",
"offering_icon_url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-icd-mysql/main/images/mysql_icon.svg",
"provider_name": "IBM",
Expand All @@ -46,10 +47,10 @@
],
"flavors": [
{
"label": "Standard",
"name": "standard",
"label": "Fully configurable",
"name": "fully-configurable",
"install_type": "fullstack",
"working_directory": "solutions/standard",
"working_directory": "solutions/fully-configurable",
"compliance": {
"authority": "scc-v3",
"profiles": [
Expand Down Expand Up @@ -118,13 +119,20 @@
"displayname": "public-and-private",
"value": "public-and-private"
}
]
},
{
"key": "use_existing_resource_group"
],
"hidden": true
},
{
"key": "resource_group_name"
"key": "existing_resource_group_name",
"required": true,
"custom_config": {
"type": "resource_group",
"grouping": "deployment",
"original_grouping": "deployment",
"config_constraints": {
"identifier": "rg_name"
}
}
},
{
"key": "prefix"
Expand Down Expand Up @@ -229,6 +237,23 @@
{
"key": "users"
},
{
"key": "service_endpoints",
"options": [
{
"displayname": "private",
"value": "private"
},
{
"displayname": "public",
"value": "public"
},
{
"displayname": "public-and-private",
"value": "public-and-private"
}
]
},
{
"key": "tags"
},
Expand All @@ -241,6 +266,9 @@
{
"key": "ibmcloud_kms_api_key"
},
{
"key": "kms_encryption_enabled"
},
{
"key": "existing_kms_instance_crn",
"required": true
Expand Down Expand Up @@ -323,6 +351,248 @@
"key": "configuration"
}
]
},
{
"label": "Security-enforced",
"name": "security-enforced",
"install_type": "fullstack",
"working_directory": "solutions/security-enforced",
"compliance": {
"authority": "scc-v3",
"profiles": [
{
"profile_name": "IBM Cloud Framework for Financial Services",
"profile_version": "1.7.0"
}
]
},
"iam_permissions": [
{
"role_crns": [
"crn:v1:bluemix:public:iam::::role:Administrator"
],
"service_name": "all-account-management-services"
},
{
"role_crns": [
"crn:v1:bluemix:public:iam::::role:Editor"
],
"service_name": "databases-for-mysql"
},
{
"role_crns": [
"crn:v1:bluemix:public:iam::::serviceRole:Manager",
"crn:v1:bluemix:public:iam::::role:Editor"
],
"service_name": "kms"
}
],
"architecture": {
"descriptions": "This architecture creates an instance of IBM CLoud Databases for MySQL instance with KMS encryption. Supports autoscaling.",
"features": [
{
"title": " Creates an instance of Databases for MySQL",
"description": "This architecture creates an instance of IBM Cloud Databases for MySQL with KMS encryption. It accepts or creates a resource group, and provides autoscaling rules."
}
],
"diagrams": [
{
"diagram": {
"caption": "Databases for MySQL instance on IBM Cloud",
"url": "https://raw.githubusercontent.com/terraform-ibm-modules/terraform-ibm-icd-mysql/main/reference-architecture/deployable-architecture-mysql.svg",
"type": "image/svg+xml"
},
"description": "This architecture supports creating and configuring an instance of Databases for MySQL instance with KMS encryption."
}
]
},
"configuration": [
{
"key": "ibmcloud_api_key"
},
{
"key": "existing_resource_group_name",
"required": true,
"custom_config": {
"type": "resource_group",
"grouping": "deployment",
"original_grouping": "deployment",
"config_constraints": {
"identifier": "rg_name"
}
}
},
{
"key": "prefix"
},
{
"key": "name"
},
{
"key": "region",
"required": true,
"default_value": "us-south",
"options": [
{
"displayname": "Chennai (che01)",
"value": "che01"
},
{
"displayname": "Dallas (us-south)",
"value": "us-south"
},
{
"displayname": "Frankfurt (eu-de)",
"value": "eu-de"
},
{
"displayname": "London (eu-gb)",
"value": "eu-gb"
},
{
"displayname": "Madrid (eu-es)",
"value": "eu-es"
},
{
"displayname": "Osaka (jp-osa)",
"value": "jp-osa"
},
{
"displayname": "Paris (par01)",
"value": "par01"
},
{
"displayname": "Sao Paulo (br-sao)",
"value": "br-sao"
},
{
"displayname": "Sydney (au-syd)",
"value": "au-syd"
},
{
"displayname": "Toronto (ca-tor)",
"value": "ca-tor"
},
{
"displayname": "Tokyo (jp-tok)",
"value": "jp-tok"
},
{
"displayname": "Washington (us-east)",
"value": "us-east"
}
]
},
{
"key": "mysql_version",
"required": true,
"options": [
{
"displayname": "6.2",
"value": "6.2"
},
{
"displayname": "7.2",
"value": "7.2"
},
{
"displayname": "8.0",
"value": "8.0"
}
]
},
{
"key": "members"
},
{
"key": "member_memory_mb"
},
{
"key": "member_cpu_count"
},
{
"key": "member_disk_mb"
},
{
"key": "member_host_flavor"
},
{
"key": "service_credential_names"
},
{
"key": "admin_pass"
},
{
"key": "users"
},
{
"key": "tags"
},
{
"key": "access_tags"
},
{
"key": "use_ibm_owned_encryption_key"
},
{
"key": "ibmcloud_kms_api_key"
},
{
"key": "existing_kms_instance_crn",
"required": true
},
{
"key": "existing_kms_key_crn"
},
{
"key": "key_ring_name"
},
{
"key": "key_name"
},
{
"key": "auto_scaling"
},
{
"key": "existing_secrets_manager_instance_crn"
},
{
"key": "service_credential_secrets"
},
{
"key": "skip_mysql_secrets_manager_auth_policy"
},
{
"key": "skip_mysql_kms_auth_policy"
},
{
"key": "backup_crn"
},
{
"key": "admin_pass_secrets_manager_secret_group"
},
{
"key": "admin_pass_secrets_manager_secret_name"
},
{
"key": "use_existing_admin_pass_secrets_manager_secret_group"
},
{
"key": "existing_mysql_instance_crn"
},
{
"key": "existing_backup_kms_key_crn"
},
{
"key": "use_default_backup_encryption_key"
},
{
"key": "remote_leader_crn"
},
{
"key": "configuration"
}
]
}
]
}
Expand Down
Loading