cluster.tf 1.3 KB

12345678910111213141516171819202122232425262728293031
  1. // Configuration data for teleport.yaml generation
  2. data "template_file" "node_user_data" {
  3. template = file("data.tpl")
  4. vars = {
  5. region = var.region
  6. cluster_name = var.cluster_name
  7. email = var.email
  8. domain_name = var.route53_domain
  9. dynamo_table_name = aws_dynamodb_table.teleport.name
  10. dynamo_events_table_name = aws_dynamodb_table.teleport_events.name
  11. locks_table_name = aws_dynamodb_table.teleport_locks.name
  12. license_path = var.license_path
  13. s3_bucket = var.s3_bucket_name
  14. use_acm = var.use_acm
  15. use_letsencrypt = var.use_letsencrypt
  16. }
  17. }
  18. // Auth, node, proxy (aka Teleport Cluster) on single AWS instance
  19. resource "aws_instance" "cluster" {
  20. key_name = var.key_name
  21. ami = data.aws_ami.base.id
  22. instance_type = var.cluster_instance_type
  23. subnet_id = tolist(data.aws_subnet_ids.all.ids)[0]
  24. vpc_security_group_ids = [aws_security_group.cluster.id]
  25. associate_public_ip_address = true
  26. user_data = data.template_file.node_user_data.rendered
  27. iam_instance_profile = aws_iam_role.cluster.id
  28. }