Skip to content

liviudm/terraform-eks-base

Repository files navigation

Requirements

Name Version
terraform ~> 1.0
aws ~> 4.0
flux 0.18.0
github ~> 4.31
helm 2.5.1
kubectl = 1.14.0
kubernetes ~> 2.13
tls ~> 4.0

Providers

Name Version
aws ~> 4.0
flux 0.18.0
github ~> 4.31
helm 2.5.1
http n/a
kubectl = 1.14.0
kubernetes ~> 2.13
tls ~> 4.0

Modules

Name Source Version
eks registry.terraform.io/terraform-aws-modules/eks/aws 18.29.0
endpoints registry.terraform.io/terraform-aws-modules/vpc/aws//modules/vpc-endpoints 3.14.2
irsa_ebs_csi registry.terraform.io/terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks 5.3.1
irsa_external_dns registry.terraform.io/terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks 5.3.1
irsa_flux registry.terraform.io/terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks 5.3.1
irsa_github_actions_runner registry.terraform.io/terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks 5.3.1
irsa_karpenter registry.terraform.io/terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks 5.3.1
irsa_vpc_cni registry.terraform.io/terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks 5.3.1
vpc registry.terraform.io/terraform-aws-modules/vpc/aws 3.14.2

Resources

Name Type
aws_eks_addon.ebs_csi resource
aws_eks_addon.vpc_cni resource
aws_iam_instance_profile.karpenter resource
aws_iam_policy.flux resource
aws_iam_policy.github_actions_runner resource
aws_kms_alias.eks resource
aws_kms_alias.fluxcd resource
aws_kms_key.eks resource
aws_kms_key.fluxcd resource
aws_security_group.vpc_endpoints_https resource
github_repository_deploy_key.main resource
github_repository_file.install resource
github_repository_file.kustomize resource
github_repository_file.patches resource
github_repository_file.sync resource
helm_release.karpenter resource
kubectl_manifest.install resource
kubectl_manifest.karpenter_awsnodetemplate resource
kubectl_manifest.karpenter_awsnodetemplates_crd resource
kubectl_manifest.karpenter_production_provisioner resource
kubectl_manifest.karpenter_provisioner resource
kubectl_manifest.karpenter_provisioner_crd resource
kubectl_manifest.sync resource
kubernetes_namespace.flux_system resource
kubernetes_namespace.github_actions_runner resource
kubernetes_secret.main resource
kubernetes_service_account.external_dns resource
kubernetes_service_account.github_actions_runner resource
tls_private_key.flux resource
aws_region.current data source
aws_security_group.default data source
flux_install.main data source
flux_sync.main data source
github_repository.main data source
http_http.karpenter_awsnodetemplates_crd data source
http_http.karpenter_provisioner_crd data source
kubectl_file_documents.install data source
kubectl_file_documents.sync data source

Inputs

Name Description Type Default Required
cluster_admins List of EKS Cluster administrators list(string) n/a yes
cluster_enabled_log_types List of Cloudwatch EKS Control Plane log types to enable list(string)
[
"api",
"audit",
"authenticator",
"controllerManager",
"scheduler"
]
no
cluster_name EKS Cluster Name string n/a yes
default_instance_types Karpenter Provisioner EC2 instance types list(string)
[
"t3a.small",
"t3a.medium",
"m6a.large",
"m6a.xlarge",
"m6a.2xlarge",
"m6a.4xlarge",
"c6a.large",
"c6a.xlarge",
"c6a.2xlarge",
"c6a.4xlarge",
"r6a.large",
"r6a.xlarge",
"r6a.2xlarge",
"r6a.4xlarge"
]
no
flux_branch branch name string "master" no
flux_repository_name Flux github repository name string "infrastructure" no
github_owner Flux github owner string "DigitalMOB2" no
network Network CIDR to be used for VPC string n/a yes
node_instance_arch Karpenter Provisioner EC2 instance architecture list(string)
[
"amd64"
]
no
node_instance_capacity_types Karpenter Provisioner EC2 instance capacity type list(string)
[
"spot",
"on-demand"
]
no
production_instance_types Karpenter Production Provisioner EC2 instance types list(string)
[
"m6a.large",
"m6a.xlarge",
"m6a.2xlarge",
"m6a.4xlarge",
"c6a.large",
"c6a.xlarge",
"c6a.2xlarge",
"c6a.4xlarge",
"r6a.large",
"r6a.xlarge",
"r6a.2xlarge",
"r6a.4xlarge"
]
no
tags Map of tags for all resources map(string) n/a yes
vpc_name Do NOT use. Added just to provide compatibility for misc EKS cluster string "" no

Outputs

Name Description
cluster_certificate_authority_data n/a
cluster_endpoint n/a
cluster_id n/a
database_subnets_group_name n/a
eks_security_group_id n/a
flux_kms n/a

Requirements

