{
  "id": "edge.24-06-20",
  "name": "edge.24-06-20",
  "summary": "Introduces an alternative Kubernetes scheduler that significantly improves pod bin-packing for 25-33% cost reduction, adds integrated descheduling for underutilized nodes, and fixes Karpenter deployment issues.",
  "skip": false,
  "highlights": [
    "New [`kube_scheduler`](/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_scheduler) for 25-33% node cost reduction via improved bin-packing",
    "New `panfactum_scheduler_enabled` input (default `false`) to opt in to the new scheduler per module",
    "Automatic descheduling of pods from low-utilization nodes when scheduler is enabled"
  ],
  "changes": [
    {
      "id": "8ef42b21-1a54-420d-9fc8-0acc15a64302",
      "type": "addition",
      "summary": "Adds [`kube_scheduler`](/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_scheduler), an alternative Kubernetes scheduler that improves pod bin-packing on nodes. Tests show an estimated 25-33% reduction in node",
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_scheduler",
          "summary": "New bin-packing scheduler for node cost reduction"
        }
      ]
    },
    {
      "id": "404221c2-c447-441c-84c3-b5f8a28d1f96",
      "type": "addition",
      "summary": "Adds `panfactum_scheduler_enabled` (default: `false`) input to most infrastructure modules. When enabled, uses the scheduler provided by [`kube_scheduler`](/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_scheduler) instead of the",
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_scheduler",
          "summary": "New panfactum_scheduler_enabled opt-in input"
        }
      ]
    },
    {
      "id": "fd54c0cb-f11f-4a00-8337-52549acc5624",
      "type": "addition",
      "summary": "When `panfactum_scheduler_enabled` is `true`, the [`kube_descheduler`](/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_descheduler) will automatically remove pods from low-utilization nodes for re-scheduling.",
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_descheduler",
          "summary": "Auto-evicts pods from low-utilization nodes"
        }
      ]
    },
    {
      "id": "64999c36-3398-411e-b0ac-9f6c97817d52",
      "type": "fix",
      "summary": "Addresses a bug in the previous release that left [`kube_karpenter`](/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_karpenter) undeployable.",
      "impacts": [
        {
          "type": "iac-module",
          "component": "kube_karpenter",
          "summary": "Fix for deployment failure from previous release"
        }
      ]
    },
    {
      "id": "19a9fb07-b9d7-4d00-9457-b050b40988e2",
      "type": "fix",
      "summary": "Addresses an issue where nodes were limited to a hard cap of 29 pods."
    },
    {
      "id": "045d305c-f3bc-4ce9-bcb9-a9bc20dc17b2",
      "type": "fix",
      "summary": "Configures Kubernetes nodes to use a fixed amount of system overhead rather than one that scales with node size."
    }
  ],
  "on_upgrade_path": false,
  "list_url": "/docs/changelog/edge.json",
  "llm_txt_url": "/docs/changelog/edge.24-06-20/llm.txt",
  "next": "/docs/changelog/edge.24-07-01.json",
  "prev": "/docs/changelog/edge.24-06-13.json"
}