Skip to content

Commit f6235f2

Browse files
committed
fetch config before locally applying k8s manifest
1 parent a054f7b commit f6235f2

File tree

4 files changed

+22
-3
lines changed

4 files changed

+22
-3
lines changed

Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@ apply-env:
1717
terraform init; \
1818
terraform apply
1919

20-
apply-k8s-utils:
20+
apply-k8s-utils: update-k8s-conf
2121
pushd kubernetes/terraform/environments/$(ENV); \
2222
terraform init; \
2323
terraform apply
2424

25+
update-k8s-conf: eks --region <% index .Params `region` %> update-kubeconfig --name <% .Name %>-$(ENV)-<% index .Params `region` %>
26+
2527
teardown: teardown-k8s-utils teardown-env teardown-secrets teardown-remote-state
2628

2729
teardown-remote-state:

kubernetes/terraform/modules/kubernetes/cert_manager.tf

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
locals {
2-
cert_manager_namespace = "kube-system"
2+
cert_manager_namespace = "cert-manager"
33
cert_manager_version = "0.14.2"
44
cluster_issuer_name = var.cert_manager_use_production_acme_environment ? "clusterissuer-letsencrypt-production" : "clusterissuer-letsencrypt-staging"
55
cert_manager_acme_server = var.cert_manager_use_production_acme_environment ? "https://acme-v02.api.letsencrypt.org/directory" : "https://acme-staging-v02.api.letsencrypt.org/directory"
66
}
77

8+
resource "kubernetes_namespace" "cert_manager" {
9+
metadata {
10+
name = "cert-manager"
11+
}
12+
}
13+
814
# Reference an existing route53 zone
915
data "aws_route53_zone" "public" {
1016
name = var.external_dns_zone
@@ -21,9 +27,11 @@ resource "null_resource" "cert_manager" {
2127
triggers = {
2228
manifest_sha1 = "${sha1("${data.local_file.cert_manager.content}")}"
2329
}
30+
# local exec call requires kubeconfig to be updated
2431
provisioner "local-exec" {
2532
command = "kubectl apply --validate=false -f ${path.module}/files/cert-manager.crds.yaml"
2633
}
34+
depends_on = [kubernetes_namespace.cert_manager]
2735
}
2836

2937

@@ -46,6 +54,7 @@ resource "null_resource" "cert_manager_issuer" {
4654
triggers = {
4755
manifest_sha1 = "${sha1("${data.template_file.cert_manager_issuer.rendered}")}"
4856
}
57+
# local exec call requires kubeconfig to be updated
4958
provisioner "local-exec" {
5059
command = "kubectl apply -f - <<EOF\n${data.template_file.cert_manager_issuer.rendered}\nEOF"
5160
}

kubernetes/terraform/modules/kubernetes/kubernetes_dashboard.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ resource "kubernetes_deployment" "kubernetes_dashboard" {
233233
}
234234
revision_history_limit = 10
235235
}
236+
depends_on = [kubernetes_role_binding.kubernetes_dashboard]
236237
}
237238

238239
resource "kubernetes_service" "dashboard_metrics_scraper" {

terraform/modules/database/main.tf

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,16 @@ module "db_password" {
3636
name_prefix = "${var.project}-${var.environment}-rds"
3737
}
3838

39+
# secret declared so secret version waits for rds-secret to be ready
40+
# or else we often see a AWSDEFAULT VERSION secret not found error
41+
data "aws_secretsmanager_secret" "rds_master_secret" {
42+
name = module.db_password.secret_name
43+
}
44+
3945
# RDS does not support secret-manager, have to provide the actual string
4046
data "aws_secretsmanager_secret_version" "rds_master_secret" {
41-
secret_id = module.db_password.secret_name
47+
secret_id = data.aws_secretsmanager_secret.rds_master_secret.name
48+
depends_on = [data.aws_secretsmanager_secret.rds_master_secret]
4249
}
4350

4451
module "rds" {

0 commit comments

Comments
 (0)