feat: experiment with localstack
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
# resource "aws_instance" "Test" {
|
||||
# ami = data.aws_ami.this.id
|
||||
# instance_type = "t4g.large"
|
||||
#
|
||||
# tags = {
|
||||
# Name : "TestInstance001"
|
||||
# }
|
||||
# }
|
||||
|
||||
module "TestInstance" {
|
||||
source = "../../../modules/compute/ec2"
|
||||
|
||||
additional-tags = {}
|
||||
ami-id = data.aws_ami.this.id
|
||||
asso-eip = false
|
||||
asso-public-ip = false
|
||||
data-volumes = {}
|
||||
instance-name = "TestInstance001"
|
||||
instance-type = "t4g.large"
|
||||
kms-key-id = module.KmsKeys.cmks["allpurpose"].arn
|
||||
root-volume-size = 20
|
||||
security-groups = []
|
||||
subnet-id = data.terraform_remote_state.vpc.outputs.private_subnets[0]
|
||||
user-data = <<EOF
|
||||
#!/bin/bash
|
||||
dnf -y install git
|
||||
EOF
|
||||
}
|
||||
|
||||
data "aws_ami" "this" {
|
||||
most_recent = true
|
||||
name_regex = "^al2023-ami-2023.*-kernel-6.1-arm64"
|
||||
owners = ["amazon"]
|
||||
}
|
||||
|
||||
resource "random_pet" "this" {
|
||||
length = 1
|
||||
}
|
||||
|
||||
module "KmsKeys" {
|
||||
source = "../../../modules/security_identity_compliance/CustomerManagedKmsKeys"
|
||||
|
||||
create-allpurpose-key = true
|
||||
create-backup-key = false
|
||||
create-database-key = false
|
||||
create-eksebs-key = false
|
||||
create-log-key = false
|
||||
create-notify-key = false
|
||||
create-secret-key = false
|
||||
create-storage-key = false
|
||||
deletion_window_in_days = 7
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
output "instance_info" {
|
||||
value = module.TestInstance.ec2-id-ip
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
provider "aws" {
|
||||
region = var.aws-region
|
||||
|
||||
# localstack config
|
||||
access_key = "test"
|
||||
secret_key = "test"
|
||||
skip_credentials_validation = true
|
||||
skip_metadata_api_check = true
|
||||
skip_requesting_account_id = true
|
||||
|
||||
# localstack endpoints https://docs.localstack.cloud/aws/integrations/infrastructure-as-code/terraform/#:~:text=tflocal%20is%20a%20small%20wrapper,unmodified%20Terraform%20scripts%20against%20LocalStack.
|
||||
endpoints {
|
||||
apigateway = "http://192.168.86.96:4566"
|
||||
apigatewayv2 = "http://192.168.86.96:4566"
|
||||
cloudformation = "http://192.168.86.96:4566"
|
||||
cloudwatch = "http://192.168.86.96:4566"
|
||||
dynamodb = "http://192.168.86.96:4566"
|
||||
ec2 = "http://192.168.86.96:4566"
|
||||
es = "http://192.168.86.96:4566"
|
||||
elasticache = "http://192.168.86.96:4566"
|
||||
firehose = "http://192.168.86.96:4566"
|
||||
iam = "http://192.168.86.96:4566"
|
||||
kinesis = "http://192.168.86.96:4566"
|
||||
kms = "http://192.168.86.96:4566"
|
||||
lambda = "http://192.168.86.96:4566"
|
||||
rds = "http://192.168.86.96:4566"
|
||||
redshift = "http://192.168.86.96:4566"
|
||||
route53 = "http://192.168.86.96:4566"
|
||||
s3 = "http://192.168.86.96:4566"
|
||||
secretsmanager = "http://192.168.86.96:4566"
|
||||
ses = "http://192.168.86.96:4566"
|
||||
sns = "http://192.168.86.96:4566"
|
||||
sqs = "http://192.168.86.96:4566"
|
||||
ssm = "http://192.168.86.96:4566"
|
||||
stepfunctions = "http://192.168.86.96:4566"
|
||||
sts = "http://192.168.86.96:4566"
|
||||
}
|
||||
|
||||
default_tags {
|
||||
tags = {
|
||||
Environment = var.environment
|
||||
Project = var.project
|
||||
Application = var.application
|
||||
LocalStack = true
|
||||
TerraformDir = join("/", reverse(slice(reverse(split("/", path.cwd)), 0, 2)))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
terraform {
|
||||
required_version = ">= 1.11.0"
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = "~> 6.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# data aws_caller_identity current {}
|
||||
@@ -0,0 +1,6 @@
|
||||
data "terraform_remote_state" "vpc" {
|
||||
backend = "local"
|
||||
config = {
|
||||
path = "${path.module}/../../Network/LabVpc/terraform.tfstate"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
application = "localstack"
|
||||
environment = "locallab"
|
||||
project = "iac"
|
||||
aws-region = "us-east-1"
|
||||
@@ -0,0 +1,4 @@
|
||||
variable "aws-region" {}
|
||||
variable "environment" {}
|
||||
variable "project" {}
|
||||
variable "application" {}
|
||||
Reference in New Issue
Block a user