Skip to content

Commit 890353c

Browse files
committed
added app version, custom db, namespace enable/disable param
1 parent b0b322a commit 890353c

File tree

8 files changed

+51
-31
lines changed

8 files changed

+51
-31
lines changed

examples/complete/aws/main.tf

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ locals {
77
Expires = "Never"
88
Department = "Engineering"
99
}
10-
store_password_to_secret_manager = true
11-
mysqldb_custom_credentials_enabled = false
10+
create_namespace = false
11+
namespace = ""
12+
store_password_to_secret_manager = false
13+
mysqldb_custom_credentials_enabled = true
1214
mysqldb_custom_credentials_config = {
1315
root_user = "root"
1416
root_password = "RJDRIFsYC8ZS1WQuV0ps"
@@ -24,7 +26,7 @@ locals {
2426

2527
module "aws" {
2628
source = "squareops/mysql/kubernetes//modules/resources/aws"
27-
cluster_name = ""
29+
cluster_name = "cluster-name"
2830
environment = local.environment
2931
name = local.name
3032
store_password_to_secret_manager = local.store_password_to_secret_manager
@@ -34,13 +36,17 @@ module "aws" {
3436
}
3537

3638
module "mysql" {
37-
source = "squareops/mysql/kubernetes"
39+
source = "squareops/mysql/kubernetes/"
40+
create_namespace = local.create_namespace
41+
namespace = local.namespace
3842
mysqldb_config = {
3943
name = local.name
4044
values_yaml = file("./helm/values.yaml")
45+
app_version = "8.0.29-debian-11-r9"
4146
environment = local.environment
4247
architecture = "replication"
43-
storage_class_name = "gp3"
48+
custom_database = "test_db"
49+
storage_class_name = "gp2"
4450
custom_user_username = local.mysqldb_custom_credentials_enabled ? "" : local.custom_user_username
4551
primary_db_volume_size = "10Gi"
4652
secondary_db_volume_size = "10Gi"

examples/complete/azure/main.tf

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ locals {
77
Expires = "Never"
88
Department = "Engineering"
99
}
10+
create_namespace = false
11+
namespace = ""
1012
store_password_to_secret_manager = true
1113
mysqldb_custom_credentials_enabled = false
1214
mysqldb_custom_credentials_config = {
@@ -40,12 +42,16 @@ module "azure" {
4042
}
4143

4244
module "mysql" {
43-
source = "squareops/mysql/kubernetes"
44-
mysqldb_config = {
45+
source = "squareops/mysql/kubernetes"
46+
create_namespace = local.create_namespace
47+
namespace = local.namespace
48+
mysqldb_config = {
4549
name = local.name
4650
values_yaml = file("./helm/values.yaml")
4751
environment = local.environment
52+
app_version = "8.0.29-debian-11-r9"
4853
architecture = "replication"
54+
custom_database = "test_db"
4955
storage_class_name = "infra-service-sc"
5056
custom_user_username = local.mysqldb_custom_credentials_enabled ? "" : local.custom_user_username
5157
primary_db_volume_size = "10Gi"

examples/complete/gcp/main.tf

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ locals {
77
Expires = "Never"
88
Department = "Engineering"
99
}
10+
create_namespace = false
11+
namespace = ""
1012
store_password_to_secret_manager = true
1113
mysqldb_custom_credentials_enabled = false
1214
mysqldb_custom_credentials_config = {
@@ -34,12 +36,16 @@ module "gcp" {
3436
}
3537

3638
module "mysql" {
37-
source = "squareops/mysql/kubernetes"
38-
mysqldb_config = {
39+
source = "squareops/mysql/kubernetes"
40+
create_namespace = local.create_namespace
41+
namespace = local.namespace
42+
mysqldb_config = {
3943
name = local.name
4044
values_yaml = file("./helm/values.yaml")
4145
environment = local.environment
46+
app_version = "8.0.29-debian-11-r9"
4247
architecture = "replication"
48+
custom_database = "test_db"
4349
storage_class_name = "standard"
4450
custom_user_username = local.mysqldb_custom_credentials_enabled ? "" : local.custom_user_username
4551
primary_db_volume_size = "10Gi"

helm/values/mysqldb/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ auth:
112112
## @param auth.database Name for a custom database to create
113113
## ref: https://github.com/bitnami/bitnami-docker-mysql/blob/master/README.md#creating-a-database-on-first-run
114114
##
115-
database: "my_database"
115+
database: ${custom_database}
116116
## @param auth.username Name for a custom user to create
117117
## ref: https://github.com/bitnami/bitnami-docker-mysql/blob/master/README.md#creating-a-database-user-on-first-run
118118
##

main.tf

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,13 @@ resource "helm_release" "mysqldb" {
1212
chart = "mysql"
1313
version = var.chart_version
1414
timeout = 600
15-
namespace = var.namespace
15+
namespace = var.create_namespace ? var.namespace : "default"
1616
repository = "https://charts.bitnami.com/bitnami"
1717
values = [
1818
templatefile("${path.module}/helm/values/mysqldb/values.yaml", {
1919
app_version = var.app_version,
2020
architecture = var.mysqldb_config.architecture,
21+
custom_database = var.mysqldb_config.custom_database,
2122
primary_pod_size = var.mysqldb_config.primary_db_volume_size,
2223
secondary_pod_size = var.mysqldb_config.secondary_db_volume_size,
2324
storage_class_name = var.mysqldb_config.storage_class_name,
@@ -26,7 +27,7 @@ resource "helm_release" "mysqldb" {
2627
replication_password = var.mysqldb_custom_credentials_enabled ? var.mysqldb_custom_credentials_config.replication_password : var.mysqldb_replication_user_password,
2728
mysqldb_root_password = var.mysqldb_custom_credentials_enabled ? var.mysqldb_custom_credentials_config.root_password : var.root_password,
2829
mysqldb_exporter_enabled = var.mysqldb_exporter_enabled,
29-
service_monitor_namespace = var.namespace
30+
service_monitor_namespace = var.create_namespace ? var.namespace : "default"
3031
metrics_exporter_password = var.mysqldb_custom_credentials_enabled ? var.mysqldb_custom_credentials_config.exporter_password : var.metric_exporter_pasword,
3132
secondary_pod_replica_count = var.mysqldb_config.secondary_db_replica_count
3233
}),
@@ -40,18 +41,18 @@ resource "helm_release" "mysqldb_backup" {
4041
name = "mysqldb-backup"
4142
chart = "${path.module}/modules/backup"
4243
timeout = 600
43-
namespace = var.namespace
44+
namespace = var.create_namespace ? var.namespace : "default"
4445
values = [
4546
templatefile("${path.module}/helm/values/backup/values.yaml", {
46-
bucket_uri = var.mysqldb_backup_config.bucket_uri,
47-
s3_bucket_region = var.bucket_provider_type == "s3" ? var.mysqldb_backup_config.s3_bucket_region : "",
48-
cron_for_full_backup = var.mysqldb_backup_config.cron_for_full_backup,
49-
custom_user_username = "root",
50-
bucket_provider_type = var.bucket_provider_type,
47+
bucket_uri = var.mysqldb_backup_config.bucket_uri,
48+
s3_bucket_region = var.bucket_provider_type == "s3" ? var.mysqldb_backup_config.s3_bucket_region : "",
49+
cron_for_full_backup = var.mysqldb_backup_config.cron_for_full_backup,
50+
custom_user_username = "root",
51+
bucket_provider_type = var.bucket_provider_type,
5152
azure_storage_account_name = var.bucket_provider_type == "azure" ? var.azure_storage_account_name : ""
5253
azure_storage_account_key = var.bucket_provider_type == "azure" ? var.azure_storage_account_key : ""
5354
azure_container_name = var.bucket_provider_type == "azure" ? var.azure_container_name : ""
54-
annotations = var.bucket_provider_type == "s3" ? "eks.amazonaws.com/role-arn: ${var.iam_role_arn_backup}" : "iam.gke.io/gcp-service-account: ${var.service_account_backup}"
55+
annotations = var.bucket_provider_type == "s3" ? "eks.amazonaws.com/role-arn: ${var.iam_role_arn_backup}" : "iam.gke.io/gcp-service-account: ${var.service_account_backup}"
5556
})
5657
]
5758
}
@@ -64,18 +65,18 @@ resource "helm_release" "mysqldb_restore" {
6465
name = "mysqldb-restore"
6566
chart = "${path.module}/modules/restore"
6667
timeout = 600
67-
namespace = var.namespace
68+
namespace = var.create_namespace ? var.namespace : "default"
6869
values = [
6970
templatefile("${path.module}/helm/values/restore/values.yaml", {
70-
bucket_uri = var.mysqldb_restore_config.bucket_uri,
71-
file_name = var.mysqldb_restore_config.file_name,
72-
s3_bucket_region = var.bucket_provider_type == "s3" ? var.mysqldb_restore_config.s3_bucket_region : "",
73-
custom_user_username = "root",
74-
bucket_provider_type = var.bucket_provider_type,
71+
bucket_uri = var.mysqldb_restore_config.bucket_uri,
72+
file_name = var.mysqldb_restore_config.file_name,
73+
s3_bucket_region = var.bucket_provider_type == "s3" ? var.mysqldb_restore_config.s3_bucket_region : "",
74+
custom_user_username = "root",
75+
bucket_provider_type = var.bucket_provider_type,
7576
azure_storage_account_name = var.bucket_provider_type == "azure" ? var.azure_storage_account_name : ""
7677
azure_storage_account_key = var.bucket_provider_type == "azure" ? var.azure_storage_account_key : ""
7778
azure_container_name = var.bucket_provider_type == "azure" ? var.azure_container_name : ""
78-
annotations = var.bucket_provider_type == "s3" ? "eks.amazonaws.com/role-arn: ${var.iam_role_arn_restore}" : "iam.gke.io/gcp-service-account: ${var.service_account_restore}"
79+
annotations = var.bucket_provider_type == "s3" ? "eks.amazonaws.com/role-arn: ${var.iam_role_arn_restore}" : "iam.gke.io/gcp-service-account: ${var.service_account_restore}"
7980
})
8081
]
8182
}

modules/backup/templates/service_account.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ apiVersion: v1
22
kind: ServiceAccount
33
metadata:
44
name: sa-mysql-backup
5-
namespace: mysqldb
5+
namespace: {{ .Release.Namespace }}
66
annotations:
77
{{ toYaml .Values.annotations | indent 4 }}

output.tf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ output "mysqldb_endpoints" {
22
description = "MySQL endpoints in the Kubernetes cluster."
33
value = {
44
mysqlport = "3306",
5-
mysql_primary_endpoint = "mysqldb-primary.${var.namespace}.svc.cluster.local",
6-
mysql_primary_headless_endpoint = "mysqldb-primary-headless.${var.namespace}.svc.cluster.local",
7-
mysql_secondary_endpoint = "mysqldb-secondary.${var.namespace}.svc.cluster.local",
8-
mysql_secondary_headless_endpoint = "mysqldb-secondary-headless.${var.namespace}.svc.cluster.local",
5+
mysql_primary_endpoint = var.create_namespace ? "mysqldb-primary.${var.namespace}.svc.cluster.local" : "mysqldb-primary.default.svc.cluster.local",
6+
mysql_primary_headless_endpoint = var.create_namespace ? "mysqldb-primary-headless.${var.namespace}.svc.cluster.local" : "mysqldb-primary-headless.default.svc.cluster.local",
7+
mysql_secondary_endpoint = var.create_namespace ? "mysqldb-secondary.${var.namespace}.svc.cluster.local" : "mysqldb-secondary.default.svc.cluster.local",
8+
mysql_secondary_headless_endpoint = var.create_namespace ? "mysqldb-secondary-headless.${var.namespace}.svc.cluster.local" : "mysqldb-secondary-headless.default.svc.cluster.local",
99
}
1010
}
1111

variables.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ variable "mysqldb_config" {
55
environment = ""
66
values_yaml = ""
77
architecture = ""
8+
custom_database = ""
89
storage_class_name = ""
910
custom_user_username = ""
1011
primary_db_volume_size = ""

0 commit comments

Comments
 (0)