Skip to content

Commit a1a349e

Browse files
committed
update with more metadata on example
Signed-off-by: Carlos Santana <csantana23@gmail.com>
1 parent 07377de commit a1a349e

File tree

9 files changed

+170
-183
lines changed

9 files changed

+170
-183
lines changed

argocd/iac/terraform/examples/eks/aws-secrets-manager/main.tf

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
provider "aws" {
22
region = local.region
33
}
4+
data "aws_caller_identity" "current" {}
45
data "aws_availability_zones" "available" {}
56

67
provider "bcrypt" {}
@@ -44,9 +45,10 @@ provider "kubernetes" {
4445
}
4546

4647
locals {
47-
name = "ex-${replace(basename(path.cwd), "_", "-")}"
48-
environment = "dev"
49-
region = "us-west-2"
48+
name = "ex-${replace(basename(path.cwd), "_", "-")}"
49+
environment = "dev"
50+
region = "us-west-2"
51+
cluster_version = "1.27"
5052

5153
aws_addons = {
5254
enable_cert_manager = true
@@ -82,12 +84,16 @@ locals {
8284
#enable_vpa = true
8385
#enable_foo = true # you can add any addon here, make sure to update the gitops repo with the corresponding application set
8486
}
85-
addons = merge(local.aws_addons, local.oss_addons)
86-
87-
addons_metadata = merge({
88-
aws_vpc_id = module.vpc.vpc_id # Only required when enabling the aws_gateway_api_controller addon
89-
},
90-
module.eks_blueprints_addons.gitops_metadata
87+
addons = merge(local.aws_addons, local.oss_addons, { kubernetes_version = local.cluster_version })
88+
89+
addons_metadata = merge(
90+
module.eks_blueprints_addons.gitops_metadata,
91+
{
92+
aws_cluster_name = module.eks.cluster_name
93+
aws_region = local.region
94+
aws_account_id = data.aws_caller_identity.current.account_id
95+
aws_vpc_id = module.vpc.vpc_id
96+
}
9197
)
9298

9399
argocd_bootstrap_app_of_apps = {
@@ -205,7 +211,7 @@ module "eks" {
205211
version = "~> 19.13"
206212

207213
cluster_name = local.name
208-
cluster_version = "1.27"
214+
cluster_version = local.cluster_version
209215
cluster_endpoint_public_access = true
210216

211217

argocd/iac/terraform/examples/eks/complete/main.tf

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
provider "aws" {
22
region = local.region
33
}
4+
data "aws_caller_identity" "current" {}
45
data "aws_availability_zones" "available" {}
56

6-
77
provider "helm" {
88
kubernetes {
99
host = module.eks.cluster_endpoint
@@ -43,9 +43,10 @@ provider "kubernetes" {
4343
}
4444

4545
locals {
46-
name = "ex-${replace(basename(path.cwd), "_", "-")}"
47-
environment = "dev"
48-
region = "us-west-2"
46+
name = "ex-${replace(basename(path.cwd), "_", "-")}"
47+
environment = "dev"
48+
region = "us-west-2"
49+
cluster_version = "1.27"
4950

5051
aws_addons = {
5152
enable_cert_manager = true
@@ -81,12 +82,19 @@ locals {
8182
enable_vpa = true
8283
enable_foo = true # you can add any addon here, make sure to update the gitops repo with the corresponding application set
8384
}
84-
addons = merge(local.aws_addons, local.oss_addons)
85-
86-
addons_metadata = merge({
87-
aws_vpc_id = module.vpc.vpc_id # Only required when enabling the aws_gateway_api_controller addon
85+
addons = merge(local.aws_addons, local.oss_addons, { kubernetes_version = local.cluster_version })
86+
87+
addons_metadata = merge(
88+
module.eks_blueprints_addons.gitops_metadata,
89+
{
90+
aws_cluster_name = module.eks.cluster_name
91+
aws_region = local.region
92+
aws_account_id = data.aws_caller_identity.current.account_id
93+
aws_vpc_id = module.vpc.vpc_id
8894
},
89-
module.eks_blueprints_addons.gitops_metadata
95+
try(local.aws_addons.enable_velero, false) ? {
96+
velero_backup_s3_bucket_prefix = try(local.velero_backup_s3_bucket_prefix,"")
97+
velero_backup_s3_bucket_name = try(local.velero_backup_s3_bucket_name,"") } : {} # Required when enabling addon velero
9098
)
9199

92100
argocd_bootstrap_app_of_apps = {
@@ -101,6 +109,10 @@ locals {
101109
Blueprint = local.name
102110
GithubRepo = "github.com/csantanapr/terraform-gitops-bridge"
103111
}
112+
113+
velero_backup_s3_bucket = try(split(":", module.velero_backup_s3_bucket.s3_bucket_arn), [])
114+
velero_backup_s3_bucket_name = try(local.velero_backup_s3_bucket[5], "")
115+
velero_backup_s3_bucket_prefix = "backups"
104116
}
105117

106118
################################################################################
@@ -168,7 +180,7 @@ module "eks_blueprints_addons" {
168180
aws_node_termination_handler_asg_arns = [for asg in module.eks.self_managed_node_groups : asg.autoscaling_group_arn]
169181
## An S3 Bucket ARN is required. This can be declared with or without a Suffix.
170182
velero = {
171-
s3_backup_location = "${module.velero_backup_s3_bucket.s3_bucket_arn}/backups"
183+
s3_backup_location = "${try(module.velero_backup_s3_bucket.s3_bucket_arn,"")}/${local.velero_backup_s3_bucket_prefix}"
172184
}
173185

174186
eks_addons = {
@@ -214,9 +226,10 @@ module "eks" {
214226
version = "~> 19.13"
215227

216228
cluster_name = local.name
217-
cluster_version = "1.26"
229+
cluster_version = local.cluster_version
218230
cluster_endpoint_public_access = true
219231

232+
220233
vpc_id = module.vpc.vpc_id
221234
subnet_ids = module.vpc.private_subnets
222235

@@ -241,7 +254,6 @@ module "eks" {
241254
desired_size = 3
242255
}
243256
}
244-
245257
# EKS Addons
246258
cluster_addons = {
247259
vpc-cni = {
@@ -259,11 +271,9 @@ module "eks" {
259271
})
260272
}
261273
}
262-
263274
tags = local.tags
264275
}
265276

266-
267277
################################################################################
268278
# Supporting Resources
269279
################################################################################
@@ -297,6 +307,8 @@ module "velero_backup_s3_bucket" {
297307
source = "terraform-aws-modules/s3-bucket/aws"
298308
version = "~> 3.0"
299309

310+
create_bucket = try(local.aws_addons.enable_velero, false)
311+
300312
bucket_prefix = "${local.name}-"
301313

302314
# Allow deletion of non-empty bucket

argocd/iac/terraform/examples/eks/hello-world/main.tf

Lines changed: 15 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ provider "kubernetes" {
4343
}
4444

4545
locals {
46-
name = "ex-${replace(basename(path.cwd), "_", "-")}"
47-
environment = "dev"
48-
region = "us-west-2"
46+
name = "ex-${replace(basename(path.cwd), "_", "-")}"
47+
environment = "dev"
48+
region = "us-west-2"
4949
cluster_version = "1.27"
5050

5151
aws_addons = {
@@ -54,16 +54,16 @@ locals {
5454
#enable_aws_fsx_csi_driver = true
5555
#enable_aws_cloudwatch_metrics = true
5656
#enable_aws_privateca_issuer = true
57-
enable_cluster_autoscaler = true
57+
#enable_cluster_autoscaler = true
5858
#enable_external_dns = true
5959
#enable_external_secrets = true
6060
#enable_aws_load_balancer_controller = true
6161
#enable_fargate_fluentbit = true
6262
#enable_aws_for_fluentbit = true
6363
#enable_aws_node_termination_handler = true
64-
enable_karpenter = true
65-
enable_velero = true
66-
enable_aws_gateway_api_controller = true
64+
#enable_karpenter = true
65+
#enable_velero = true
66+
#enable_aws_gateway_api_controller = true
6767
#enable_aws_ebs_csi_resources = true # generate gp2 and gp3 storage classes for ebs-csi
6868
#enable_aws_secrets_store_csi_driver_provider = true
6969
}
@@ -76,25 +76,22 @@ locals {
7676
#enable_ingress_nginx = true
7777
#enable_kyverno = true
7878
#enable_kube_prometheus_stack = true
79-
enable_metrics_server = true
79+
enable_metrics_server = true
8080
#enable_prometheus_adapter = true
8181
#enable_secrets_store_csi_driver = true
8282
#enable_vpa = true
8383
#enable_foo = true # you can add any addon here, make sure to update the gitops repo with the corresponding application set
8484
}
85-
addons = merge(local.aws_addons, local.oss_addons, {kubernetes_version = local.cluster_version})
85+
addons = merge(local.aws_addons, local.oss_addons, { kubernetes_version = local.cluster_version })
8686

8787
addons_metadata = merge(
8888
module.eks_blueprints_addons.gitops_metadata,
8989
{
90-
aws_cluster_name = module.eks.cluster_name
91-
aws_region = local.region
92-
aws_account_id = data.aws_caller_identity.current.account_id
93-
aws_vpc_id = module.vpc.vpc_id # Required when enabling addon aws_gateway_api_controller
94-
},
95-
try(local.aws_addons.enable_velero, false) ? {
96-
velero_backup_s3_bucket_prefix = try(local.velero_backup_s3_bucket_prefix,"")
97-
velero_backup_s3_bucket_name = try(local.velero_backup_s3_bucket_name,"") } : {} # Required when enabling addon velero
90+
aws_cluster_name = module.eks.cluster_name
91+
aws_region = local.region
92+
aws_account_id = data.aws_caller_identity.current.account_id
93+
aws_vpc_id = module.vpc.vpc_id
94+
}
9895
)
9996

10097
argocd_bootstrap_app_of_apps = {
@@ -109,10 +106,6 @@ locals {
109106
Blueprint = local.name
110107
GithubRepo = "github.com/csantanapr/terraform-gitops-bridge"
111108
}
112-
113-
velero_backup_s3_bucket = try(split(":", module.velero_backup_s3_bucket.s3_bucket_arn), [])
114-
velero_backup_s3_bucket_name = try(local.velero_backup_s3_bucket[5], "")
115-
velero_backup_s3_bucket_prefix = "backups"
116109
}
117110

118111
################################################################################
@@ -166,12 +159,8 @@ module "eks_blueprints_addons" {
166159
enable_aws_for_fluentbit = try(local.aws_addons.enable_aws_for_fluentbit, false)
167160
enable_aws_node_termination_handler = try(local.aws_addons.enable_aws_node_termination_handler, false)
168161
enable_karpenter = try(local.aws_addons.enable_karpenter, false)
169-
enable_aws_gateway_api_controller = try(local.aws_addons.enable_aws_gateway_api_controller, false)
170162
enable_velero = try(local.aws_addons.enable_velero, false)
171-
## An S3 Bucket ARN is required. This can be declared with or without a Suffix.
172-
velero = {
173-
s3_backup_location = "${try(module.velero_backup_s3_bucket.s3_bucket_arn,"")}/${local.velero_backup_s3_bucket_prefix}"
174-
}
163+
enable_aws_gateway_api_controller = try(local.aws_addons.enable_aws_gateway_api_controller, false)
175164

176165
tags = local.tags
177166
}
@@ -248,48 +237,3 @@ module "vpc" {
248237

249238
tags = local.tags
250239
}
251-
252-
################################################################################
253-
# Velero
254-
################################################################################
255-
module "velero_backup_s3_bucket" {
256-
source = "terraform-aws-modules/s3-bucket/aws"
257-
version = "~> 3.0"
258-
259-
create_bucket = try(local.aws_addons.enable_velero, false)
260-
261-
bucket_prefix = "${local.name}-"
262-
263-
# Allow deletion of non-empty bucket
264-
# NOTE: This is enabled for example usage only, you should not enable this for production workloads
265-
force_destroy = true
266-
267-
attach_deny_insecure_transport_policy = true
268-
attach_require_latest_tls_policy = true
269-
270-
acl = "private"
271-
272-
block_public_acls = true
273-
block_public_policy = true
274-
ignore_public_acls = true
275-
restrict_public_buckets = true
276-
277-
control_object_ownership = true
278-
object_ownership = "BucketOwnerPreferred"
279-
280-
versioning = {
281-
status = true
282-
mfa_delete = false
283-
}
284-
285-
server_side_encryption_configuration = {
286-
rule = {
287-
apply_server_side_encryption_by_default = {
288-
sse_algorithm = "AES256"
289-
}
290-
}
291-
}
292-
293-
tags = local.tags
294-
}
295-

argocd/iac/terraform/examples/eks/ingress-alb/main.tf

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
provider "aws" {
22
region = local.region
33
}
4+
data "aws_caller_identity" "current" {}
45
data "aws_availability_zones" "available" {}
56

6-
77
provider "helm" {
88
kubernetes {
99
host = module.eks.cluster_endpoint
@@ -42,17 +42,11 @@ provider "kubernetes" {
4242
}
4343
}
4444

45-
# To get the hosted zone to be use in argocd domain
46-
data "aws_route53_zone" "domain_name" {
47-
count = local.enable_ingress ? 1 : 0
48-
name = local.domain_name
49-
private_zone = local.domain_private_zone
50-
}
51-
5245
locals {
53-
name = "ex-${replace(basename(path.cwd), "_", "-")}"
54-
environment = "dev"
55-
region = "us-west-2"
46+
name = "ex-${replace(basename(path.cwd), "_", "-")}"
47+
environment = "dev"
48+
region = "us-west-2"
49+
cluster_version = "1.27"
5650

5751
enable_ingress = true
5852
domain_private_zone = false
@@ -100,12 +94,16 @@ locals {
10094
#enable_vpa = true
10195
#enable_foo = true # you can add any addon here, make sure to update the gitops repo with the corresponding application set
10296
}
103-
addons = merge(local.aws_addons, local.oss_addons)
97+
addons = merge(local.aws_addons, local.oss_addons, { kubernetes_version = local.cluster_version })
10498

105-
addons_metadata = merge({
106-
aws_vpc_id = module.vpc.vpc_id # Only required when enabling the aws_gateway_api_controller addon
107-
},
99+
addons_metadata = merge(
108100
module.eks_blueprints_addons.gitops_metadata,
101+
{
102+
aws_cluster_name = module.eks.cluster_name
103+
aws_region = local.region
104+
aws_account_id = data.aws_caller_identity.current.account_id
105+
aws_vpc_id = module.vpc.vpc_id
106+
},
109107
{
110108
argocd_hosts = "[${local.argocd_host}]"
111109
external_dns_domain_filters = "[${local.domain_name}]"
@@ -196,7 +194,7 @@ module "eks" {
196194
version = "~> 19.13"
197195

198196
cluster_name = local.name
199-
cluster_version = "1.27"
197+
cluster_version = local.cluster_version
200198
cluster_endpoint_public_access = true
201199

202200

@@ -260,6 +258,17 @@ module "vpc" {
260258
tags = local.tags
261259
}
262260

261+
################################################################################
262+
# Route 53
263+
################################################################################
264+
# To get the hosted zone to be use in argocd domain
265+
data "aws_route53_zone" "domain_name" {
266+
count = local.enable_ingress ? 1 : 0
267+
name = local.domain_name
268+
private_zone = local.domain_private_zone
269+
}
270+
271+
263272
################################################################################
264273
# ACM Certificate
265274
################################################################################

0 commit comments

Comments
 (0)