From f08e20529fe3395a522fd51ebcf8266d73cad973 Mon Sep 17 00:00:00 2001 From: nerahou Date: Tue, 14 May 2024 10:07:05 +0200 Subject: [PATCH] Calculate max pods --- cluster_connect.sh.tpl | 18 ++++++++++++++++++ node_group_advanced.tf | 2 ++ 2 files changed, 20 insertions(+) diff --git a/cluster_connect.sh.tpl b/cluster_connect.sh.tpl index 387fcec..5668b99 100644 --- a/cluster_connect.sh.tpl +++ b/cluster_connect.sh.tpl @@ -1,3 +1,21 @@ +# Determine instance type +INSTANCE_TYPE=$(TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ +&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/instance-type) + +# Calculate max pods +if [[ "${use_max_pods}" = "false" ]]; then + KUBELET_CONFIG=/etc/kubernetes/kubelet/kubelet-config.json + set +o pipefail + CNI_VERSION=$(echo "${cni_version}" | sed 's/^v//') + MAX_PODS=$(/etc/eks/max-pods-calculator.sh --instance-type $INSTANCE_TYPE --cni-version $CNI_VERSION --cni-custom-networking-enabled) + set -o pipefail + if [[ -n "$MAX_PODS" ]]; then + echo "$(jq ".maxPods=$MAX_PODS" $KUBELET_CONFIG)" > $KUBELET_CONFIG + else + echo "Not able to determine maxPods for $INSTANCE_TYPE. Not setting max pods for kubelet" + fi +fi + /etc/eks/bootstrap.sh ${cluster_name} \ --use-max-pods ${use_max_pods} \ --kubelet-extra-args '--node-labels=${node_labels} --register-with-taints=${node_taints} ${kubelet_extra_args}' \ diff --git a/node_group_advanced.tf b/node_group_advanced.tf index bc2d466..658f558 100644 --- a/node_group_advanced.tf +++ b/node_group_advanced.tf @@ -101,6 +101,7 @@ resource "aws_launch_template" "quortex_launch_tpl" { base64_cluster_ca = aws_eks_cluster.quortex.certificate_authority[0].data api_server_url = aws_eks_cluster.quortex.endpoint kubelet_extra_args = lookup(each.value, "kubelet_extra_args", "") + # define the k8s node taints (passed to --kubelet-extra-args) node_taints = length(each.value.taints) == 0 ? "" : join(",", [for k, v in lookup(each.value, "taints", {}) : "${k}=${v}"]) # define the k8s node labels (passed to --kubelet-extra-args) @@ -121,6 +122,7 @@ resource "aws_launch_template" "quortex_launch_tpl" { : "${k}=${v}"] ) use_max_pods = var.node_use_max_pods + cni_version = try(var.cluster_addons["vpc-cni"].version, "") } ) }