Skip to content

Commit 3aa0531

Browse files
Merge pull request #1 from RohitSquareops/main
updated release with modified variables and output
2 parents 060df8b + 9f11ebe commit 3aa0531

File tree

16 files changed

+271
-153
lines changed

16 files changed

+271
-153
lines changed

IAM.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ The Policy required to deploy this module:
1919
"Sid": "VisualEditor1",
2020
"Effect": "Allow",
2121
"Action": [
22-
"iam:CreateRole",
23-
"iam:DeleteRole",
2422
"iam:GetRole",
23+
"iam:CreateRole",
24+
"iam:DeleteRole",
2525
"iam:GetRolePolicy",
26-
"iam:ListAttachedRolePolicies",
27-
"iam:ListInstanceProfilesForRole",
26+
"iam:PutRolePolicy",
2827
"iam:ListRolePolicies",
29-
"iam:PutRolePolicy"
28+
"iam:ListAttachedRolePolicies",
29+
"iam:ListInstanceProfilesForRole"
3030
],
3131
"Resource": [
3232
"*"
@@ -38,10 +38,10 @@ The Policy required to deploy this module:
3838
"Action": [
3939
"secretsmanager:CreateSecret",
4040
"secretsmanager:DeleteSecret",
41-
"secretsmanager:DescribeSecret",
42-
"secretsmanager:GetResourcePolicy",
41+
"secretsmanager:DescribeSecret",
4342
"secretsmanager:GetSecretValue",
44-
"secretsmanager:PutSecretValue"
43+
"secretsmanager:PutSecretValue",
44+
"secretsmanager:GetResourcePolicy"
4545
],
4646
"Resource": [
4747
"*"

README.md

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,25 @@
1111
```hcl
1212
module "mysql" {
1313
source = "../.."
14-
mysqldb_backup_enabled = false
15-
mysqldb_exporter_enabled = false
16-
cluster_name = "cluster-name"
14+
cluster_name = "dev-skaf"
1715
mysqldb_config = {
18-
name = "skaf"
19-
environment = "prod"
20-
architecture = "replication"
21-
custom_user_username = "admin"
22-
primary_pod_volume_size = "10Gi"
23-
secondary_pod_replica_count = 1
24-
secondary_pod_volume_size = "10Gi"
25-
storage_class_name = "infra-service-sc"
26-
values_yaml = file("./helm/values.yaml")
16+
name = "skaf"
17+
values_yaml = ""
18+
environment = "prod"
19+
architecture = "replication"
20+
storage_class_name = "infra-service-sc"
21+
custom_user_username = "admin"
22+
primary_db_volume_size = "10Gi"
23+
secondary_db_volume_size = "10Gi"
24+
secondary_db_replica_count = 2
2725
}
26+
mysqldb_backup_enabled = true
2827
mysqldb_backup_config = {
29-
s3_bucket_uri = "s3://bucketname"
30-
s3_bucket_region = "bucket-region"
31-
cron_for_full_backup = "* * * * *"
28+
s3_bucket_uri = "s3://bucket-name"
29+
s3_bucket_region = "bucket-region"
30+
cron_for_full_backup = "*/2 * * * *"
3231
}
32+
mysqldb_exporter_enabled = true
3333
}
3434
3535
@@ -71,10 +71,12 @@ No modules.
7171
| Name | Type |
7272
|------|------|
7373
| [aws_iam_role.mysql_backup_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |
74+
| [aws_iam_role.mysql_restore_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |
7475
| [aws_secretsmanager_secret.mysql_user_password](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/secretsmanager_secret) | resource |
7576
| [aws_secretsmanager_secret_version.mysql_user_password](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/secretsmanager_secret_version) | resource |
7677
| [helm_release.mysqldb](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource |
7778
| [helm_release.mysqldb_backup](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource |
79+
| [helm_release.mysqldb_restore](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource |
7880
| [kubernetes_namespace.mysqldb](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/namespace) | resource |
7981
| [random_password.mysqldb_custom_user_password](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |
8082
| [random_password.mysqldb_exporter_user_password](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |
@@ -90,22 +92,21 @@ No modules.
9092
| <a name="input_app_version"></a> [app\_version](#input\_app\_version) | App version | `string` | `"8.0.29-debian-11-r9"` | no |
9193
| <a name="input_chart_version"></a> [chart\_version](#input\_chart\_version) | Chart version | `string` | `"9.2.0"` | no |
9294
| <a name="input_cluster_name"></a> [cluster\_name](#input\_cluster\_name) | Name of the EKS cluster | `string` | `""` | no |
93-
| <a name="input_mysqldb_backup_config"></a> [mysqldb\_backup\_config](#input\_mysqldb\_backup\_config) | Mysql Backup configurations | `any` | <pre>{<br> "cron_for_full_backup": "*/5 * * * *",<br> "s3_bucket_region": "us-east-2",<br> "s3_bucket_uri": "s3://mysqlbackupp"<br>}</pre> | no |
95+
| <a name="input_create_namespace"></a> [create\_namespace](#input\_create\_namespace) | Set it to true to create given namespace | `string` | `true` | no |
96+
| <a name="input_mysqldb_backup_config"></a> [mysqldb\_backup\_config](#input\_mysqldb\_backup\_config) | Mysql Backup configurations | `any` | <pre>{<br> "cron_for_full_backup": "",<br> "s3_bucket_region": "",<br> "s3_bucket_uri": ""<br>}</pre> | no |
9497
| <a name="input_mysqldb_backup_enabled"></a> [mysqldb\_backup\_enabled](#input\_mysqldb\_backup\_enabled) | Set true to enable mysql backups | `bool` | `false` | no |
95-
| <a name="input_mysqldb_config"></a> [mysqldb\_config](#input\_mysqldb\_config) | Mysql configurations | `any` | <pre>{<br> "architecture": "",<br> "custom_user_username": "",<br> "environment": "",<br> "name": "",<br> "primary_pod_volume_size": "",<br> "secondary_pod_replica_count": 1,<br> "secondary_pod_volume_size": "",<br> "storage_class_name": "",<br> "values_yaml": ""<br>}</pre> | no |
98+
| <a name="input_mysqldb_config"></a> [mysqldb\_config](#input\_mysqldb\_config) | Mysql configurations | `any` | <pre>{<br> "architecture": "",<br> "custom_user_username": "",<br> "environment": "",<br> "name": "",<br> "primary_db_volume_size": "",<br> "secondary_db_replica_count": 1,<br> "secondary_db_volume_size": "",<br> "storage_class_name": "",<br> "values_yaml": ""<br>}</pre> | no |
9699
| <a name="input_mysqldb_exporter_enabled"></a> [mysqldb\_exporter\_enabled](#input\_mysqldb\_exporter\_enabled) | Set true to deploy mysqldb exporters to get metrics in grafana | `bool` | `false` | no |
100+
| <a name="input_mysqldb_restore_config"></a> [mysqldb\_restore\_config](#input\_mysqldb\_restore\_config) | Mysql Restore configurations | `any` | <pre>{<br> "s3_bucket_region": "",<br> "s3_bucket_uri": ""<br>}</pre> | no |
101+
| <a name="input_mysqldb_restore_enabled"></a> [mysqldb\_restore\_enabled](#input\_mysqldb\_restore\_enabled) | Set true to enable mysql restore | `bool` | `false` | no |
97102
| <a name="input_namespace"></a> [namespace](#input\_namespace) | Namespace name | `string` | `"mysqldb"` | no |
98103
| <a name="input_recovery_window_aws_secret"></a> [recovery\_window\_aws\_secret](#input\_recovery\_window\_aws\_secret) | Number of days that AWS Secrets Manager waits before it can delete the secret. This value can be 0 to force deletion without recovery or range from 7 to 30 days. | `number` | `0` | no |
99104

100105
## Outputs
101106

102107
| Name | Description |
103108
|------|-------------|
104-
| <a name="output_mysql_port"></a> [mysql\_port](#output\_mysql\_port) | n/a |
105-
| <a name="output_mysql_primary_endpoint"></a> [mysql\_primary\_endpoint](#output\_mysql\_primary\_endpoint) | n/a |
106-
| <a name="output_mysql_primary_headless_endpoint"></a> [mysql\_primary\_headless\_endpoint](#output\_mysql\_primary\_headless\_endpoint) | n/a |
107-
| <a name="output_mysql_secondary_endpoint"></a> [mysql\_secondary\_endpoint](#output\_mysql\_secondary\_endpoint) | n/a |
108-
| <a name="output_mysql_secondary_headless_endpoint"></a> [mysql\_secondary\_headless\_endpoint](#output\_mysql\_secondary\_headless\_endpoint) | n/a |
109+
| <a name="output_mysqldb"></a> [mysqldb](#output\_mysqldb) | MysqlDB\_Info |
109110
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
110111

111112
## Contribution & Issue Reporting

examples/complete/README.md

Lines changed: 7 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -16,53 +16,27 @@ No requirements.
1616
| Name | Version |
1717
|------|---------|
1818
| <a name="provider_aws"></a> [aws](#provider\_aws) | n/a |
19-
| <a name="provider_helm"></a> [helm](#provider\_helm) | n/a |
20-
| <a name="provider_kubernetes"></a> [kubernetes](#provider\_kubernetes) | n/a |
21-
| <a name="provider_random"></a> [random](#provider\_random) | n/a |
2219

2320
## Modules
2421

25-
No modules.
22+
| Name | Source | Version |
23+
|------|--------|---------|
24+
| <a name="module_mysql"></a> [mysql](#module\_mysql) | ../../ | n/a |
2625

2726
## Resources
2827

2928
| Name | Type |
3029
|------|------|
31-
| [aws_iam_role.mysql_backup_role](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |
32-
| [aws_secretsmanager_secret.mysql_user_password](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/secretsmanager_secret) | resource |
33-
| [aws_secretsmanager_secret_version.mysql_user_password](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/secretsmanager_secret_version) | resource |
34-
| [helm_release.mysqldb](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource |
35-
| [helm_release.mysqldb_backup](https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release) | resource |
36-
| [kubernetes_namespace.mysqldb](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/namespace) | resource |
37-
| [random_password.mysqldb_custom_user_password](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |
38-
| [random_password.mysqldb_exporter_user_password](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |
39-
| [random_password.mysqldb_replication_user_password](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |
40-
| [random_password.mysqldb_root_password](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/password) | resource |
41-
| [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source |
42-
| [aws_eks_cluster.kubernetes_cluster](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/eks_cluster) | data source |
30+
| [aws_eks_cluster.cluster](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/eks_cluster) | data source |
31+
| [aws_eks_cluster_auth.cluster](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/eks_cluster_auth) | data source |
4332

4433
## Inputs
4534

46-
| Name | Description | Type | Default | Required |
47-
|------|-------------|------|---------|:--------:|
48-
| <a name="input_app_version"></a> [app\_version](#input\_app\_version) | App version | `string` | `"8.0.29-debian-11-r9"` | no |
49-
| <a name="input_chart_version"></a> [chart\_version](#input\_chart\_version) | Chart version | `string` | `"9.2.0"` | no |
50-
| <a name="input_cluster_name"></a> [cluster\_name](#input\_cluster\_name) | Name of the EKS cluster | `string` | `""` | no |
51-
| <a name="input_mysqldb_backup_config"></a> [mysqldb\_backup\_config](#input\_mysqldb\_backup\_config) | Mysql Backup configurations | `any` | <pre>{<br> "aws_access_key_id": "AKIAT6J7AJ7XMR7TDC7R",<br> "aws_secret_access_key": "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",<br> "cron_for_full_backup": "*/5 * * * *",<br> "s3_bucket_region": "us-east-2",<br> "s3_bucket_uri": "s3://mysqlbackupp"<br>}</pre> | no |
52-
| <a name="input_mysqldb_backup_enabled"></a> [mysqldb\_backup\_enabled](#input\_mysqldb\_backup\_enabled) | Set true to enable mysql backups | `bool` | `false` | no |
53-
| <a name="input_mysqldb_config"></a> [mysqldb\_config](#input\_mysqldb\_config) | Mysql configurations | `any` | <pre>{<br> "architecture": "",<br> "custom_user_username": "",<br> "environment": "",<br> "name": "",<br> "primary_pod_volume_size": "",<br> "secondary_pod_replica_count": 1,<br> "secondary_pod_volume_size": "",<br> "storage_class_name": "",<br> "values_yaml": ""<br>}</pre> | no |
54-
| <a name="input_mysqldb_exporter_enabled"></a> [mysqldb\_exporter\_enabled](#input\_mysqldb\_exporter\_enabled) | Set true to deploy mysqldb exporters to get metrics in grafana | `bool` | `false` | no |
55-
| <a name="input_namespace"></a> [namespace](#input\_namespace) | Namespace name | `string` | `"mysqldb"` | no |
56-
| <a name="input_recovery_window_aws_secret"></a> [recovery\_window\_aws\_secret](#input\_recovery\_window\_aws\_secret) | Number of days that AWS Secrets Manager waits before it can delete the secret. This value can be 0 to force deletion without recovery or range from 7 to 30 days. | `number` | `0` | no |
35+
No inputs.
5736

5837
## Outputs
5938

6039
| Name | Description |
6140
|------|-------------|
62-
| <a name="output_mysql_port"></a> [mysql\_port](#output\_mysql\_port) | n/a |
63-
| <a name="output_mysql_primary_endpoint"></a> [mysql\_primary\_endpoint](#output\_mysql\_primary\_endpoint) | n/a |
64-
| <a name="output_mysql_primary_headless_endpoint"></a> [mysql\_primary\_headless\_endpoint](#output\_mysql\_primary\_headless\_endpoint) | n/a |
65-
| <a name="output_mysql_secondary_endpoint"></a> [mysql\_secondary\_endpoint](#output\_mysql\_secondary\_endpoint) | n/a |
66-
| <a name="output_mysql_secondary_headless_endpoint"></a> [mysql\_secondary\_headless\_endpoint](#output\_mysql\_secondary\_headless\_endpoint) | n/a |
41+
| <a name="output_mysql_configuration"></a> [mysql\_configuration](#output\_mysql\_configuration) | mysql\_Info |
6742
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
68-

examples/complete/helm/values.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
primary:
2-
affinity:
2+
affinity:
33
nodeAffinity:
44
requiredDuringSchedulingIgnoredDuringExecution:
55
nodeSelectorTerms:
@@ -10,7 +10,7 @@ primary:
1010
- "true"
1111

1212
secondary:
13-
affinity:
13+
affinity:
1414
nodeAffinity:
1515
requiredDuringSchedulingIgnoredDuringExecution:
1616
nodeSelectorTerms:

examples/complete/main.tf

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,34 @@
11
locals {
2-
region = "us-east-2"
3-
name = "skaf"
4-
environment = "prod"
2+
name = "test"
3+
region = "ap-south-1"
4+
environment = "squareops"
55
}
66

77
module "mysql" {
8-
source = "../.."
9-
mysqldb_backup_enabled = true
10-
mysqldb_exporter_enabled = false
11-
cluster_name = "cluster-name"
8+
source = "../../"
9+
cluster_name = "test-squareops"
1210
mysqldb_config = {
13-
name = local.name
14-
environment = local.environment
15-
architecture = "replication"
16-
custom_user_username = "admin"
17-
primary_pod_volume_size = "10Gi"
18-
secondary_pod_replica_count = 1
19-
secondary_pod_volume_size = "10Gi"
20-
storage_class_name = "infra-service-sc"
21-
values_yaml = file("./helm/values.yaml")
11+
name = local.name
12+
values_yaml = file("./helm/values.yaml")
13+
environment = local.environment
14+
architecture = "replication"
15+
storage_class_name = "infra-service-sc"
16+
custom_user_username = "admin"
17+
primary_db_volume_size = "10Gi"
18+
secondary_db_volume_size = "10Gi"
19+
secondary_db_replica_count = 2
2220
}
21+
mysqldb_backup_enabled = true
2322
mysqldb_backup_config = {
24-
s3_bucket_uri = "s3://bucketname"
25-
s3_bucket_region = "bucket_region"
23+
s3_bucket_uri = "s3://mysqlbackupp"
24+
s3_bucket_region = "us-east-2"
2625
cron_for_full_backup = "*/2 * * * *"
2726
}
27+
mysqldb_restore_enabled = true
28+
mysqldb_restore_config = {
29+
s3_bucket_uri = "s3://mysqldumprestore/10-dump.sql"
30+
s3_bucket_region = "us-east-2"
2831

29-
30-
}
32+
}
33+
mysqldb_exporter_enabled = false
34+
}

examples/complete/output.tf

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,4 @@
1-
output "mysql_port" {
2-
value = "3306"
3-
}
4-
5-
output "mysql_primary_endpoint" {
6-
value = module.mysql.mysql_primary_endpoint
7-
}
8-
9-
output "mysql_primary_headless_endpoint" {
10-
value = module.mysql.mysql_primary_headless_endpoint
11-
}
12-
13-
output "mysql_secondary_endpoint" {
14-
value = module.mysql.mysql_secondary_endpoint
15-
}
16-
17-
output "mysql_secondary_headless_endpoint" {
18-
value = module.mysql.mysql_secondary_headless_endpoint
1+
output "mysql_configuration" {
2+
value = module.mysql.mysqldb
3+
description = "mysql_Info"
194
}

examples/complete/provider.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ provider "aws" {
44

55

66
data "aws_eks_cluster" "cluster" {
7-
name = ""
7+
name = "dev-skaf"
88
}
99

1010
data "aws_eks_cluster_auth" "cluster" {
11-
name = ""
11+
name = "dev-skaf"
1212
}
1313

1414

helm/values/restore/values.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
restore:
2+
bucket_uri: ${s3_bucket_uri}
3+
aws_default_region: ${s3_bucket_region}
4+
5+
auth:
6+
username: "${custom_user_username}"
7+
8+
s3:
9+
role_arn: "${s3_role_arn}"

0 commit comments

Comments
 (0)