Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ module "karpenter" {
| <a name="input_cluster_security_group_name"></a> [cluster\_security\_group\_name](#input\_cluster\_security\_group\_name) | Cluster security group name | `string` | `null` | no |
| <a name="input_cluster_service_ipv4_cidr"></a> [cluster\_service\_ipv4\_cidr](#input\_cluster\_service\_ipv4\_cidr) | The CIDR block to assign Kubernetes service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks | `string` | `null` | no |
| <a name="input_cluster_service_ipv6_cidr"></a> [cluster\_service\_ipv6\_cidr](#input\_cluster\_service\_ipv6\_cidr) | The CIDR block to assign Kubernetes pod and service IP addresses from if `ipv6` was specified when the cluster was created. Kubernetes assigns service addresses from the unique local address range (fc00::/7) because you can't specify a custom IPv6 CIDR block when you create the cluster | `string` | `null` | no |
| <a name="input_cluster_version"></a> [cluster\_version](#input\_cluster\_version) | EKS Cluster Version | `string` | `"1.31"` | no |
| <a name="input_cluster_version"></a> [cluster\_version](#input\_cluster\_version) | EKS Cluster Version | `string` | `"1.32"` | no |
| <a name="input_create_aws_auth_configmap"></a> [create\_aws\_auth\_configmap](#input\_create\_aws\_auth\_configmap) | Determines whether to create the aws-auth configmap. NOTE - this is only intended for scenarios where the configmap does not exist (i.e. - when using only self-managed node groups). Most users should use `manage_aws_auth_configmap` | `bool` | `false` | no |
| <a name="input_create_aws_observability_ns"></a> [create\_aws\_observability\_ns](#input\_create\_aws\_observability\_ns) | Whether to create AWS Observability Namespace. | `bool` | `true` | no |
| <a name="input_create_aws_observability_ns_for_karpenter"></a> [create\_aws\_observability\_ns\_for\_karpenter](#input\_create\_aws\_observability\_ns\_for\_karpenter) | Create aws-observability namespace flag | `bool` | `false` | no |
Expand Down Expand Up @@ -307,11 +307,12 @@ module "karpenter" {
| <a name="input_force_imdsv2"></a> [force\_imdsv2](#input\_force\_imdsv2) | Force IMDSv2 metadata server. | `bool` | `true` | no |
| <a name="input_force_irsa"></a> [force\_irsa](#input\_force\_irsa) | Force usage of IAM Roles for Service Account | `bool` | `true` | no |
| <a name="input_iam_role_additional_policies"></a> [iam\_role\_additional\_policies](#input\_iam\_role\_additional\_policies) | Additional policies to be added to the IAM role | `set(string)` | `[]` | no |
| <a name="input_karpenter_chart_version"></a> [karpenter\_chart\_version](#input\_karpenter\_chart\_version) | Chart version for Karpenter | `string` | `"1.2.1"` | no |
| <a name="input_karpenter_crd_chart_version"></a> [karpenter\_crd\_chart\_version](#input\_karpenter\_crd\_chart\_version) | Chart version for Karpenter CRDs same version as `karpenter_chart_version` | `string` | `"1.2.1"` | no |
| <a name="input_karpenter_chart_version"></a> [karpenter\_chart\_version](#input\_karpenter\_chart\_version) | Chart version for Karpenter | `string` | `"1.3.3"` | no |
| <a name="input_karpenter_crd_chart_version"></a> [karpenter\_crd\_chart\_version](#input\_karpenter\_crd\_chart\_version) | Chart version for Karpenter CRDs same version as `karpenter_chart_version` | `string` | `"1.3.3"` | no |
| <a name="input_karpenter_default_subnet_selector_tags"></a> [karpenter\_default\_subnet\_selector\_tags](#input\_karpenter\_default\_subnet\_selector\_tags) | Subnet selector tags for Karpenter default node class | `map(string)` | <pre>{<br/> "kubernetes.io/role/internal-elb": "1"<br/>}</pre> | no |
| <a name="input_karpenter_ephemeral_volume_size"></a> [karpenter\_ephemeral\_volume\_size](#input\_karpenter\_ephemeral\_volume\_size) | Ephemeral volume size for Karpenter node groups | `string` | `"50Gi"` | no |
| <a name="input_karpenter_nodeclasses"></a> [karpenter\_nodeclasses](#input\_karpenter\_nodeclasses) | List of nodetemplate maps | <pre>list(object({<br/> nodeclass_name = string<br/> karpenter_subnet_selector_maps = list(map(any))<br/> karpenter_security_group_selector_maps = list(map(any))<br/> karpenter_ami_selector_maps = list(map(any))<br/> karpenter_node_role = string<br/> karpenter_node_tags_map = map(string)<br/> karpenter_node_user_data = string<br/> karpenter_node_metadata_options = map(any)<br/> karpenter_block_device_mapping = list(object({<br/> deviceName = string<br/> ebs = object({<br/> encrypted = bool<br/> volumeSize = string<br/> volumeType = string<br/> kmsKeyID = optional(string)<br/> deleteOnTermination = bool<br/> })<br/> }))<br/> }))</pre> | `[]` | no |
| <a name="input_karpenter_nodeclass_kubelet_clusterdns_ips"></a> [karpenter\_nodeclass\_kubelet\_clusterdns\_ips](#input\_karpenter\_nodeclass\_kubelet\_clusterdns\_ips) | Cluster DNS IPs for Karpenter node classes | `list(string)` | `[]` | no |
| <a name="input_karpenter_nodeclasses"></a> [karpenter\_nodeclasses](#input\_karpenter\_nodeclasses) | List of nodetemplate maps | <pre>list(object({<br/> nodeclass_name = string<br/> karpenter_subnet_selector_maps = list(map(any))<br/> karpenter_security_group_selector_maps = list(map(any))<br/> karpenter_ami_selector_maps = list(map(any))<br/> karpenter_node_role = string<br/> karpenter_node_tags_map = map(string)<br/> karpenter_node_user_data = string<br/> karpenter_node_metadata_options = map(any)<br/> karpenter_node_kubelet_yaml = map(any)<br/> karpenter_block_device_mapping = list(object({<br/> deviceName = string<br/> ebs = object({<br/> encrypted = bool<br/> volumeSize = string<br/> volumeType = string<br/> kmsKeyID = optional(string)<br/> deleteOnTermination = bool<br/> })<br/> }))<br/> }))</pre> | `[]` | no |
| <a name="input_karpenter_nodepools"></a> [karpenter\_nodepools](#input\_karpenter\_nodepools) | List of Provisioner maps | <pre>list(object({<br/> nodepool_name = string<br/> nodeclass_name = string<br/> karpenter_nodepool_node_labels = map(string)<br/> karpenter_nodepool_annotations = map(string)<br/> karpenter_nodepool_node_taints = list(map(string))<br/> karpenter_nodepool_startup_taints = list(map(string))<br/> karpenter_requirements = list(object({<br/> key = string<br/> operator = string<br/> values = list(string)<br/> })<br/> )<br/> karpenter_nodepool_disruption = object({<br/> consolidation_policy = string<br/> consolidate_after = string<br/> expire_after = string<br/> })<br/> karpenter_nodepool_disruption_budgets = list(map(any))<br/> karpenter_nodepool_weight = number<br/> }))</pre> | <pre>[<br/> {<br/> "karpenter_nodepool_annotations": {},<br/> "karpenter_nodepool_disruption": {<br/> "consolidate_after": "10m",<br/> "consolidation_policy": "WhenEmptyOrUnderutilized",<br/> "expire_after": "168h"<br/> },<br/> "karpenter_nodepool_disruption_budgets": [<br/> {<br/> "nodes": "10%"<br/> }<br/> ],<br/> "karpenter_nodepool_node_labels": {<br/> "bottlerocket.aws/updater-interface-version": "2.0.0"<br/> },<br/> "karpenter_nodepool_node_taints": [],<br/> "karpenter_nodepool_startup_taints": [],<br/> "karpenter_nodepool_weight": 10,<br/> "karpenter_requirements": [<br/> {<br/> "key": "karpenter.k8s.aws/instance-category",<br/> "operator": "In",<br/> "values": [<br/> "t",<br/> "m"<br/> ]<br/> },<br/> {<br/> "key": "karpenter.k8s.aws/instance-cpu",<br/> "operator": "In",<br/> "values": [<br/> "2",<br/> "4"<br/> ]<br/> },<br/> {<br/> "key": "karpenter.k8s.aws/instance-memory",<br/> "operator": "Gt",<br/> "values": [<br/> "2048"<br/> ]<br/> },<br/> {<br/> "key": "karpenter.k8s.aws/instance-generation",<br/> "operator": "Gt",<br/> "values": [<br/> "2"<br/> ]<br/> },<br/> {<br/> "key": "karpenter.sh/capacity-type",<br/> "operator": "In",<br/> "values": [<br/> "on-demand"<br/> ]<br/> },<br/> {<br/> "key": "kubernetes.io/arch",<br/> "operator": "In",<br/> "values": [<br/> "amd64"<br/> ]<br/> },<br/> {<br/> "key": "kubernetes.io/os",<br/> "operator": "In",<br/> "values": [<br/> "linux"<br/> ]<br/> }<br/> ],<br/> "nodeclass_name": "default",<br/> "nodepool_name": "default"<br/> }<br/>]</pre> | no |
| <a name="input_karpenter_pod_resources"></a> [karpenter\_pod\_resources](#input\_karpenter\_pod\_resources) | Karpenter Pod Resource | <pre>object({<br/> requests = object({<br/> cpu = string<br/> memory = string<br/> })<br/> limits = object({<br/> cpu = string<br/> memory = string<br/> })<br/> })</pre> | <pre>{<br/> "limits": {<br/> "cpu": "1",<br/> "memory": "2Gi"<br/> },<br/> "requests": {<br/> "cpu": "1",<br/> "memory": "2Gi"<br/> }<br/>}</pre> | no |
| <a name="input_karpenter_security_group_selector_terms_type"></a> [karpenter\_security\_group\_selector\_terms\_type](#input\_karpenter\_security\_group\_selector\_terms\_type) | Type of terms to use in the security group selector | `string` | `"tags"` | no |
Expand Down
3 changes: 3 additions & 0 deletions karpenter.tf
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,9 @@ locals {
}
}
]
karpenter_node_kubelet = {
clusterDNS = var.karpenter_nodeclass_kubelet_clusterdns_ips
}
},
])

Expand Down
8 changes: 8 additions & 0 deletions main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -170,10 +170,18 @@ module "eks" {
memory = "256M"
}
}
autoScaling = {
enabled = true
}
})
} : {
most_recent = true
resolve_conflicts_on_update = "OVERWRITE"
configuration_values = jsonencode({
autoScaling = {
enabled = true
}
})
}
eks-pod-identity-agent = var.cluster_ip_family == "ipv4" ? {
most_recent = true
Expand Down
Loading
Loading