diff --git a/app/media/MyTerraform/main.tf b/app/media/MyTerraform/main.tf deleted file mode 100644 index 28d8edeb..00000000 --- a/app/media/MyTerraform/main.tf +++ /dev/null @@ -1,15 +0,0 @@ - -provider "aws" { - region = "us-east-1" -} - -module "ec2" { - key_pair_create = var.key_pair_create - key_pair_name = var.key_pair_name - security_group_create = var.security_group_create - security_group_name = var.security_group_name - security_group_ingress_rules = var.security_group_ingress_rules - security_group_egress_rule = var.security_group_egress_rule - instance_create = var.instance_create - instance_type = var.instance_type -} diff --git a/app/media/MyTerraform/modules/ec2/main.tf b/app/media/MyTerraform/modules/ec2/main.tf deleted file mode 100644 index 64cffcea..00000000 --- a/app/media/MyTerraform/modules/ec2/main.tf +++ /dev/null @@ -1,57 +0,0 @@ - -data "aws_ami" "linux" { - most_recent = true - owners = ["amazon"] - - filter { - name = "name" - values = ["al2023-ami-2023*kernel-6.1-x86_64"] - } - - filter { - name = "root-device-type" - values = ["ebs"] - } - - filter { - name = "virtualization-type" - values = ["hvm"] - } -} - -resource "aws_key_pair" "key_pair" { - count = var.key_pair_create ? 1 : 0 - key_name = var.key_pair_name - public_key = file("${path.module}/terraform.pub") -} - -resource "aws_security_group" "security_group" { - count = var.security_group_create ? 1 : 0 - name = var.security_group_name - - dynamic "ingress" { - for_each = var.security_group_ingress_rules - content { - description = ingress.value["description"] - from_port = ingress.value["from_port"] - to_port = ingress.value["to_port"] - protocol = ingress.value["protocol"] - cidr_blocks = ingress.value["cidr_blocks"] - } - } - - egress { - from_port = var.security_group_egress_rule["from_port"] - to_port = var.security_group_egress_rule["to_port"] - protocol = var.security_group_egress_rule["protocol"] - cidr_blocks = var.security_group_egress_rule["cidr_blocks"] - } -} - -resource "aws_instance" "instance" { - count = var.instance_create ? 1 : 0 - ami = data.aws_ami.linux.id - instance_type = var.instance_type - key_name = var.key_pair_create ? aws_key_pair.key_pair[0].key_name : null - vpc_security_group_ids = var.security_group_create ? [aws_security_group.security_group[0].id] : null -} diff --git a/app/media/MyTerraform/modules/ec2/terraform.pub b/app/media/MyTerraform/modules/ec2/terraform.pub deleted file mode 100644 index e69de29b..00000000 diff --git a/app/media/MyTerraform/modules/ec2/terraform.tfvars b/app/media/MyTerraform/modules/ec2/terraform.tfvars deleted file mode 100644 index 31cec26d..00000000 --- a/app/media/MyTerraform/modules/ec2/terraform.tfvars +++ /dev/null @@ -1,31 +0,0 @@ - -key_pair_create = true -key_pair_name = "ec2" - -security_group_create = true -security_group_name = "my_rules" -security_group_ingress_rules = { - ssh_rule = { - description = "SSH Ingress" - from_port = 22 - to_port = 22 - protocol = "tcp" - cidr_blocks = ["0.0.0.0/0"] - }, - http_rule = { - description = "HTTP Ingress" - from_port = 80 - to_port = 80 - protocol = "tcp" - cidr_blocks = ["0.0.0.0/0"] - } -} -security_group_egress_rule = { - from_port = 0 - to_port = 0 - protocol = "-1" - cidr_blocks = ["0.0.0.0/0"] -} - -instance_create = true -instance_type = "t2.micro" diff --git a/app/media/MyTerraform/modules/ec2/variables.tf b/app/media/MyTerraform/modules/ec2/variables.tf deleted file mode 100644 index cd4cd9de..00000000 --- a/app/media/MyTerraform/modules/ec2/variables.tf +++ /dev/null @@ -1,51 +0,0 @@ - -variable "key_pair_create" { - description = "Create Key Pair" - type = bool -} - -variable "key_pair_name" { - description = "Key Pair Name" - type = string -} - -variable "security_group_create" { - description = "Create Security Group" - type = bool -} - -variable "security_group_name" { - description = "Security Group Name" - type = string -} - -variable "security_group_ingress_rules" { - description = "Security Group Ingress Rules" - type = map(object({ - description = string - from_port = number - to_port = number - protocol = string - cidr_blocks = list(string) - })) -} - -variable "security_group_egress_rule" { - description = "Security Group Egress Rule" - type = object({ - from_port = number - to_port = number - protocol = string - cidr_blocks = list(string) - }) -} - -variable "instance_create" { - description = "Create EC2 Instance" - type = bool -} - -variable "instance_type" { - description = "EC2 Instance Type" - type = string -} diff --git a/app/media/MyTerraform/modules/ec2/versions.tf b/app/media/MyTerraform/modules/ec2/versions.tf deleted file mode 100644 index b19ec086..00000000 --- a/app/media/MyTerraform/modules/ec2/versions.tf +++ /dev/null @@ -1,11 +0,0 @@ - -terraform { - required_version = ">= 1.0" - - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.20" - } - } -} diff --git a/app/media/MyTerraform/terraform.tfvars b/app/media/MyTerraform/terraform.tfvars deleted file mode 100644 index 31cec26d..00000000 --- a/app/media/MyTerraform/terraform.tfvars +++ /dev/null @@ -1,31 +0,0 @@ - -key_pair_create = true -key_pair_name = "ec2" - -security_group_create = true -security_group_name = "my_rules" -security_group_ingress_rules = { - ssh_rule = { - description = "SSH Ingress" - from_port = 22 - to_port = 22 - protocol = "tcp" - cidr_blocks = ["0.0.0.0/0"] - }, - http_rule = { - description = "HTTP Ingress" - from_port = 80 - to_port = 80 - protocol = "tcp" - cidr_blocks = ["0.0.0.0/0"] - } -} -security_group_egress_rule = { - from_port = 0 - to_port = 0 - protocol = "-1" - cidr_blocks = ["0.0.0.0/0"] -} - -instance_create = true -instance_type = "t2.micro" diff --git a/app/media/MyTerraform/variables.tf b/app/media/MyTerraform/variables.tf deleted file mode 100644 index cd4cd9de..00000000 --- a/app/media/MyTerraform/variables.tf +++ /dev/null @@ -1,51 +0,0 @@ - -variable "key_pair_create" { - description = "Create Key Pair" - type = bool -} - -variable "key_pair_name" { - description = "Key Pair Name" - type = string -} - -variable "security_group_create" { - description = "Create Security Group" - type = bool -} - -variable "security_group_name" { - description = "Security Group Name" - type = string -} - -variable "security_group_ingress_rules" { - description = "Security Group Ingress Rules" - type = map(object({ - description = string - from_port = number - to_port = number - protocol = string - cidr_blocks = list(string) - })) -} - -variable "security_group_egress_rule" { - description = "Security Group Egress Rule" - type = object({ - from_port = number - to_port = number - protocol = string - cidr_blocks = list(string) - }) -} - -variable "instance_create" { - description = "Create EC2 Instance" - type = bool -} - -variable "instance_type" { - description = "EC2 Instance Type" - type = string -} diff --git a/app/media/MyTerraform/versions.tf b/app/media/MyTerraform/versions.tf deleted file mode 100644 index b19ec086..00000000 --- a/app/media/MyTerraform/versions.tf +++ /dev/null @@ -1,11 +0,0 @@ - -terraform { - required_version = ">= 1.0" - - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.20" - } - } -} diff --git a/app/media/MyTerraform_zip.zip b/app/media/MyTerraform_zip.zip new file mode 100644 index 00000000..b96701d4 Binary files /dev/null and b/app/media/MyTerraform_zip.zip differ diff --git a/app/models/terraform_models.py b/app/models/terraform_models.py index 961e6ef0..8e8efc75 100644 --- a/app/models/terraform_models.py +++ b/app/models/terraform_models.py @@ -81,8 +81,20 @@ class IaCTemplateGenerationIAM(BaseModel): iam_user:bool = True iam_group:bool = True +class SyncPolicy(BaseModel): + auto_prune: bool = True + self_heal: bool = True + +class SyncOptions(BaseModel): + apply_out_of_sync_only: bool = True + create_namespace: bool = True + fail_or_share_resource:bool = True + +class ArgoApplication(BaseModel): + sync_policy: SyncPolicy | None = None + sync_options: SyncOptions | None = None + class IaCTemplateGenerationArgoCD(BaseModel): - argocd_application:bool = True - argocd_project:bool = True + argocd_application:ArgoApplication | None = None argocd_repository:bool = True argocd_cluster:bool = True \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 00000000..1588119f --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "Devops_Chatbot", + "lockfileVersion": 3, + "requires": true, + "packages": {} +}