From a35aeb9f7b6f1c823f32d1475db73d0488df58a6 Mon Sep 17 00:00:00 2001 From: viktorbarzin Date: Mon, 24 Apr 2023 02:59:24 +0100 Subject: [PATCH] add simple mysql container and update shlink to use it [ci skip] --- modules/kubernetes/dbaas/main.tf | 110 ++++++++++++++++++----- modules/kubernetes/url-shortener/main.tf | 2 +- terraform.tfstate | Bin 1264815 -> 1306165 bytes 3 files changed, 90 insertions(+), 22 deletions(-) diff --git a/modules/kubernetes/dbaas/main.tf b/modules/kubernetes/dbaas/main.tf index 92cbe8b6..63a4a4b6 100644 --- a/modules/kubernetes/dbaas/main.tf +++ b/modules/kubernetes/dbaas/main.tf @@ -2,7 +2,7 @@ variable "tls_secret_name" {} variable "dbaas_root_password" {} variable "cluster_master_service" { - default = "mysql-cluster" + default = "mysql" } variable "prod" { default = false @@ -21,6 +21,94 @@ module "tls_secret" { tls_secret_name = var.tls_secret_name } + +resource "kubernetes_service" "mysql" { + metadata { + name = var.cluster_master_service + namespace = "dbaas" + } + spec { + selector = { + app = "mysql" + } + port { + port = 3306 + } + } +} + +resource "kubernetes_deployment" "mysql" { + metadata { + name = "mysql" + namespace = "dbaas" + } + spec { + selector { + match_labels = { + app = "mysql" + } + } + strategy { + type = "Recreate" + } + template { + metadata { + labels = { + app = "mysql" + } + } + spec { + container { + image = "mysql" + name = "mysql" + env { + name = "MYSQL_ROOT_PASSWORD" + value = var.dbaas_root_password + } + port { + container_port = 3306 + name = "mysql" + } + volume_mount { + name = "mysql-persistent-storage" + mount_path = "/var/lib/mysql" + } + } + volume { + name = "mysql-persistent-storage" + iscsi { + target_portal = "iscsi.viktorbarzin.lan:3260" + iqn = "iqn.2020-12.lan.viktorbarzin:storage:dbaas:mysql" + lun = 0 + fs_type = "ext4" + } + } + } + } + } +} + +# resource "kubernetes_persistent_volume" "mysql" { +# metadata { +# name = "mysql-pv" +# } +# spec { +# capacity = { +# "storage" = "10Gi" +# } +# access_modes = ["ReadWriteOnce"] +# persistent_volume_source { +# iscsi { +# target_portal = "iscsi.viktorbarzin.lan:3260" +# iqn = "iqn.2020-12.lan.viktorbarzin:storage:dbaas:mysql" +# lun = 0 +# fs_type = "ext4" +# } +# } +# } +# } + + # resource "helm_release" "mysql" { # namespace = "dbaas" # create_namespace = false @@ -79,26 +167,6 @@ module "tls_secret" { # } # } -resource "kubernetes_persistent_volume" "mysql" { - metadata { - name = "mysql-pv" - } - spec { - capacity = { - "storage" = "10Gi" - } - access_modes = ["ReadWriteOnce"] - persistent_volume_source { - iscsi { - target_portal = "iscsi.viktorbarzin.lan:3260" - iqn = "iqn.2020-12.lan.viktorbarzin:storage:dbaas:mysql" - lun = 0 - fs_type = "ext4" - } - } - } -} - resource "kubernetes_secret" "cluster-password" { metadata { name = "cluster-secret" diff --git a/modules/kubernetes/url-shortener/main.tf b/modules/kubernetes/url-shortener/main.tf index d58abcfd..f5334ae3 100644 --- a/modules/kubernetes/url-shortener/main.tf +++ b/modules/kubernetes/url-shortener/main.tf @@ -112,7 +112,7 @@ resource "kubernetes_deployment" "shlink" { } env { name = "DB_HOST" - value = "mysql-cluster.dbaas.svc.cluster.local" + value = "mysql.dbaas.svc.cluster.local" } # env { # name = "DB_USER" diff --git a/terraform.tfstate b/terraform.tfstate index 17cd73201d25f5532241c9a4ae07ea07e46e6c08..aae3f52af5c5817f7c898463f21360d6beed1c1f 100644 GIT binary patch literal 1306165 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