# Panfactum Changelog — edge.24-09-04 > Standardizes naming conventions across modules, enables core Panfactum features by default, improves node scheduling with controller taints, and fixes EBS volume detachment issues to prevent pod rescheduling delays. ## Highlights - Extensive variable renames in workload submodules — `ready_check_*` → `readiness_probe_*`, `image`/`image_version` split, and more - Core features (`spot_nodes_enabled`, `arm_nodes_enabled`, `vpa_enabled`, `panfactum_scheduler_enabled`) now enabled by default - EKS Node Group nodes now tainted with `controller=true:NoSchedule` — add `controller_nodes_enabled` where needed - Remove BuildKit StatefulSets before applying this release ## Breaking Changes - Before applying this release, the `buildkit-amd64` and `buildkit-arm64` StatefulSets in the `buildkit` namespace must be removed if [`kube_buildkit`](https://panfactum.com/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_buildkit) is deployed. - Impacts: iac-module `kube_buildkit` — StatefulSets must be removed before applying this release - Extensive variable renames across workload submodules including `kube_deployment`, `kube_stateful_set`, `kube_cron_job`, `kube_pod`, `wf_spec`, and `kube_workload_utility`. See upgrade instructions for the full - Impacts: iac-module `kube_deployment` — Multiple input variables renamed - Impacts: iac-module `kube_stateful_set` — Multiple input variables renamed - Impacts: iac-module `kube_cron_job` — Multiple input variables renamed - Impacts: iac-module `kube_pod` — Multiple input variables renamed - Impacts: iac-module `wf_spec` — Multiple input variables renamed - Impacts: iac-module `kube_workload_utility` — Multiple input variables renamed - The `enhanced_ha_enabled` input has been replaced with more granular tuning knobs in all submodules including `kube_pg_cluster`, `kube_redis_sentinel`, `kube_vault_proxy`, `kube_argo_event_bus`, and - Impacts: iac-module `kube_pg_cluster` — Replaced enhanced_ha_enabled with granular HA controls - Impacts: iac-module `kube_redis_sentinel` — Replaced enhanced_ha_enabled with granular HA controls - Impacts: iac-module `kube_vault_proxy` — Replaced enhanced_ha_enabled with granular HA controls - Impacts: iac-module `kube_argo_event_bus` — Replaced enhanced_ha_enabled with granular HA controls - Impacts: iac-module `kube_argo_event_source` — Replaced enhanced_ha_enabled with granular HA controls - Nodes managed by EKS Node Groups are now tainted with `controller=true:NoSchedule`. Most workload submodules have a new `controller_nodes_enabled` input to - Several flags are now enabled by default in workload submodules: `spot_nodes_enabled`, `arm_nodes_enabled`, `vpa_enabled`, `panfactum_scheduler_enabled`, and `pull_through_cache_enabled`. ## Additions - Adds built-in default [downward-api](https://kubernetes.io/docs/concepts/workloads/pods/downward-api/) integrations in all workload submodules. - All mounted ConfigMaps and Secrets in workload submodules are now mounted as executable to make it easier to mount scripts. ## Fixes - Updates Karpenter and EBS CSI Controller to prevent remaining edge cases where nodes were terminated prior to EBS volumes being - Impacts: iac-module `kube_karpenter` — Updated to prevent premature node termination before EBS detach - Impacts: iac-module `kube_aws_ebs_csi` — Updated to prevent premature node termination before EBS detach - Removes the `RemoveDuplicates` strategy in [`kube_descheduler`](https://panfactum.com/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_descheduler) to allow scheduling multiple pods of the same controller on the same node when - Impacts: iac-module `kube_descheduler` — Removed RemoveDuplicates strategy for flexible pod scheduling - Reference (issue-report): [RemoveDuplicates strategy prevents flexible pod scheduling](https://github.com/Panfactum/stack/issues/123) ## Upgrade Instructions ## Variable Renames in Workload Submodules The following variable renames have been applied across [`kube_deployment`](https://panfactum.com/docs/edge/reference/infrastructure-modules/submodule/kubernetes/kube_deployment), [`kube_stateful_set`](https://panfactum.com/docs/edge/reference/infrastructure-modules/submodule/kubernetes/kube_stateful_set), [`kube_cron_job`](https://panfactum.com/docs/edge/reference/infrastructure-modules/submodule/kubernetes/kube_cron_job), [`kube_pod`](https://panfactum.com/docs/main/reference/infrastructure-modules/submodule/kubernetes/kube_pod), [`wf_spec`](https://panfactum.com/docs/edge/reference/infrastructure-modules/submodule/workflow/wf_spec), and [`kube_workload_utility`](https://panfactum.com/docs/edge/reference/infrastructure-modules/submodule/kubernetes/kube_workload_utility): | Old Name | New Name | | -------------------------------------- | --------------------------------------------------- | | `ready_check_*` | `readiness_probe_*` | | `liveness_check_*` | `liveness_probe_*` | | `image` / `image_version` | `image_registry` / `image_repository` / `image_tag` | | `secrets` | `common_secrets` | | `pod_annotations` | `extra_pod_annotations` | | `readonly` | `read_only` | | `read_only_root_fs` | `read_only` | | `instance_type_anti_affinity_required` | `instance_type_spread_required` | | `topology_spread_enabled` | `az_spread_preferred` | | `topology_spread_required` | `az_spread_required` | | `zone_anti_affinity_required` | `az_anti_affinity_required` | In [`kube_pg_cluster`](https://panfactum.com/docs/edge/reference/infrastructure-modules/submodule/kubernetes/kube_pg_cluster) and [`kube_redis_sentinel`](https://panfactum.com/docs/edge/reference/infrastructure-modules/submodule/kubernetes/kube_redis_sentinel): | Old Name | New Name | | ----------------------------- | ------------------------- | | `spot_instances_enabled` | `spot_nodes_enabled` | | `arm_instances_enabled` | `arm_nodes_enabled` | | `burstable_instances_enabled` | `burstable_nodes_enabled` | In [`kube_constants`](https://panfactum.com/docs/edge/reference/infrastructure-modules/submodule/kubernetes/kube_constants): | Old Name | New Name | | ------------------------- | ---------------------------- | | `panfactum_image` | `panfactum_image_repository` | | `panfactum_image_version` | `panfactum_image_tag` | ## Removed Inputs The following inputs have been removed from workload submodules as they are no longer recommended: - `prefer_spot_nodes_enabled` - `prefer_burstable_nodes_enabled` - `prefer_arm_nodes_enabled` - `az_anti_affinity_preferred` (use `az_spread_preferred` instead) ## `enhanced_ha_enabled` Removed from Submodules The `enhanced_ha_enabled` input has been replaced with more granular tuning knobs in the following submodules: `kube_pg_cluster`, `kube_redis_sentinel`, `kube_vault_proxy`, `kube_argo_event_bus`, and `kube_argo_event_source`. ## Controller Node Taints Nodes managed by EKS Node Groups are now tainted with `controller=true:NoSchedule`. Most workload submodules have a new `controller_nodes_enabled` input to allow your workloads to tolerate this taint if desired. ## Default Flag Changes The following flags are now enabled by default in workload submodules: - `spot_nodes_enabled` - `arm_nodes_enabled` - `vpa_enabled` - `panfactum_scheduler_enabled` - `pull_through_cache_enabled` Additionally in `kube_deployment`: `az_spread_preferred` is now enabled by default. In `kube_stateful_set`: `az_spread_required` and `instance_type_spread_required` are now enabled by default. ## Remove BuildKit StatefulSets Before applying this release, the `buildkit-amd64` and `buildkit-arm64` StatefulSets in the `buildkit` namespace must be removed if [`kube_buildkit`](https://panfactum.com/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_buildkit) is deployed. ## Related Resources - [JSON Data](https://panfactum.com/docs/changelog/edge.24-09-04.json): Machine-readable data - [Channel Release List](https://panfactum.com/docs/changelog/edge.json): All releases in this channel