Refacto and add modules

This commit is contained in:
2024-02-06 11:03:20 +01:00
parent 140321f714
commit 1e1cedcaeb
47 changed files with 685 additions and 360 deletions

View File

@@ -1,8 +1,8 @@
locals {
app_slug = "${var.instance}${var.component == "" ? "" : "-"}${var.component}"
mysql_labels = merge(var.labels, {
"app.kubernetes.io/component" = "mysql"
})
app_slug = "${var.instance}${var.component == "" ? "" : "-"}${var.component}"
mysql_host = "${local.app_slug}-mysql.${var.namespace}.svc"
mysql_username = data.kubernetes_secret_v1.mysql_secret.data["rootUser"]
mysql_password = data.kubernetes_secret_v1.mysql_secret.data["rootPassword"]
@@ -36,12 +36,12 @@ data "kubernetes_secret_v1" "mysql_secret" {
metadata {
name = "${local.app_slug}-mysql"
namespace = var.namespace
labels = local.mysql_labels
labels = local.mysql_labels
}
}
resource "kubectl_manifest" "mysql" {
yaml_body = <<-EOF
yaml_body = <<-EOF
apiVersion: mysql.oracle.com/v2
kind: InnoDBCluster
metadata:
@@ -66,7 +66,7 @@ resource "kubectl_manifest" "mysql" {
}
resource "time_sleep" "wait_mysql_ready" {
depends_on = [kubectl_manifest.mysql]
depends_on = [kubectl_manifest.mysql]
create_duration = "45s"
}

View File

@@ -1,12 +1,15 @@
output "dns_names" {
value = [
"${local.app_slug}-mysql",
"${local.app_slug}-mysql-instances"
]
output "conn_string" {
value = "mysql://${urlencode(data.kubernetes_secret_v1.mysql_secret.data["username"])}:${urlencode(data.kubernetes_secret_v1.mysql_secret.data["password"])}@${local.app_slug}-mysql.${var.namespace}.svc:3306/${var.database}"
}
output "mysql_host" {
value =" ${local.app_slug}-mysql"
output "service" {
value = "${local.app_slug}-mysql.${var.namespace}.svc"
}
output "host" {
value = "${local.app_slug}-mysql"
}
output "secret_name" {
value = "${local.app_slug}-db"
}
}

View File

@@ -1,12 +1,12 @@
terraform {
required_providers {
kubectl = {
source = "gavinbunney/kubectl"
version = "~> 1.14.0"
source = "gavinbunney/kubectl"
version = "~> 1.14.0"
}
mysql = {
source = "TakatoHano/mysql"
source = "TakatoHano/mysql"
version = "1.2.1"
}
}
}
}