Skip to content
This repository was archived by the owner on Jul 16, 2024. It is now read-only.

Commit a91c346

Browse files
authored
feat: can we do without a custom domain name? (#6)
1 parent e9caf81 commit a91c346

File tree

7 files changed

+39
-10
lines changed

7 files changed

+39
-10
lines changed

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ version: 2
33
jobs:
44
build:
55
docker:
6-
- image: hashicorp/terraform:0.10.6
6+
- image: hashicorp/terraform:0.11.8
77
entrypoint: /bin/sh
88
steps:
99
- checkout

.terraform-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.10.6
1+
0.11.8

alb.tf

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Create a new load balancer
22

3+
locals {
4+
enable_custom_domain = "${var.dns_zone == "" ? false : true}"
5+
custom_endpoint = "${coalesce(var.hostname, "vault")}.${var.dns_zone}"
6+
vault_url_protocol = "${local.enable_custom_domain ? "https" : "http"}"
7+
vault_url_hostname = "${local.enable_custom_domain ? local.custom_endpoint : aws_alb.vault.dns_name}"
8+
vault_url = "${local.vault_url_protocol}://${local.vault_url_hostname}"
9+
}
10+
311
resource "aws_alb" "vault" {
412
name_prefix = "vault-"
513
security_groups = ["${aws_security_group.lb-vault-sg.id}"]
@@ -19,6 +27,7 @@ resource "aws_alb" "vault" {
1927

2028
# DNS Alias for the LB
2129
resource "aws_route53_record" "vault" {
30+
count = "${local.enable_custom_domain ? 1 : 0}"
2231
zone_id = "${data.aws_route53_zone.zone.zone_id}"
2332
name = "${coalesce(var.hostname, "vault")}.${data.aws_route53_zone.zone.name}"
2433
type = "A"
@@ -55,11 +64,24 @@ resource "aws_alb_target_group" "vault_ui" {
5564

5665
# Create a new alb listener
5766
resource "aws_alb_listener" "vault_https" {
67+
count = "${local.enable_custom_domain ? 1 : 0}"
5868
load_balancer_arn = "${aws_alb.vault.arn}"
5969
port = "443"
6070
protocol = "HTTPS"
6171
ssl_policy = "ELBSecurityPolicy-2015-05"
62-
certificate_arn = "${data.aws_acm_certificate.cert.arn}" # edit needed
72+
certificate_arn = "${data.aws_acm_certificate.cert.arn}" # edit needed
73+
74+
default_action {
75+
target_group_arn = "${aws_alb_target_group.vault_ui.arn}"
76+
type = "forward"
77+
}
78+
}
79+
80+
resource "aws_alb_listener" "vault_http" {
81+
count = "${local.enable_custom_domain ? 0 : 1}"
82+
load_balancer_arn = "${aws_alb.vault.arn}"
83+
port = "80"
84+
protocol = "HTTP"
6385

6486
default_action {
6587
target_group_arn = "${aws_alb_target_group.vault_ui.arn}"

files/vault.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
}
5555
],
5656
"command": [
57-
"sh", "-c", "sleep 10; vault unseal ${unseal_key0} "
57+
"sh", "-c", "sleep 10; vault operator unseal ${unseal_key0} "
5858
],
5959
"cpu": 0,
6060
"volumesFrom": [
@@ -88,7 +88,7 @@
8888
}
8989
],
9090
"command": [
91-
"sh", "-c", "sleep 10; vault unseal ${unseal_key1} "
91+
"sh", "-c", "sleep 10; vault operator unseal ${unseal_key1} "
9292
],
9393
"cpu": 0,
9494
"volumesFrom": [
@@ -122,7 +122,7 @@
122122
}
123123
],
124124
"command": [
125-
"sh", "-c", "sleep 10; vault unseal ${unseal_key2} "
125+
"sh", "-c", "sleep 10; vault operator unseal ${unseal_key2} "
126126
],
127127
"cpu": 0,
128128
"volumesFrom": [

main.tf

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ data "aws_vpc" "vpc" {
66
}
77

88
data "aws_route53_zone" "zone" {
9-
name = "${var.dns_zone}"
9+
count = "${local.enable_custom_domain ? 1 : 0}"
10+
name = "${var.dns_zone}"
1011
}
1112

1213
data "aws_acm_certificate" "cert" {
13-
domain = "${replace(var.dns_zone, "/.$/","")}" # dirty hack to strip off trailing dot
14+
count = "${local.enable_custom_domain ? 1 : 0}"
15+
domain = "${replace(var.dns_zone, "/.$/","")}" # dirty hack to strip off trailing dot
1416
}
1517

1618
data "aws_region" "current" {}

outputs.tf

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
output "public_endpoint" {
2-
value = "${aws_route53_record.vault.fqdn}"
2+
value = "${aws_alb.vault.dns_name}"
3+
}
4+
5+
output "custom_public_endpoint" {
6+
value = "${local.custom_endpoint}"
37
}
48

59
output "public_url" {
6-
value = "https://${aws_route53_record.vault.fqdn}"
10+
value = "${local.vault_url}"
711
}

variables.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ variable "desired_count" {
1919

2020
variable "dns_zone" {
2121
description = "Zone where the Consul UI alb will be created. This should *not* be consul.example.com"
22+
default = ""
2223
}
2324

2425
variable "ecs_cluster_ids" {

0 commit comments

Comments
 (0)