Creating definition for alpha and lewdlad service
This commit is contained in:
		
							parent
							
								
									b9ac171181
								
							
						
					
					
						commit
						e830889432
					
				@ -1,59 +1,60 @@
 | 
				
			|||||||
# Alpha is our primary server that we use for bots which basically
 | 
					# Alpha houses all of our containerized applications
 | 
				
			||||||
# serve services that I personally run
 | 
					# Essentially it is a cluster with services that we
 | 
				
			||||||
 | 
					# choose to expose to the internet in one form or another
 | 
				
			||||||
 | 
					
 | 
				
			||||||
######################### SSH KEY ##############################################
 | 
					# Logging Configuration for services inside the cluster
 | 
				
			||||||
resource "aws_key_pair" "alpha_ssh" {
 | 
					#######################################################
 | 
				
			||||||
  key_name = var.alpha_ssh_key_name
 | 
					
 | 
				
			||||||
  public_key = file(var.alpha_public_key_path)
 | 
					resource "aws_cloudwatch_log_group" "alpha" {
 | 
				
			||||||
 | 
					  name = "alpha-log"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
######################### files.leftcoast.space VOLUME #########################
 | 
					# Alpha cluster definition 
 | 
				
			||||||
resource "aws_ebs_volume" "photo_gallery_volume" {
 | 
					###########################
 | 
				
			||||||
  availability_zone = var.athens_availability_zone
 | 
					resource "aws_ecs_cluster" "alpha" {
 | 
				
			||||||
  size = 35
 | 
					  name = "alpha"
 | 
				
			||||||
 | 
					  configuration {
 | 
				
			||||||
  tags = {
 | 
					    execute_command_configuration {
 | 
				
			||||||
    Name = "Photo gallery volume"
 | 
					      log_configuration {
 | 
				
			||||||
    Description = "Volume is to be used entirely for Photos/Video"
 | 
					        cloud_watch_log_group_name = aws_cloudwatch_log_group.alpha.name
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
######################### clips.shockrah.xyz VOLUME ############################
 | 
					 | 
				
			||||||
resource "aws_ebs_volume" "id" {
 | 
					 | 
				
			||||||
  availability_zone = "us-west-1b"
 | 
					 | 
				
			||||||
  size = 35
 | 
					 | 
				
			||||||
  tags = {
 | 
					 | 
				
			||||||
    Name = "Clips"
 | 
					 | 
				
			||||||
    Description = "Used for the clippable instance"
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
######################### INSTANCE CONFIGURATION ###############################
 | 
					# Lewdlad Service Definition
 | 
				
			||||||
resource "aws_instance" "alpha" {
 | 
					############################
 | 
				
			||||||
  ami = var.alpha_ami_id
 | 
					resource "aws_ecs_task_definition" "lewdlad" {
 | 
				
			||||||
  instance_type = var.alpha_instance_type
 | 
					  family = "lewdlad-task-definition"
 | 
				
			||||||
 | 
					  container_definitions = jsonencode([
 | 
				
			||||||
  key_name = var.alpha_ssh_key_name
 | 
					    {
 | 
				
			||||||
 | 
					      name      = "lewdlad-container"
 | 
				
			||||||
  private_ip = "10.0.1.10"
 | 
					      image     = "registry.gitlab.com/shockrah/left-coast-server-bot:latest"
 | 
				
			||||||
  vpc_security_group_ids = [ 
 | 
					      # Literally the smallest amount that fargate will allow
 | 
				
			||||||
    aws_security_group.general_web_req.id,
 | 
					      cpu       = 256
 | 
				
			||||||
    aws_security_group.remote_ssh_rec.id
 | 
					      memory    = 512
 | 
				
			||||||
 | 
					      essential = true
 | 
				
			||||||
 | 
					      environment = [
 | 
				
			||||||
 | 
					        { name: DISCORD_ID,      value: var.DISCORD_ID },
 | 
				
			||||||
 | 
					        { name: DISCORD_TOKEN,   value: var.DISCORD_TOKEN },
 | 
				
			||||||
 | 
					        { name: AWS_API_ID,      value: var.AWS_API_ID },
 | 
				
			||||||
 | 
					        { name: AWS_API_STAGE,   value: var.AWS_API_STAGE },
 | 
				
			||||||
 | 
					        { name: AWS_API_REGION,  value: var.AWS_API_REGION },
 | 
				
			||||||
 | 
					        { name: AWS_API_KEY,     value: var.AWS_API_KEY },
 | 
				
			||||||
 | 
					        { name: DEV_GUILD_ID,    value: var.DEV_GUILD_ID },
 | 
				
			||||||
 | 
					        { name: BEEHIVE_ID,      value: var.BEEHIVE_ID },
 | 
				
			||||||
      ]
 | 
					      ]
 | 
				
			||||||
  subnet_id = aws_subnet.crete_subnet.id
 | 
					    }
 | 
				
			||||||
  tags = {
 | 
					  ])
 | 
				
			||||||
    Name = "Alpha Host"
 | 
					 | 
				
			||||||
    Description = "Docker host with chatbots mostly"
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					resource "aws_ecs_service" "lewdlad" {
 | 
				
			||||||
 | 
					  name            = "lewdlad"
 | 
				
			||||||
######################### ATTACHMENT FOR files.leftcoast.space #################
 | 
					  cluster         = aws_ecs_cluster.alpha.arn
 | 
				
			||||||
resource "aws_volume_attachment" "photo_gallery_attach" {
 | 
					  task_definition = aws_ecs_task_definition.lewdlad.arn
 | 
				
			||||||
  # hdp is for hard drive photos in this case
 | 
					  desired_count   = 1
 | 
				
			||||||
  device_name = "/dev/sdp"
 | 
					 | 
				
			||||||
  volume_id = aws_ebs_volume.photo_gallery_volume.id
 | 
					 | 
				
			||||||
  instance_id = aws_instance.alpha.id
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user