Skip to content

Commit 5350627

Browse files
authored
Merge pull request #8 from Ad-squareops/gcp
added custom db and namespace enable/disable param
2 parents 31b4a32 + a4a1021 commit 5350627

File tree

15 files changed

+99
-53
lines changed

15 files changed

+99
-53
lines changed

IAM.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,4 @@ The Policy required to deploy this module:
8282
"resourcemanager.projects.getIamPolicy",
8383
"resourcemanager.projects.setIamPolicy"
8484
]
85-
```
85+
```

README.md

Lines changed: 44 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -18,56 +18,72 @@ This module is for deploying a highly available MongoDB cluster on Kubernetes us
1818
## Usage Example
1919

2020
```hcl
21-
module "aws" {
22-
source = "squareops/mongodb/kubernetes//modules/resources/aws"
23-
environment = "prod"
24-
name = "mongodb"
25-
cluster_name = "prod-eks"
26-
mongodb_custom_credentials_enabled = "true"
27-
store_password_to_secret_manager = "true"
28-
mongodb_custom_credentials_config = {
21+
locals {
22+
name = "mongo"
23+
region = "us-east-2"
24+
environment = "prod"
25+
additional_tags = {
26+
Owner = "organization_name"
27+
Expires = "Never"
28+
Department = "Engineering"
29+
}
30+
create_namespace = true
31+
namespace = "mongodb"
32+
store_password_to_secret_manager = true
33+
mongodb_custom_credentials_enabled = true
34+
mongodb_custom_credentials_config = {
2935
root_user = "root"
3036
root_password = "NCPFUKEMd7rrWuvMAa73"
3137
metric_exporter_user = "mongodb_exporter"
3238
metric_exporter_password = "nvAHhm1uGQNYWVw6ZyAH"
3339
}
3440
}
41+
module "aws" {
42+
source = "squareops/mongodb/kubernetes//modules/resources/aws"
43+
environment = local.environment
44+
name = local.name
45+
store_password_to_secret_manager = local.store_password_to_secret_manager
46+
cluster_name = ""
47+
mongodb_custom_credentials_enabled = local.mongodb_custom_credentials_enabled
48+
mongodb_custom_credentials_config = local.mongodb_custom_credentials_config
49+
}
3550
3651
module "mongodb" {
37-
source = "squareops/mongodb/kubernetes"
52+
source = "squareops/mongodb/kubernetes"
53+
namespace = local.namespace
54+
create_namespace = local.create_namespace
3855
mongodb_config = {
39-
name = "mongodb"
56+
name = local.name
57+
namespace = local.namespace
4058
values_yaml = ""
41-
environment = "prod"
59+
environment = local.environment
4260
volume_size = "10Gi"
4361
architecture = "replicaset"
62+
custom_databases = "['db1', 'db2']"
63+
custom_databases_usernames = "['admin', 'admin']"
64+
custom_databases_passwords = "['pass1', 'pass2']"
4465
replica_count = 2
45-
storage_class_name = "gp3"
46-
store_password_to_secret_manager = "true"
47-
}
48-
mongodb_custom_credentials_enabled = "true"
49-
mongodb_custom_credentials_config = {
50-
root_user = "root"
51-
root_password = "NCPFUKEMd7rrWuvMAa73"
52-
metric_exporter_user = "mongodb_exporter"
53-
metric_exporter_password = "nvAHhm1uGQNYWVw6ZyAH"
66+
storage_class_name = "gp2"
67+
store_password_to_secret_manager = local.store_password_to_secret_manager
5468
}
55-
root_password = mongodb_custom_credentials_enabled ? "" : module.aws.root_password
56-
metric_exporter_pasword = mongodb_custom_credentials_enabled ? "" : module.aws.metric_exporter_pasword
69+
mongodb_custom_credentials_enabled = local.mongodb_custom_credentials_enabled
70+
mongodb_custom_credentials_config = local.mongodb_custom_credentials_config
71+
root_password = local.mongodb_custom_credentials_enabled ? "" : module.aws.root_password
72+
metric_exporter_password = local.mongodb_custom_credentials_enabled ? "" : module.aws.metric_exporter_password
5773
bucket_provider_type = "s3"
5874
mongodb_backup_enabled = true
5975
iam_role_arn_backup = module.aws.iam_role_arn_backup
6076
mongodb_backup_config = {
61-
bucket_uri = "backup-bucket-uri"
62-
s3_bucket_region = "backup-bucket-region"
63-
cron_for_full_backup = "* */12 * * *"
77+
bucket_uri = "s3://mongo-demo-backup"
78+
s3_bucket_region = "us-east-2"
79+
cron_for_full_backup = "* * * * *"
6480
}
6581
mongodb_restore_enabled = true
6682
iam_role_arn_restore = module.aws.iam_role_arn_restore
6783
mongodb_restore_config = {
68-
bucket_uri = "restore-bucket-uri/restore-file-name"
69-
s3_bucket_region = "restore-bucket-region"
70-
file_name = "restore-file-name"
84+
bucket_uri = "s3://mongo-demo-backup/mongodumpfull_20230523_092110.gz"
85+
s3_bucket_region = "us-east-2"
86+
file_name = "mongodumpfull_20230523_092110.gz"
7187
}
7288
mongodb_exporter_enabled = true
7389
}

examples/complete/aws/helm/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ affinity:
33
requiredDuringSchedulingIgnoredDuringExecution:
44
nodeSelectorTerms:
55
- matchExpressions:
6-
- key: "Data-Services"
6+
- key: "Infra-Services"
77
operator: In
88
values:
99
- "true"

examples/complete/aws/main.tf

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ locals {
77
Expires = "Never"
88
Department = "Engineering"
99
}
10+
create_namespace = true
11+
namespace = "mongodb"
1012
store_password_to_secret_manager = true
1113
mongodb_custom_credentials_enabled = true
1214
mongodb_custom_credentials_config = {
@@ -21,27 +23,33 @@ module "aws" {
2123
environment = local.environment
2224
name = local.name
2325
store_password_to_secret_manager = local.store_password_to_secret_manager
24-
cluster_name = "ipv6-shib"
26+
cluster_name = ""
2527
mongodb_custom_credentials_enabled = local.mongodb_custom_credentials_enabled
2628
mongodb_custom_credentials_config = local.mongodb_custom_credentials_config
2729
}
2830

2931
module "mongodb" {
30-
source = "squareops/mongodb/kubernetes"
32+
source = "squareops/mongodb/kubernetes"
33+
namespace = local.namespace
34+
create_namespace = local.create_namespace
3135
mongodb_config = {
3236
name = local.name
37+
namespace = local.namespace
3338
values_yaml = file("./helm/values.yaml")
3439
environment = local.environment
3540
volume_size = "10Gi"
3641
architecture = "replicaset"
42+
custom_databases = "['db1', 'db2']"
43+
custom_databases_usernames = "['admin', 'admin']"
44+
custom_databases_passwords = "['pass1', 'pass2']"
3745
replica_count = 2
38-
storage_class_name = "gp3"
46+
storage_class_name = "gp2"
3947
store_password_to_secret_manager = local.store_password_to_secret_manager
4048
}
4149
mongodb_custom_credentials_enabled = local.mongodb_custom_credentials_enabled
4250
mongodb_custom_credentials_config = local.mongodb_custom_credentials_config
4351
root_password = local.mongodb_custom_credentials_enabled ? "" : module.aws.root_password
44-
metric_exporter_pasword = local.mongodb_custom_credentials_enabled ? "" : module.aws.metric_exporter_pasword
52+
metric_exporter_password = local.mongodb_custom_credentials_enabled ? "" : module.aws.metric_exporter_password
4553
bucket_provider_type = "s3"
4654
mongodb_backup_enabled = true
4755
iam_role_arn_backup = module.aws.iam_role_arn_backup

examples/complete/azure/main.tf

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ locals {
77
Expires = "Never"
88
Department = "Engineering"
99
}
10+
create_namespace = true
11+
namespace = "mongodb"
1012
store_password_to_secret_manager = true
1113
mongodb_custom_credentials_enabled = true
1214
mongodb_custom_credentials_config = {
@@ -35,22 +37,28 @@ module "azure" {
3537
module "mongodb" {
3638
source = "squareops/mongodb/kubernetes"
3739
cluster_name = ""
40+
namespace = local.namespace
41+
create_namespace = local.create_namespace
3842
resource_group_name = ""
3943
resource_group_location = ""
4044
mongodb_config = {
4145
name = local.name
46+
namespace = local.namespace
4247
values_yaml = file("./helm/values.yaml")
4348
volume_size = "10Gi"
4449
architecture = "replicaset"
4550
replica_count = 1
4651
environment = local.environment
52+
custom_databases = "['db1', 'db2']"
53+
custom_databases_usernames = "['admin', 'admin']"
54+
custom_databases_passwords = "['pass1', 'pass2']"
4755
storage_class_name = "infra-service-sc"
4856
store_password_to_secret_manager = local.store_password_to_secret_manager
4957
}
5058
mongodb_custom_credentials_enabled = local.mongodb_custom_credentials_enabled
5159
mongodb_custom_credentials_config = local.mongodb_custom_credentials_config
5260
root_password = local.mongodb_custom_credentials_enabled ? "" : module.azure.root_password
53-
metric_exporter_pasword = local.mongodb_custom_credentials_enabled ? "" : module.azure.metric_exporter_pasword
61+
metric_exporter_password = local.mongodb_custom_credentials_enabled ? "" : module.azure.metric_exporter_pasword
5462
bucket_provider_type = "azure"
5563
mongodb_backup_enabled = false
5664
mongodb_backup_config = {

examples/complete/azure/output.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ output "mongodb_endpoints" {
66
output "mongodb_credential" {
77
value = local.store_password_to_secret_manager ? null : module.mongodb.mongodb_credential
88
description = "MongoDB credentials used for accessing the MongoDB database."
9-
}
9+
}

examples/complete/gcp/main.tf

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ locals {
77
Expires = "Never"
88
Department = "Engineering"
99
}
10+
create_namespace = true
11+
namespace = "mongodb"
1012
store_password_to_secret_manager = true
1113
mongodb_custom_credentials_enabled = true
1214
mongodb_custom_credentials_config = {
@@ -29,22 +31,28 @@ module "gcp" {
2931

3032

3133
module "mongodb" {
32-
source = "squareops/mongodb/kubernetes"
33-
cluster_name = "dev-gke-cluster"
34+
source = "squareops/mongodb/kubernetes"
35+
namespace = local.namespace
36+
create_namespace = local.create_namespace
37+
cluster_name = "dev-gke-cluster"
3438
mongodb_config = {
3539
name = local.name
40+
namespace = local.namespace
3641
values_yaml = file("./helm/values.yaml")
3742
environment = local.environment
3843
volume_size = "10Gi"
3944
architecture = "replicaset"
45+
custom_databases = "['db1', 'db2']"
46+
custom_databases_usernames = "['admin', 'admin']"
47+
custom_databases_passwords = "['pass1', 'pass2']"
4048
replica_count = 2
4149
storage_class_name = "standard"
4250
store_password_to_secret_manager = local.store_password_to_secret_manager
4351
}
4452
mongodb_custom_credentials_enabled = local.mongodb_custom_credentials_enabled
4553
mongodb_custom_credentials_config = local.mongodb_custom_credentials_config
4654
root_password = local.mongodb_custom_credentials_enabled ? "" : module.gcp.root_password
47-
metric_exporter_pasword = local.mongodb_custom_credentials_enabled ? "" : module.gcp.metric_exporter_pasword
55+
metric_exporter_password = local.mongodb_custom_credentials_enabled ? "" : module.gcp.metric_exporter_pasword
4856
bucket_provider_type = "gcs"
4957
service_account_backup = module.gcp.service_account_backup
5058
service_account_restore = module.gcp.service_account_restore

helm/values/backup/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ backup:
1414
annotations:
1515
${annotations}
1616

17-
bucket_provider_type: ${bucket_provider_type}
17+
bucket_provider_type: ${bucket_provider_type}

helm/values/exporter/values.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ livenessProbe:
2424

2525
# [mongodb[+srv]://][user:pass@]host1[:port1][,host2[:port2],...][/database][?options]
2626
mongodb:
27-
uri: "mongodb://mongodb_exporter:${mongodb_exporter_password}@mongodb-0.mongodb-headless.mongodb.svc.cluster.local:27017/admin?authSource=admin"
27+
uri: "mongodb://mongodb_exporter:${mongodb_exporter_password}@mongodb-0.mongodb-headless.{namespace}.svc.cluster.local:27017/admin?authSource=admin"
2828

2929
# Name of an externally managed secret (in the same namespace) containing the connection uri as key `mongodb-uri`.
3030
# If this is provided, the value mongodb.uri is ignored.

helm/values/mongodb/values.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -153,9 +153,9 @@ auth:
153153
## @param auth.passwords List of passwords for the custom users set at `auth.usernames`
154154
## @param auth.databases List of custom databases to be created during the initialization
155155
##
156-
usernames: []
157-
passwords: []
158-
databases: []
156+
usernames: ${custom_databases_usernames}
157+
passwords: ${custom_databases_passwords}
158+
databases: ${custom_databases}
159159
## @param auth.username DEPRECATED: use `auth.usernames` instead
160160
## @param auth.password DEPRECATED: use `auth.passwords` instead
161161
## @param auth.database DEPRECATED: use `auth.databases` instead

0 commit comments

Comments
 (0)