Name | Version |
---|---|
aws | >= 5.0 |
helm | ~> 2.0 |
kubectl | ~> 1.14 |
kubernetes | ~> 2.0 |
tls | ~> 3.1.0 |
Name | Version |
---|---|
aws | 5.61.0 |
helm | 2.14.0 |
kubectl | 1.14.0 |
kubernetes | 2.31.0 |
tls | 3.1.0 |
No modules.
Name | Description | Type | Default | Required |
---|---|---|---|---|
addon_cni_version | Specifies the version of the AWS VPC CNI (Container Network Interface) plugin to use, which manages the network interfaces for pod networking. | string |
"v1.18.3-eksbuild.2" |
no |
addon_coredns_version | Defines the version of CoreDNS to use, a DNS server/forwarder that is integral to internal Kubernetes DNS resolution. | string |
"v1.11.3-eksbuild.1" |
no |
addon_csi_version | Indicates the version of the Container Storage Interface (CSI) driver to use for managing storage volumes in Kubernetes. | string |
"v1.35.0-eksbuild.1" |
no |
addon_kubeproxy_version | Sets the version of Kubeproxy to be used, which handles Kubernetes network services like forwarding the requests to correct containers. | string |
"v1.31.0-eksbuild.5" |
no |
argo_rollouts_toggle | Enables the installation of Argo Rollouts, providing advanced deployment strategies like Canary and Blue-Green deployments in Kubernetes. | bool |
true |
no |
argo_rollouts_virtual_service_host | The hostname for the Argo Rollouts virtual service, used for advanced deployment capabilities like canary and blue-green deployments in Kubernetes. | string |
"argo-rollouts.k8s.raj.ninja" |
no |
auto_scale_options | Configuration for the EKS cluster auto-scaling. It includes the minimum (min), maximum (max), and desired (desired) number of worker nodes. | map |
{ |
no |
aws_region | AWS region where the EKS cluster will be deployed. This should be set to the region where you want your Kubernetes resources to reside. | string |
"us-east-1" |
no |
chaos_mesh_toggle | Determines whether to install Chaos Mesh, a cloud-native Chaos Engineering platform that orchestrates chaos experiments on Kubernetes environments. | bool |
false |
no |
cluster_autoscaler_toggle | Enable or disable the Cluster Autoscaler installation. When true, Cluster Autoscaler is installed to automatically adjust the number of nodes in the cluster. | bool |
false |
no |
cluster_name | The name of the Amazon EKS cluster. This is a unique identifier for your EKS cluster within the AWS region. | string |
"eks-cluster" |
no |
cluster_private_zone | The private DNS zone name for the EKS cluster in AWS Route53. This zone is used for internal DNS resolution within the cluster. | string |
"k8s.cluster" |
no |
default_tags | A map of default tags to apply to all resources. These tags can help with identifying and organizing resources within the AWS environment. | map(string) |
{ |
no |
descheduler_toggle | Controls the installation of the Descheduler, a tool to balance and optimize the distribution of Pods across the cluster for improved efficiency. | bool |
false |
no |
enable_cross_zone_load_balancing | Controls whether cross-zone load balancing is enabled for the Network Load Balancer, allowing even traffic distribution across all zones. | bool |
false |
no |
enable_jaeger | Flag to create jaeger standalone stack | bool |
false |
no |
enable_managed_prometheus | Determines if the managed Prometheus service should be enabled. Managed Prometheus provides a fully managed monitoring service compatible with Prometheus. | bool |
false |
no |
enable_prometheus_stack | n/a | bool |
true |
no |
enable_vpc_link | Create VPC Link associated to Network Load Balancing | bool |
false |
no |
grafana_virtual_service_host | The hostname for the Grafana virtual service, used in Istio routing. This host is used to access Grafana dashboards for monitoring metrics. | string |
"grafana.k8s.raj.ninja" |
no |
istio_ingress_max_pods | The maximum number of pods to scale up for the Istio ingress gateway. This limits the resources used and manages the scaling behavior. | number |
9 |
no |
istio_ingress_min_pods | The minimum number of pods to maintain for the Istio ingress gateway. This ensures basic availability and load handling. | number |
3 |
no |
jaeger_virtual_service_host | The hostname for the Jaeger virtual service, used for tracing and monitoring microservices within the Istio service mesh. | string |
"jaeger.k8s.raj.ninja" |
no |
k8s_version | The version of Kubernetes to use for the EKS cluster. This version should be compatible with the AWS EKS service and other infrastructure components. | string |
"1.31" |
no |
karpenter_availability_zones | A list of AWS availability zones where Karpenter should launch nodes. These zones should be in the same region as the EKS cluster. | list(any) |
[ |
no |
karpenter_capacity_type | Defines the capacity types for provisioning instances in the cluster, such as 'spot' or 'on_demand', offering cost-saving options or consistent availability respectively. | list(any) |
[ |
no |
karpenter_ec2_node_family | n/a | string |
"Bottlerocket" |
no |
karpenter_instance_family | Defines a list of EC2 instance families to be considered by Karpenter for node provisioning. Instance families like 'c6' and 'c5' offer different compute capabilities. | list(any) |
[ |
no |
karpenter_instance_sizes | Specifies a list of instance sizes within the chosen instance families to allow diversity in the provisioned nodes by Karpenter. | list(any) |
[ |
no |
karpenter_toggle | Determines whether Karpenter is enabled for the EKS cluster. Karpenter is an open-source auto-scaler for Kubernetes clusters. | bool |
true |
no |
keda_toggle | Activates the installation of KEDA (Kubernetes Event-Driven Autoscaling), which adds event-driven scaling capabilities to Kubernetes workloads. | bool |
true |
no |
kiali_virtual_service_host | The hostname for the Kiali virtual service, a part of Istio's service mesh visualization. It provides insights into the mesh topology and performance. | string |
"kiali.k8s.raj.ninja" |
no |
managed_grafana_authentication_providers | A list of authentication providers for managed Grafana. For example, 'SAML' can be used for integrating with identity providers, ensuring secure and centralized user management. | list(string) |
[ |
no |
managed_grafana_datasources | Specifies the data sources that managed Grafana can access. Includes options like 'CLOUDWATCH', 'PROMETHEUS', and 'XRAY', providing a wide range of data for comprehensive monitoring solutions. | list(string) |
[ |
no |
managed_grafana_notification_destinations | Lists the notification channels supported by managed Grafana. For instance, 'SNS' allows Grafana to send alerts and notifications through AWS Simple Notification Service. | list(string) |
[ |
no |
managed_grafana_permission_type | Defines the permission model for managed Grafana. 'SERVICE_MANAGED' allows AWS to manage permissions, simplifying the setup and management of Grafana. | string |
"SERVICE_MANAGED" |
no |
managed_prometheus_access_type | Specifies the access type for managed Prometheus. 'CURRENT_ACCOUNT' limits access to the current AWS account, ensuring isolated and secure access to the monitoring data. | string |
"CURRENT_ACCOUNT" |
no |
nlb_ingress_enable_termination_protection | Determines if termination protection is enabled for the Network Load Balancer, preventing accidental deletion. | bool |
false |
no |
nlb_ingress_internal | Indicates whether the Network Load Balancer (NLB) for the EKS cluster should be internal, restricting access to within the AWS network. | bool |
false |
no |
nlb_ingress_type | Specifies the type of ingress to be used, such as 'network', determining how the NLB handles incoming traffic to the EKS cluster. | string |
"network" |
no |
node_termination_handler_toggle | Enables the AWS Node Termination Handler, which ensures that Kubernetes workloads are gracefully handled during EC2 instance terminations or disruptions. | bool |
false |
no |
nodes_instances_sizes | A list of EC2 instance types to use for the EKS worker nodes. These instance types should balance between cost, performance, and resource requirements for your workload. | list |
[ |
no |
proxy_protocol_v2 | Enables or disables Proxy Protocol v2 on the Network Load Balancer, used for preserving client IP addresses and other connection information. | bool |
false |
no |
Name | Description |
---|---|
cluster_name | n/a |
istio_ingress_vpclink | n/a |
✨ Demo
terraform apply
terraform apply
terraform plan
👤 Matheus Fidelis
- Website: https://raj.ninja
- Twitter: @fidelissauro
- Github: @msfidelis
- LinkedIn: @msfidelis
Contributions, issues and feature requests are welcome!
Feel free to check issues page.
Give a ⭐️ if this project helped you!
Copyright © 2021 Matheus Fidelis.
This project is MIT licensed.
_This README was generated with ❤️ by readme-md-generator_