initial test terraform (wip)

This commit is contained in:
Chris Marchesi committed 2021-09-20 16:52:15 -07:00
1 parent 84353f46b9
commit 7fe7b6b2c3
3 files changed
+151

No files matched your search

+70
View File
@@ -0,0 +1,70 @@
variable "iam_user_prefix" {
default = "boundary-plugin-host-aws-test-iam-user"
}
resource "random_id" "aws_iam_user_name" {
prefix = var.iam_user_prefix
byte_length = 4
}
resource "aws_iam_user" "user" {
name = random_id.aws_iam_user_name.dec
tags = var.project_path_tags
}
resource "aws_iam_access_key" "user_initial_key" {
user = aws_iam_user.user.name
tags = var.project_path_tags
}
resource "aws_iam_policy" "ec2_describeinstances" {
name = "BoundaryPluginHostAwsTestDescribeInstancesPolicy"
policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"ec2:DescribeInstances"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
EOF
}
resource "aws_iam_user_policy_attachement" "user_ec2_describeinstances_attachment" {
user = aws_iam_user.user.name
policy_arn = aws_iam_policy.ec2_describeinstancest.arn
}
resource "aws_iam_policy" "user_self_manage_policy" {
name = "BoundaryPluginHostAwsTestUserSelfManagePolicy"
policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"iam:DeleteAccessKey",
"iam:GetUser",
"iam:CreateAccessKey"
],
"Effect": "Allow",
"Resource": "${aws_iam_user.user.arn}"
}
]
}
EOF
}
resource "aws_iam_user_policy_attachement" "user_self_manage_policy_attachment" {
user = aws_iam_user.user.name
policy_arn = aws_iam_policy.user_self_manage_policy.arn
}
+14
View File
@@ -0,0 +1,14 @@
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3.0"
}
}
}
variable "project_path_tags" {
default = {
"project_path" = "hashicorp/boundary-plugin-host-aws/test/basic"
}
}
+67
View File
@@ -0,0 +1,67 @@
variable "instance_tags" {
default = [
{
"foo" = "true",
},
{
"foo" = "true",
"bar" = "true",
},
{
"bar" = "true",
},
{
"bar" = "true",
"baz" = "true",
},
{
"baz" = "true",
},
]
}
data "aws_availability_zones" "azs" {}
data "aws_ami" "ubuntu" {
most_recent = true
filter {
name = "name"
values = ["ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*"]
}
filter {
name = "virtualization-type"
values = ["hvm"]
}
owners = ["099720109477"] # Canonical
}
resource "aws_vpc" "vpc" {
cidr_block = "10.0.0.0/16"
tags = var.project_path_tags
}
resource "aws_subnet" "subnet" {
vpc_id = aws_vpc.vpc.id
cidr_block = aws_vpc.vpc.cidr_block
availability_zone = data.aws_availability_zones.azs.names[0]
tags = var.project_path_tags
}
resource "aws_instance" "instances" {
count = length(var.instance_tags)
ami = data.aws_ami.ubuntu.id
instance_type = "t3.nano"
tags = merge(instance_tags[count.index], var.project_path_tags)
}
output "instance_tags" {
value = {
for _, r in aws_instance.instances : r.id => r.tags
}
}