Simple
terraform {
required_version = ">= 1.7.0"
backend "s3" {
bucket = "tf-state-911453050078"
key = "examples/simple.tfstate"
workspace_key_prefix = "terraform-aws-kubernetes-platform"
dynamodb_table = "terraform-lock"
region = "eu-central-1"
}
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
helm = {
source = "hashicorp/helm"
version = "~> 2.6"
}
kubectl = {
source = "alekc/kubectl"
version = "~> 2.0"
}
kubernetes = {
source = "hashicorp/kubernetes"
version = "~> 2.27"
}
}
}
provider "aws" {
region = local.region
}
provider "kubernetes" {
host = module.k8s_platform.eks.cluster_endpoint
cluster_ca_certificate = base64decode(module.k8s_platform.eks.cluster_certificate_authority_data)
exec {
api_version = "client.authentication.k8s.io/v1beta1"
command = "aws"
args = ["eks", "get-token", "--cluster-name", module.k8s_platform.eks.cluster_name]
}
}
provider "helm" {
kubernetes {
host = module.k8s_platform.eks.cluster_endpoint
cluster_ca_certificate = base64decode(module.k8s_platform.eks.cluster_certificate_authority_data)
exec {
api_version = "client.authentication.k8s.io/v1beta1"
command = "aws"
args = ["eks", "get-token", "--cluster-name", module.k8s_platform.eks.cluster_name]
}
}
}
provider "kubectl" {
apply_retry_count = 5
host = module.k8s_platform.eks.cluster_endpoint
cluster_ca_certificate = base64decode(module.k8s_platform.eks.cluster_certificate_authority_data)
load_config_file = false
exec {
api_version = "client.authentication.k8s.io/v1beta1"
command = "aws"
args = ["eks", "get-token", "--cluster-name", module.k8s_platform.eks.cluster_name]
}
}
locals {
region = "eu-central-1"
}
module "k8s_platform" {
source = "../../"
name = "ex-simple"
vpc = {
enabled = true
}
cluster_admins = {
cicd = {
role_name = "cicd-iac"
}
}
enable_prometheus_stack = false
enable_grafana = false
enable_fluent_operator = false
tags = {
Environment = "sandbox"
GithubRepo = "terraform-aws-kubernetes-platform"
GithubOrg = "tx-pts-dai"
}
}
output "eks" {
description = "eks module outputs"
value = module.k8s_platform.eks
}
output "vpc" {
description = "vpc module outputs"
value = module.k8s_platform.network
}
output "zconfigure_kubectl" {
description = "Configure kubectl: make sure you're logged in with the correct AWS profile and run the following command to update your kubeconfig"
value = "aws eks --region ${local.region} update-kubeconfig --name ${module.k8s_platform.eks.cluster_name} --alias ${module.k8s_platform.eks.cluster_name}"
}