terraform-provider-mysql
terraform-provider-mysql copied to clipboard
Root object was present, but now absent. on mysql_grant
Provider version
Run terraform -v
Terraform v1.9.4
on linux_amd64
+ provider registry.terraform.io/hashicorp/azuread v2.33.0
+ provider registry.terraform.io/hashicorp/azurerm v3.48.0
+ provider registry.terraform.io/hashicorp/helm v2.14.0
+ provider registry.terraform.io/hashicorp/kubernetes v2.18.1
+ provider registry.terraform.io/hashicorp/time v0.9.1
+ provider registry.terraform.io/petoju/mysql v3.0.63
You can find the latest version mentioned here: https://registry.terraform.io/providers/petoju/mysql/latest
MySQL version and settings
Azure Flexible MySQL configured in terraform as below. (Notice the SQL mode configs)
resource "azurerm_mysql_flexible_server" "subscripify_mysql_serv" {
name = var.db_server_name
administrator_login = data.azurerm_key_vault_secret.dbUnSecret.value
administrator_password = data.azurerm_key_vault_secret.dbPwSecret.value
resource_group_name = azurerm_resource_group.repo_rg.name
location = azurerm_resource_group.repo_rg.location
backup_retention_days = 7
geo_redundant_backup_enabled = false
sku_name = "B_Standard_B1ms"
version = "8.0.21"
zone = "1"
storage {
auto_grow_enabled = true
io_scaling_enabled = true
size_gb = 20
}
timeouts {}
}
resource "azurerm_mysql_flexible_server_configuration" "sql_mode" {
name = "sql_mode"
resource_group_name = azurerm_resource_group.repo_rg.name
server_name = azurerm_mysql_flexible_server.subscripify_mysql_serv.name
value = "ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES"
}
Terraform Configuration Files
See above for server config- all one needs to do is change the variable names and set to their azure account.
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "3.48.0"
}
time = {
source = "hashicorp/time"
version = "0.9.1"
}
mysql = {
source = "petoju/mysql"
version = "3.0.63"
}
kubernetes = {
source = "hashicorp/kubernetes"
version = "2.18.1"
}
azuread = {
source = "hashicorp/azuread"
version = "2.33.0"
}
}
required_version = ">= 0.14.9"
backend "azurerm" {
}
}
#connects to the Database server to run user setup
provider "mysql" {
endpoint = "${data.azurerm_mysql_flexible_server.subscripify_mysql_serv.fqdn}:3306"
# username = "${data.azurerm_mysql_flexible_server.subscripify_mysql_serv.administrator_login}@${data.azurerm_mysql_flexible_server.subscripify_mysql_serv.name}"
username = "${data.azurerm_key_vault_secret.db_admin_username.value}"
password = "${data.azurerm_key_vault_secret.db_admin_password.value}"
tls = true
}
provider "azuread" {
# Configuration options
}
provider "azurerm" {
features {}
}
provider "time" {
}
//sets up tenant user in db
resource "mysql_user" "tennat_db_user" {
user = replace("${var.tenant_name}_db_user","-","_")
host = "%"
plaintext_password = var.SUBSCRIPIFY_DB_FIRST_TENANT_PW
}
resource "azurerm_mysql_flexible_database" "kratosdb" {
name = replace("${var.tenant_short_name}_user_db","-","_")
resource_group_name = var.core_infra_resource_group_name
server_name = data.azurerm_mysql_flexible_server.subscripify_mysql_serv.name
charset = "latin1"
collation = "latin1_swedish_ci"
}
resource "mysql_grant" "developer" {
grant = true
user = mysql_user.tennat_db_user.user
host = mysql_user.tennat_db_user.host
database = "${var.tenant_short_name}\\_%"
privileges = ["ALL"]
}
resource "mysql_grant" "create_user_t0_lord" {
grant = true
user = mysql_user.tennat_db_user.user
host = mysql_user.tennat_db_user.host
database = "*"
privileges = ["CREATE USER"]
}
Debug Output
creds cleaned... https://gist.github.com/williamohara/924b7c3a58f809beeaf790b9e6f5d0b2
Panic Output
None
Expected Behavior
No error - grants given to user
Actual Behavior
Error: Provider produced inconsistent result after apply
│
│ When applying changes to mysql_grant.developer, provider
│ "provider[\"registry.terraform.io/petoju/mysql\"]" produced an unexpected
│ new value: Root object was present, but now absent.
│
│ This is a bug in the provider, which should be reported in the provider's
│ own issue tracker.
Steps to Reproduce
Please list the steps required to reproduce the issue, for example:
-
terraform apply
Important Factoids
Are there anything atypical about your accounts that we should know? For example: Running in EC2 Classic? Custom version of OpenStack? Tight ACLs? I am using terragurnt
References
I don't think so