terraform/ecc-aws-040-eks_cluster_version_latest/red/eks.tf (54 lines of code) (raw):
resource "aws_eks_cluster" "this" {
name = "040_eks_cluster_red"
role_arn = aws_iam_role.this.arn
version = "1.28"
vpc_config {
subnet_ids = [aws_subnet.subnet1.id, aws_subnet.subnet2.id]
}
depends_on = [
aws_iam_role_policy_attachment.Cluster_Policy,
aws_iam_role_policy_attachment.Service_Policy,
]
}
resource "aws_iam_role" "this" {
name = "eks-cluster-040-red"
assume_role_policy = <<POLICY
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "eks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
POLICY
}
resource "aws_iam_role_policy_attachment" "Cluster_Policy" {
policy_arn = "arn:aws:iam::aws:policy/AmazonEKSClusterPolicy"
role = aws_iam_role.this.name
}
resource "aws_iam_role_policy_attachment" "Service_Policy" {
policy_arn = "arn:aws:iam::aws:policy/AmazonEKSServicePolicy"
role = aws_iam_role.this.name
}
resource "aws_vpc" "this" {
cidr_block = "10.0.0.0/16"
enable_dns_hostnames = true
}
resource "aws_subnet" "subnet1" {
vpc_id = aws_vpc.this.id
cidr_block = "10.0.1.0/24"
availability_zone = data.aws_availability_zones.this.names[0]
}
resource "aws_subnet" "subnet2" {
vpc_id = aws_vpc.this.id
cidr_block = "10.0.2.0/24"
availability_zone = data.aws_availability_zones.this.names[1]
}
data "aws_availability_zones" "this" {
state = "available"
}