data "aws_kms_alias" "default_ebs" {
  name = "alias/default_ebs"
}

module "octopus_server_instance" {
  source               = "../../../modules/ec2/ec2"
  name_prefix          = "${local.name_prefix}-octopus-server"
  instances_count      = 1
  ami                  = "ami-0b430cbe14646a999"
  instance_type        = "t3.medium"
  use_public_ip        = false
  use_eip              = false
  key_name             = var.key_pair_name
  security_groups      = [aws_security_group.octopus_server.id]
  subnet_ids           = [data.aws_subnets.private_subnets.ids[2]]
  iam_instance_profile = module.octopus_server_role.profile.name
  root_volume_size     = 50
  root_volume_type     = "gp3"
  encrypted            = true
  kms_key_id           = data.aws_kms_alias.default_ebs.target_key_arn
  common_tags = merge(
    local.infra_ec2_tags,
    {
      os_platform = "windows"
    }
  )
}

# Octopus linux instances for deployments
# resource "aws_ami_from_instance" "octopus_node_01" {
#   name               = "${local.name_prefix}-octopus-node-01-image"
#   source_instance_id = "" #module.octopus_deployment_node.ec2[0].id
#   lifecycle {
#     ignore_changes = [source_instance_id]
#   }
# }

module "octopus_deployment_node_v2" {
  source               = "../../../modules/ec2/ec2"
  name_prefix          = "${local.name_prefix}-octopus-node"
  instances_count      = 2
  ami                  = "ami-0922580fd6e9f3298" #aws_ami_from_instance.octopus_node_01.id
  instance_type        = "t3.small"
  use_public_ip        = false
  use_eip              = false
  key_name             = var.key_pair_name
  security_groups      = [aws_security_group.octopus_node.id]
  subnet_ids           = data.aws_subnets.private_subnets.ids
  iam_instance_profile = data.aws_iam_instance_profile.jenkins_agent.name
  root_volume_size     = 30
  root_volume_type     = "gp3"
  encrypted            = true
  kms_key_id           = data.aws_kms_alias.default_ebs.target_key_arn
  common_tags = merge(
    local.infra_ec2_tags,
    {
      os_platform     = "linux"
      os_distribution = "amazon"
      splunk          = "true"
    }
  )
}