Name Version
terraform ~> 1.0
aws ~> 4.0
flux 0.18.0
github ~> 4.31
helm 2.5.1
kubectl = 1.14.0
kubernetes ~> 2.13
tls ~> 4.0

Providers

Name Version
aws ~> 4.0
flux 0.18.0
github ~> 4.31
helm 2.5.1
http n/a
kubectl = 1.14.0
kubernetes ~> 2.13
tls ~> 4.0

Modules

Name Source Version
eks registry.terraform.io/terraform-aws-modules/eks/aws 18.29.1
endpoints registry.terraform.io/terraform-aws-modules/vpc/aws//modules/vpc-endpoints 3.16.0
irsa_ebs_csi registry.terraform.io/terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks 5.5.0
irsa_external_dns registry.terraform.io/terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks 5.5.0
irsa_flux registry.terraform.io/terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks 5.5.0
irsa_github_actions_runner registry.terraform.io/terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks 5.5.0
irsa_karpenter registry.terraform.io/terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks 5.5.0
irsa_vpc_cni registry.terraform.io/terraform-aws-modules/iam/aws//modules/iam-role-for-service-accounts-eks 5.5.0
vpc registry.terraform.io/terraform-aws-modules/vpc/aws 3.16.0

Resources

Name Type
aws_eks_addon.ebs_csi resource
aws_eks_addon.vpc_cni resource
aws_iam_instance_profile.karpenter resource
aws_iam_policy.flux resource
aws_iam_policy.github_actions_runner resource
aws_kms_alias.eks resource
aws_kms_alias.fluxcd resource
aws_kms_key.eks resource
aws_kms_key.fluxcd resource
aws_security_group.vpc_endpoints_https resource
github_repository_deploy_key.main resource
github_repository_file.install resource
github_repository_file.kustomize resource
github_repository_file.patches resource
github_repository_file.sync resource
helm_release.karpenter resource
kubectl_manifest.install resource
kubectl_manifest.karpenter_awsnodetemplate resource
kubectl_manifest.karpenter_awsnodetemplates_crd resource
kubectl_manifest.karpenter_default_provisioner resource
kubectl_manifest.karpenter_production_provisioner resource
kubectl_manifest.karpenter_provisioner_crd resource
kubectl_manifest.sync resource
kubernetes_namespace.flux_system resource
kubernetes_namespace.github_actions_runner resource
kubernetes_secret.main resource
kubernetes_service_account.external_dns resource
kubernetes_service_account.github_actions_runner resource
tls_private_key.flux resource
aws_iam_policy_document.flux data source
aws_iam_policy_document.github_actions_runner data source
aws_region.current data source
aws_security_group.default data source
flux_install.main data source
flux_sync.main data source
github_repository.main data source
http_http.karpenter_awsnodetemplates_crd data source
http_http.karpenter_provisioner_crd data source
kubectl_file_documents.install data source
kubectl_file_documents.sync data source

Inputs

Name Description Type Default Required
cluster_admins List of EKS Cluster administrators list(string) n/a yes
cluster_enabled_log_types List of Cloudwatch EKS Control Plane log types to enable list(string)
[
"api",
"audit",
"authenticator",
"controllerManager",
"scheduler"
]
no
cluster_name EKS Cluster Name string n/a yes
default_instance_types Karpenter Provisioner EC2 instance types list(string)
[
"t3a.small",
"t3a.medium",
"m6a.large",
"m6a.xlarge",
"m6a.2xlarge",
"m6a.4xlarge",
"c6a.large",
"c6a.xlarge",
"c6a.2xlarge",
"c6a.4xlarge",
"r6a.large",
"r6a.xlarge",
"r6a.2xlarge",
"r6a.4xlarge"
]
no
flux_branch branch name string "master" no
flux_repository_name Flux github repository name string "infrastructure" no
github_owner Flux github owner string "DigitalMOB2" no
network Network CIDR to be used for VPC string n/a yes
node_instance_arch Karpenter Provisioner EC2 instance architecture list(string)
[
"amd64"
]
no
node_instance_capacity_types Karpenter Provisioner EC2 instance capacity type list(string)
[
"spot",
"on-demand"
]
no
production_instance_types Karpenter Production Provisioner EC2 instance types list(string)
[
"m6a.large",
"m6a.xlarge",
"m6a.2xlarge",
"m6a.4xlarge",
"c6a.large",
"c6a.xlarge",
"c6a.2xlarge",
"c6a.4xlarge",
"r6a.large",
"r6a.xlarge",
"r6a.2xlarge",
"r6a.4xlarge"
]
no
tags Map of tags for all resources map(string) n/a yes
vpc_name Do NOT use. Added just to provide compatibility for misc EKS cluster string "" no

Outputs

Name Description
cluster_certificate_authority_data n/a
cluster_endpoint n/a
cluster_id n/a
database_subnets_group_name n/a
eks_security_group_id n/a
flux_kms n/a

About

Highly opinionated Terraform EKS module

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages