{
  "id": "edge.24-10-21",
  "name": "edge.24-10-21",
  "summary": "Improves Karpenter node size management with instance type anti-affinity and maximum size limits, fixes EBS volume mount performance, and addresses issues with Cilium memory limits and Ingress NGINX on large CPU nodes.",
  "skip": false,
  "highlights": [
    "`instance_type_spread_required` renamed to `instance_type_anti_affinity_required` in all submodules",
    "New `max_node_memory_mb` and `max_node_cpu` limits in `kube_karpenter_node_pools` (defaults: 64GB/32 CPUs)",
    "Fixed slow EBS PV mount times — fix applies to new PVs only"
  ],
  "changes": [
    {
      "id": "91bc3f97-be05-4d8a-ba8c-2e3f7933d8f8",
      "type": "breaking_change",
      "summary": "In all Panfactum submodules, `instance_type_spread_required` has been renamed to `instance_type_anti_affinity_required` as TopologySpreadConstraints were replaced with AntiAffinity rules to work around"
    },
    {
      "id": "f60c8c59-f888-458a-9ab0-2ba475f25fa6",
      "type": "breaking_change",
      "summary": "Two new variables for [`kube_karpenter_node_pools`](/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_karpenter_node_pools), `max_node_memory_mb` and `max_node_cpu`, limit the maximum size of provisionable nodes. Default limits are 64GB of",
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_karpenter_node_pools",
          "summary": "Added max_node_memory_mb and max_node_cpu limits (64GB/32 CPUs default)"
        }
      ]
    },
    {
      "id": "03b6ae43-44ff-4c7f-ae43-de35ce3432ec",
      "type": "fix",
      "summary": "Prevents Karpenter from scheduling on bare metal instances, which have caused observed issues.",
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_karpenter_node_pools",
          "summary": "Bare metal instances excluded from provisioning"
        }
      ]
    },
    {
      "id": "dee4da3f-e52c-4208-93c2-72df5562eb92",
      "type": "fix",
      "summary": "Removes memory limits on the Cilium node agent in [`kube_cilium`](/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_cilium) as they could cause Cilium to fail on larger node",
      "references": [
        {
          "type": "issue-report",
          "summary": "Cilium memory limits cause failures on larger nodes",
          "link": "https://github.com/Panfactum/stack/issues/227"
        }
      ],
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_cilium",
          "summary": "Removed memory limits on node agent to prevent failures on large nodes"
        }
      ]
    },
    {
      "id": "ec7304e1-0121-4b1d-b516-715530107ef8",
      "type": "fix",
      "summary": "Upgrades [`kube_ingress_nginx`](/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_nginx_ingress) so it can run on nodes with a large number of CPU cores.",
      "references": [
        {
          "type": "issue-report",
          "summary": "Ingress NGINX fails on high-CPU-count nodes",
          "link": "https://github.com/Panfactum/stack/issues/227"
        }
      ],
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_ingress_nginx",
          "summary": "Fixed compatibility with high-CPU-count nodes"
        }
      ]
    },
    {
      "id": "03c08fcd-b7ab-478c-8b4b-8d825c56a81d",
      "type": "fix",
      "summary": "EBS-backed PVs with many large files now mount nearly instantly by adding the recommended remediation for a Bottlerocket OS issue.",
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_aws_ebs_csi",
          "summary": "Fixed slow mount times for PVs with many large files"
        }
      ]
    }
  ],
  "on_upgrade_path": false,
  "list_url": "/docs/changelog/edge.json",
  "llm_txt_url": "/docs/changelog/edge.24-10-21/llm.txt",
  "next": "/docs/changelog/edge.24-10-23.json",
  "prev": "/docs/changelog/edge.24-10-18.json"
}