Skip to content

Terraform template for a production ready EKS Cluster and ISTIO Service Mesh 🐳 πŸ“¦ πŸš€

License

Notifications You must be signed in to change notification settings

RaonySoruco/eks-with-istio

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

47 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Welcome to EKS with Istio Setup with Terraform πŸ‘‹

Version Documentation License: MIT Twitter: fidelissauro

Terraform Versions Compatibility

Terraform 0.13 Terraform 0.14 Terraform 0.15 Terraform 1.0.0 Terraform 1.1.0

topology

Components / Stack

Provider Version
Terraform 0.12+
Istio Base 1.11.0
Istio Ingress 1.11.0
Istio Egress 1.11.0
Istio Discovery 1.11.0
Cluster Autoscaler v1.21.0
Chaos Mesh
Descheduler
Kube State Metrics
Metrics Server (HPA)
Prometheus Stack

Requirements

Name Version
aws ~> 4.0
helm ~> 2.0
kubernetes ~> 2.0
tls ~> 2.0

Providers

Name Version
aws 4.10.0
helm 2.5.1
kubernetes 2.10.0
tls 2.2.0

Modules

No modules.

Resources

Name Type
aws_api_gateway_vpc_link.nlb resource
aws_eip.vpc_iep resource
aws_eks_addon.cni resource
aws_eks_addon.coredns resource
aws_eks_addon.csi_driver resource
aws_eks_addon.kubeproxy resource
aws_eks_cluster.eks_cluster resource
aws_eks_node_group.cluster resource
aws_iam_openid_connect_provider.eks resource
aws_iam_policy.aws_load_balancer_controller_policy resource
aws_iam_policy.cluster_autoscaler_policy resource
aws_iam_policy.csi_driver resource
aws_iam_policy_attachment.aws_load_balancer_controller_policy resource
aws_iam_policy_attachment.cluster_autoscaler resource
aws_iam_policy_attachment.csi_driver resource
aws_iam_role.alb_controller resource
aws_iam_role.cluster_autoscaler_role resource
aws_iam_role.eks_cluster_role resource
aws_iam_role.eks_nodes_roles resource
aws_iam_role_policy_attachment.cloudwatch resource
aws_iam_role_policy_attachment.cni resource
aws_iam_role_policy_attachment.ecr resource
aws_iam_role_policy_attachment.eks-cluster-cluster resource
aws_iam_role_policy_attachment.eks-cluster-service resource
aws_iam_role_policy_attachment.node resource
aws_iam_role_policy_attachment.ssm resource
aws_internet_gateway.gw resource
aws_kms_alias.eks resource
aws_kms_key.eks resource
aws_lb.ingress resource
aws_lb_listener.ingress_443 resource
aws_lb_listener.ingress_80 resource
aws_lb_target_group.http resource
aws_lb_target_group.https resource
aws_nat_gateway.nat resource
aws_route.nat_access resource
aws_route.public_internet_access resource
aws_route53_record.nlb resource
aws_route53_zone.private resource
aws_route_table.igw_route_table resource
aws_route_table.nat resource
aws_route_table_association.pods_1a resource
aws_route_table_association.pods_1b resource
aws_route_table_association.pods_1c resource
aws_route_table_association.private1a resource
aws_route_table_association.private1b resource
aws_route_table_association.private1c resource
aws_route_table_association.public_1a resource
aws_route_table_association.public_1b resource
aws_route_table_association.public_1c resource
aws_security_group.cluster_master_sg resource
aws_security_group.cluster_nodes_sg resource
aws_security_group_rule.cluster_ingress_https resource
aws_security_group_rule.nodeport resource
aws_security_group_rule.nodeport_master resource
aws_security_group_rule.nodeport_master_udp resource
aws_subnet.pods_subnet_1a resource
aws_subnet.pods_subnet_1b resource
aws_subnet.pods_subnet_1c resource
aws_subnet.private_subnet_1a resource
aws_subnet.private_subnet_1b resource
aws_subnet.private_subnet_1c resource
aws_subnet.public_subnet_1a resource
aws_subnet.public_subnet_1b resource
aws_subnet.public_subnet_1c resource
aws_vpc.cluster_vpc resource
aws_vpc_ipv4_cidr_block_association.pods resource
helm_release.alb_ingress_controller resource
helm_release.chaos_mesh resource
helm_release.cluster_autoscaler resource
helm_release.descheduler resource
helm_release.istio_base resource
helm_release.istio_discovery resource
helm_release.istio_egress resource
helm_release.istio_ingress resource
helm_release.istio_kiali resource
helm_release.istio_operator resource
helm_release.kube_state_metrics resource
helm_release.metrics_server resource
kubernetes_config_map.aws-auth resource
aws_caller_identity.current data source
aws_eks_cluster_auth.default data source
aws_iam_policy_document.aws_load_balancer_controller_assume_role data source
aws_iam_policy_document.aws_load_balancer_controller_policy data source
aws_iam_policy_document.cluster_autoscaler_policy data source
aws_iam_policy_document.cluster_autoscaler_role data source
aws_iam_policy_document.csi_driver data source
aws_iam_policy_document.eks_cluster_role data source
aws_iam_policy_document.eks_nodes_role data source
tls_certificate.eks data source

Inputs

Name Description Type Default Required
auto_scale_options n/a map
{
"desired": 6,
"max": 10,
"min": 4
}
no
aws_region n/a string "us-east-1" no
cluster_name n/a string "eks-cluster" no
cluster_private_zone n/a string "k8s.cluster" no
default_tags n/a map
{
"Environment": "prod",
"Foo": "Bar",
"Ping": "Pong"
}
no
enable_cross_zone_load_balancing n/a bool true no
grafana_kiali_virtual_service_host n/a string "grafana.kiali.k8s.raj.ninja" no
k8s_version n/a string "1.20" no
kiali_virtual_service_host n/a string "kiali.k8s.raj.ninja" no
nlb_ingress_enable_termination_protection n/a bool false no
nlb_ingress_internal n/a bool false no
nlb_ingress_type n/a string "network" no
nodes_instances_sizes n/a list
[
"t3.large"
]
no
proxy_protocol_v2 n/a bool false no

Outputs

Name Description
cluster_name n/a
istio_ingress_vpclink n/a

✨ Demo

Install

terraform apply

Usage

terraform apply 

Run tests

terraform plan

Author

πŸ‘€ Matheus Fidelis

🀝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page.

Show your support

Give a ⭐️ if this project helped you!

πŸ“ License

Copyright Β© 2021 Matheus Fidelis.
This project is MIT licensed.


This README was generated with ❀️ by readme-md-generator

About

Terraform template for a production ready EKS Cluster and ISTIO Service Mesh 🐳 πŸ“¦ πŸš€

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HCL 76.6%
  • Smarty 17.4%
  • Mustache 6.0%