Skip to content

Commit 1583c32

Browse files
authored
Merge pull request #45 from commitdev/integrate-new-apply-command
Added features necessary to support the new zero apply command
2 parents 930e658 + ec9fd2b commit 1583c32

9 files changed

Lines changed: 25 additions & 15 deletions

File tree

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11

22
run:
3-
@echo Done
3+
cd $(PROJECT_DIR) && AUTO_APPROVE="-auto-approve" make
4+

templates/Makefile

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,29 @@ ENVIRONMENT ?= staging
22

33
apply: apply-remote-state apply-secrets apply-env apply-k8s-utils
44

5-
## remove state file only if exit code 0 from terraform apply
65
apply-remote-state:
6+
aws s3 ls <% .Name %>-$(ENVIRONMENT)-terraform-state || (\
77
pushd terraform/bootstrap/remote-state && \
88
terraform init && \
9-
terraform apply -var "environment=$(ENVIRONMENT)" && \
10-
rm ./terraform.tfstate
9+
terraform apply -var "environment=$(ENVIRONMENT)" $(AUTO_APPROVE) && \
10+
rm ./terraform.tfstate)
1111

1212
apply-secrets:
13+
aws iam list-access-keys --user-name <% .Name %>-ci-user > /dev/null || (\
1314
pushd terraform/bootstrap/secrets && \
1415
terraform init && \
15-
terraform apply && \
16-
rm ./terraform.tfstate
16+
terraform apply $(AUTO_APPROVE) && \
17+
rm ./terraform.tfstate)
1718

1819
apply-env:
1920
pushd terraform/environments/$(ENVIRONMENT); \
2021
terraform init && \
21-
terraform apply
22+
terraform apply $(AUTO_APPROVE)
2223

2324
apply-k8s-utils: update-k8s-conf
2425
pushd kubernetes/terraform/environments/$(ENVIRONMENT) && \
2526
terraform init && \
26-
terraform apply
27+
terraform apply $(AUTO_APPROVE)
2728

2829
update-k8s-conf:
2930
aws eks --region <% index .Params `region` %> update-kubeconfig --name <% .Name %>-$(ENVIRONMENT)-<% index .Params `region` %>

templates/terraform/bootstrap/secrets/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ resource "aws_iam_access_key" "ci_user" {
2626
module "ci_user_keys" {
2727
source = "../../modules/secret"
2828

29-
name_prefix = "ci-user-aws-keys"
29+
name = "ci-user-aws-keys<% index .Params `randomSeed` %>"
3030
type = "map"
3131
values = map("access_key_id", aws_iam_access_key.ci_user.id, "secret_key", aws_iam_access_key.ci_user.secret)
3232
tags = map("project", local.project)

templates/terraform/environments/production/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ module "production" {
2323
ecr_repositories = [] # Should be created by the staging environment
2424

2525
# EKS configuration
26-
eks_cluster_version = "1.15"
26+
eks_cluster_version = "1.16"
2727
eks_worker_instance_type = "t3.medium"
2828
eks_worker_asg_min_size = 2
2929
eks_worker_asg_max_size = 4

templates/terraform/environments/staging/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ module "staging" {
2222
ecr_repositories = [ "<% .Name %>" ]
2323

2424
# EKS configuration
25-
eks_cluster_version = "1.15"
25+
eks_cluster_version = "1.16"
2626
eks_worker_instance_type = "t3.medium"
2727
eks_worker_asg_min_size = 1
2828
eks_worker_asg_max_size = 3

templates/terraform/modules/eks/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ provider "kubernetes" {
1616

1717
module "eks" {
1818
source = "terraform-aws-modules/eks/aws"
19-
version = "10.0.0"
19+
version = "12.1.0"
2020

2121
cluster_name = var.cluster_name
2222
cluster_version = var.cluster_version

templates/terraform/modules/secret/main.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Add the keys to AWS secrets manager
22
resource "aws_secretsmanager_secret" "secret" {
33
name_prefix = var.name_prefix
4+
name = var.name
45
tags = var.tags
56
}
67

templates/terraform/modules/secret/variables.tf

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1+
variable "name" {
2+
default = ""
3+
description = "The name of the secret in Secrets Manager (only one of name or name_prefix can be specified)"
4+
}
15
variable "name_prefix" {
2-
default = "secret-key"
3-
description = "The name prefix of the secret in Secrets Manager"
6+
default = ""
7+
description = "The name prefix of the secret in Secrets Manager - a random suffix will be appended (only one of name or name_prefix can be specified)"
48
}
59

610
variable type {

zero-module.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,8 @@ parameters:
4343
execute: aws sts get-caller-identity --query "Account" | tr -d '"'
4444
- field: eksWorkerAMI
4545
label: EKS Worker EC2 AMI ID
46-
execute: aws ssm get-parameters --names /aws/service/eks/optimized-ami/1.15/amazon-linux-2/recommended/image_id --region $region --query "Parameters[0].Value" | tr -d '"'
46+
execute: aws ssm get-parameters --names /aws/service/eks/optimized-ami/1.16/amazon-linux-2/recommended/image_id --region $region --query "Parameters[0].Value" | tr -d '"'
47+
- field: randomSeed
48+
label: Random seed that will be shared between projects to come up with deterministic resource names
49+
execute: uuidgen
4750

0 commit comments

Comments
 (0)