locals {
prefix = random_string.prefix.result
tags = [
"provider:ibm",
"workspace:${terraform.workspace}",
"owner:${var.owner}"
]
}
module "resource_group" {
source = "git::https://github.com/terraform-ibm-modules/terraform-ibm-resource-group.git?ref=v1.0.5"
resource_group_name = var.existing_resource_group == null ? "${local.prefix}-resource-group" : null
existing_resource_group_name = var.existing_resource_group
}
resource "random_string" "prefix" {
length = 4
special = false
upper = false
numeric = false
}
resource "random_string" "db_admin_password" {
length = 16
special = false
}
resource "ibm_database" "custom_user_rancher_backend" {
name = "${local.prefix}-db-custom-user"
plan = "standard"
location = var.region
service = "databases-for-mysql"
resource_group_id = module.resource_group.resource_group_id
tags = local.tags
users {
name = "k3s_admin"
password = random_string.db_admin_password.result
type = "database"
}
}
resource "ibm_database" "admin_user_rancher_backend" {
name = "${local.prefix}-db-admin-user"
plan = "standard"
location = var.region
service = "databases-for-mysql"
resource_group_id = module.resource_group.resource_group_id
tags = local.tags
adminpassword = random_string.db_admin_password.result
}
data "ibm_database_connection" "custom_user_mysql_conn" {
deployment_id = ibm_database.custom_user_rancher_backend.id
user_type = "database"
user_id = "k3s_admin"
endpoint_type = "private"
}
data "ibm_database_connection" "adminuser_mysql_conn" {
deployment_id = ibm_database.admin_user_rancher_backend.id
user_type = "database"
user_id = "admin"
endpoint_type = "private"
}
[$] <> terraform version
Terraform v1.5.3
on darwin_arm64
+ provider registry.terraform.io/hashicorp/random v3.5.1
+ provider registry.terraform.io/ibm-cloud/ibm v1.55.0
This is for both deployment options
│ "Result": {
│ "errors": {
│ "errors": "not_found",
│ "hint": "You may need to URL-encode any included CRN(s), see https://cloud.ibm.com/apidocs/cloud-databases-api/cloud-databases-api-v5#deployment-ids-and-crns for details"
│ }
│ },
│ "RawResult": null
│ }