diff --git a/deploy/scripts/.gitignore b/deploy/scripts/.gitignore deleted file mode 100644 index c60caa840..000000000 --- a/deploy/scripts/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -# terraform -*.tfstate -*.tfstate.backup -*.tfvars -.terraform/ \ No newline at end of file diff --git a/deploy/scripts/build-push.sh b/deploy/scripts/build-push.sh deleted file mode 100755 index 287b99c67..000000000 --- a/deploy/scripts/build-push.sh +++ /dev/null @@ -1,11 +0,0 @@ - -#! /usr/bin/env sh - -# Exit in case of error -set -e - -TAG=${TAG?Variable not set} \ -FRONTEND_ENV=${FRONTEND_ENV-production} \ -sh ./scripts/build.sh - -docker-compose -f docker-compose.yml push \ No newline at end of file diff --git a/deploy/scripts/build.sh b/deploy/scripts/build.sh deleted file mode 100755 index 4d8c2743a..000000000 --- a/deploy/scripts/build.sh +++ /dev/null @@ -1,10 +0,0 @@ -#! /usr/bin/env sh - -# Exit in case of error -set -e - -TAG=${TAG?Variable not set} \ -FRONTEND_ENV=${FRONTEND_ENV-production} \ -docker-compose \ --f docker-compose.yml \ -build \ No newline at end of file diff --git a/deploy/scripts/terraform/.terraform.lock.hcl b/deploy/scripts/terraform/.terraform.lock.hcl deleted file mode 100644 index 3a247d856..000000000 --- a/deploy/scripts/terraform/.terraform.lock.hcl +++ /dev/null @@ -1,24 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "registry.terraform.io/hashicorp/aws" { - version = "5.13.1" - hashes = [ - "h1:T/p3Gp8uAvRk3BmBZI/B7JIUpxF+2DygvBsv2UvJK4w=", - "zh:0d107e410ecfbd5d2fb5ff9793f88e2ce03ae5b3bda4e3b772b5d146cdd859d8", - "zh:1080cf6a402939ec4ad393380f2ab2dfdc0e175903e08ed796aa22eb95868847", - "zh:300420d642c3ada48cfe633444eafa7bcd410cd6a8503de2384f14ac54dc3ce3", - "zh:4e0121014a8d6ef0b1ab4634877545737bb54e951340f1b67ffea8cd22b2d252", - "zh:59b401bbf95dc8c6bea58085ff286543380f176271251193eac09cb7fcf619b7", - "zh:5dfaf51e979131710ce8e1572e6012564e68c7c842e3d9caaaeb0fe6af15c351", - "zh:84bb75dafca056d7c3783be5185187fdd3294f902e9d72f7655f2efb5e066650", - "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:aa4e2b9f699d497041679bc05ca34ac21a5184298eb1813f35455b1883977910", - "zh:b51a4f08d84b071128df68a95cfa5114301a50bf8ab8e655dcf7e384e5bc6458", - "zh:bce284ac6ebb65053d9b703048e3157bf4175782ea9dbaec9f64dc2b6fcefb0c", - "zh:c748f78b79b354794098b06b18a02aefdb49be144dff8876c9204083980f7de0", - "zh:ee69d9aef5ca532392cdc26499096f3fa6e55f8622387f78194ebfaadb796aef", - "zh:ef561bee58e4976474bc056649095737fa3b2bcb74602032415d770bfc620c1f", - "zh:f696d8416c57c31f144d432779ba34764560a95937db3bb3dd2892a791a6d5a7", - ] -} diff --git a/deploy/scripts/terraform/main.tf b/deploy/scripts/terraform/main.tf deleted file mode 100644 index 8c103d00b..000000000 --- a/deploy/scripts/terraform/main.tf +++ /dev/null @@ -1,114 +0,0 @@ -terraform { - backend "s3" { - bucket = "terraform-5fso81t4tn8z" - key = "backend/terraform.tfstate" - region = "us-east-1" - } -} - -provider "aws" { - region = var.region # Choose the region as needed -} - -module "docker-swarm" { - source = "./modules/docker-swarm" - key_name = aws_key_pair.swarm-key.key_name - vpc_id = aws_vpc.swarm-vpc.id - subnet_id = aws_subnet.swarm-public-subnet.id - security_group = aws_security_group.swarm-sg.id - instance_type = var.instance_type # Choose the instance type as needed - manager_count = var.manager_count - worker_count = var.worker_count # This is the number of services in the docker-compose.yml file -} - -resource "aws_key_pair" "swarm-key" { - key_name = "swarm-key" - public_key = file("~/.ssh/id_rsa.pub") -} - -resource "aws_vpc" "swarm-vpc" { - cidr_block = "10.0.0.0/16" - enable_dns_support = true - enable_dns_hostnames = true -} - -resource "aws_subnet" "swarm-private-subnet" { - vpc_id = aws_vpc.swarm-vpc.id - cidr_block = "10.0.1.0/24" -} - -resource "aws_subnet" "swarm-public-subnet" { - vpc_id = aws_vpc.swarm-vpc.id - cidr_block = "10.0.2.0/24" -} - -resource "aws_internet_gateway" "igw" { - vpc_id = aws_vpc.swarm-vpc.id -} - -resource "aws_route_table" "public_rt" { - vpc_id = aws_vpc.swarm-vpc.id - - route { - cidr_block = "0.0.0.0/0" - gateway_id = aws_internet_gateway.igw.id - } -} - -resource "aws_route_table_association" "public_subnet_asso" { - subnet_id = aws_subnet.swarm-public-subnet.id - route_table_id = aws_route_table.public_rt.id -} - -resource "aws_security_group" "swarm-sg" { - vpc_id = aws_vpc.swarm-vpc.id - - ingress { - from_port = 22 - to_port = 22 - protocol = "tcp" - cidr_blocks = ["0.0.0.0/0"] - } - - ingress { - from_port = 2376 - to_port = 2377 - protocol = "tcp" - cidr_blocks = ["0.0.0.0/0"] - } - - ingress { - from_port = 7946 - to_port = 7946 - protocol = "tcp" - cidr_blocks = ["0.0.0.0/0"] - } - - ingress { - from_port = 4789 - to_port = 4789 - protocol = "udp" - cidr_blocks = ["0.0.0.0/0"] - } - - egress { - from_port = 0 - to_port = 0 - protocol = "-1" - cidr_blocks = ["0.0.0.0/0"] - } - - ingress { - from_port = 8080 - to_port = 8080 - protocol = "tcp" - cidr_blocks = [aws_subnet.swarm-public-subnet.cidr_block] - } - - egress { - from_port = 8080 - to_port = 8080 - protocol = "tcp" - cidr_blocks = [aws_subnet.swarm-public-subnet.cidr_block] - } -} diff --git a/deploy/scripts/terraform/modules/docker-swarm/main.tf b/deploy/scripts/terraform/modules/docker-swarm/main.tf deleted file mode 100644 index c29f572e9..000000000 --- a/deploy/scripts/terraform/modules/docker-swarm/main.tf +++ /dev/null @@ -1,94 +0,0 @@ -variable "key_name" {} -variable "vpc_id" {} -variable "subnet_id" {} -variable "security_group" {} -variable "instance_type" {} -variable "manager_count" {} -variable "worker_count" {} - - -resource "aws_instance" "manager" { - count = var.manager_count - ami = "ami-08a52ddb321b32a8c" # Amazon Linux 2 LTS - instance_type = var.instance_type - key_name = var.key_name - vpc_security_group_ids = [var.security_group] - subnet_id = var.subnet_id - associate_public_ip_address = true - - user_data = <<-EOT - #!/bin/bash - sudo yum update -y - sudo yum install -y docker - sudo yum install -y git - sudo yum install -y nc - sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose - sudo chmod +x /usr/local/bin/docker-compose - sudo service docker start - sudo usermod -a -G docker ec2-user - sudo chkconfig docker on - - # Fetch instance metadata with token - TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` - IP_ADDR=$(curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/local-ipv4) - - docker swarm init --advertise-addr $IP_ADDR - - # Create a script to get the join token - echo 'docker swarm join-token worker -q' > get_token.sh - chmod +x get_token.sh - timeout 5m bash -c "while true; do { echo -e 'HTTP/1.1 200 OK\r\n'; ./get_token.sh; } | nc -l 8080; done" & - sleep 10 - - # Clone the repo and start the stack - git clone https://github.com/logspace-ai/langflow.git - cd /langflow - git checkout celery - cd /langflow/deploy - - sudo cp .env.example .env - - # Add the label to random worker node to ensure that the data volume is created on the same node - docker node update --label-add app-db-data=true $(docker node ls --format '{{.Hostname}}' --filter role=worker | head -n 1) - - env $(cat .env | grep ^[A-Z] | xargs) docker stack deploy --compose-file docker-compose.yml langflow_stack - - EOT - - tags = { - Name = "manager-${count.index}" - } -} - -resource "aws_instance" "worker" { - count = var.worker_count - ami = "ami-08a52ddb321b32a8c" # Amazon Linux 2 LTS - instance_type = var.instance_type - key_name = var.key_name - vpc_security_group_ids = [var.security_group] - subnet_id = var.subnet_id - associate_public_ip_address = true - - user_data = <<-EOT - #!/bin/bash - MANAGER_IP="${aws_instance.manager.0.private_ip}" - sudo yum update -y - sudo yum install -y docker - sudo service docker start - sudo usermod -a -G docker ec2-user - sudo chkconfig docker on - docker swarm join --token $(curl -s http://$MANAGER_IP:8080/token) $MANAGER_IP:2377 - EOT - - tags = { - Name = "worker-${count.index}" - } -} - -output "manager_public_ips" { - value = aws_instance.manager[*].public_ip -} - -output "worker_public_ips" { - value = aws_instance.worker[*].public_ip -} diff --git a/deploy/scripts/terraform/outputs.tf b/deploy/scripts/terraform/outputs.tf deleted file mode 100644 index 30303fad9..000000000 --- a/deploy/scripts/terraform/outputs.tf +++ /dev/null @@ -1,8 +0,0 @@ -output "manager_public_ips" { - value = module.docker-swarm.manager_public_ips -} - -output "worker_public_ips" { - value = module.docker-swarm.worker_public_ips -} - diff --git a/deploy/scripts/terraform/variables.tf b/deploy/scripts/terraform/variables.tf deleted file mode 100644 index e73528c88..000000000 --- a/deploy/scripts/terraform/variables.tf +++ /dev/null @@ -1,19 +0,0 @@ -variable "region" { - description = "The AWS region" - default = "us-east-1" -} - -variable "instance_type" { - description = "EC2 instance type" - default = "t2.micro" -} - -variable "manager_count" { - description = "Number of manager nodes" - default = 1 -} - -variable "worker_count" { - description = "Number of worker nodes" - default = 3 -}