private_ip = data.terraform_remote_state.vpc.outputs.private_ip
pubkey_path = pathexpand(var.pubkey_path)
pubkey_name = "arvados-deployer-key"
- hostnames = [ for hostname, eip_id in data.terraform_remote_state.vpc.outputs.eip_id: hostname ]
+ public_hosts = data.terraform_remote_state.vpc.outputs.public_hosts
+ private_hosts = data.terraform_remote_state.vpc.outputs.private_hosts
ssl_password_secret_name = "${local.cluster_name}-${var.ssl_password_secret_name_suffix}"
}
}
resource "aws_instance" "arvados_service" {
- for_each = toset(local.hostnames)
+ for_each = toset(concat(local.public_hosts, local.private_hosts))
ami = data.aws_ami.debian-11.image_id
instance_type = var.default_instance_type
key_name = local.pubkey_name
}
resource "aws_eip_association" "eip_assoc" {
- for_each = toset(local.hostnames)
+ for_each = toset(local.public_hosts)
instance_id = aws_instance.arvados_service[each.value].id
allocation_id = data.terraform_remote_state.vpc.outputs.eip_id[each.value]
}
ssh: "22",
}
availability_zone = data.aws_availability_zones.available.names[0]
- hostnames = [ "controller", "workbench", "keep0", "keep1", "keepproxy", "shell" ]
+ public_hosts = [ "controller", "workbench" ]
+ private_hosts = [ "keep0", "shell" ]
arvados_dns_zone = "${var.cluster_name}.${var.domain_name}"
public_ip = { for k, v in aws_eip.arvados_eip: k => v.public_ip }
private_ip = {
"controller": "10.1.1.11",
"workbench": "10.1.1.15",
- "keepproxy": "10.1.1.12",
"shell": "10.1.1.17",
"keep0": "10.1.1.13",
- "keep1": "10.1.1.14"
}
aliases = {
controller: ["ws"]
- workbench: ["workbench2", "webshell"]
- keepproxy: ["keep", "download", "*.collections"]
+ workbench: ["workbench2", "webshell", "keep", "download", "*.collections"]
}
cname_by_host = flatten([
for host, aliases in local.aliases : [
vpc_id = aws_vpc.arvados_vpc.id
}
resource "aws_eip" "arvados_eip" {
- for_each = toset(local.hostnames)
+ for_each = toset(local.public_hosts)
depends_on = [
aws_internet_gateway.arvados_gw
]
value = local.public_ip
}
+output "public_hosts" {
+ value = local.public_hosts
+}
+
output "private_ip" {
value = local.private_ip
}
+output "private_hosts" {
+ value = local.private_hosts
+}
+
output "route53_dns_ns" {
value = aws_route53_zone.public_zone.name_servers
}