# Panfactum Changelog — edge.24-10-18 > Replaces devenv with plain nix flakes for significantly improved performance, upgrades Cilium and AWS EBS CSI drivers, adds CDN support for core components, and fixes various resource utilization and git-related issues. ## Highlights - devenv replaced with plain nix flakes — macOS initial install now ~5 minutes (down from 45+) - `pf-get-version-hash` renamed to `pf-get-commit-hash` with updated argument format - `pgadmin4` removed from devShell — choose your own database client - Cilium upgraded to v1.16.3 — 75MB per-node memory reduction ## Breaking Changes - [devenv](https://devenv.sh/) has been removed in favor of plain [nix flakes](https://nixos.wiki/wiki/Flakes). The `flake.nix` syntax has changed and `devenv.nix` files can be - Impacts: configuration `flake.nix` — Syntax changed due to devenv removal; devenv.nix files can be deleted - `pf-get-version-hash` has been renamed to `pf-get-commit-hash` and now takes named rather than positional arguments. - Impacts: devshell `pf-get-commit-hash` — Renamed from pf-get-version-hash with named arguments - Removes `pgadmin4` from the devShell as it significantly increased build times. ## Additions - Adds `cdn_mode_enabled` to [`kube_vault`](https://panfactum.com/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_vault) and [`kube_authentik`](https://panfactum.com/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_authentik). - Impacts: iac-module `kube_vault` — Added cdn_mode_enabled input variable - Impacts: iac-module `kube_authentik` — Added cdn_mode_enabled input variable - Adds `image_tag_prefix` to [`wf_dockerfile_build`](https://panfactum.com/docs/edge/reference/infrastructure-modules/submodule/workflow/wf_dockerfile_build). - Impacts: iac-module `wf_dockerfile_build` — Added image_tag_prefix input variable ## Improvements - Upgrades [`kube_cilium`](https://panfactum.com/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_cilium) to v1.16.3, reducing per-node memory usage by 75MB and reducing bootstrapping errors. - Impacts: iac-module `kube_cilium` — Upgraded to v1.16.3 with 75MB per-node memory reduction - Upgrades [`kube_aws_ebs_csi`](https://panfactum.com/docs/edge/reference/infrastructure-modules/direct/kubernetes/kube_aws_ebs_csi) to v1.36 for improved node shutdown performance. - Impacts: iac-module `kube_aws_ebs_csi` — Upgraded to v1.36 for improved node shutdown performance - Updates [`wf_dockerfile_build`](https://panfactum.com/docs/edge/reference/infrastructure-modules/submodule/workflow/wf_dockerfile_build) to support 10 concurrent image builds per module rather than just one. - Impacts: iac-module `wf_dockerfile_build` — Now supports 10 concurrent image builds per module ## Fixes - Fixed scheduling constraint bugs that resulted in less-than-optimal resource utilization, especially in tiny clusters. - Reference (issue-report): [Scheduling constraint bugs causing poor resource utilization](https://github.com/Panfactum/stack/issues/167) - Fixed an issue where `pf_stack_version` could not be a commit hash. - Fixed an issue where `pf-wf-git-checkout` would fail when given a branch name as a git ref. - Impacts: devshell `pf-wf-git-checkout` — Fixed failure when using branch names as git refs ## Upgrade Instructions ## Migrate from devenv to Plain Nix Flakes [devenv](https://devenv.sh/) has been removed from the Panfactum Stack in favor of plain [nix flakes](https://nixos.wiki/wiki/Flakes). This brings significantly improved performance on macOS (initial installation ~5 minutes, down from 45+) and opens the shell instantly after initial setup. ### Update `flake.nix` **Before:** ```nix { inputs = { pkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; panfactum.url = "github:panfactum/stack/__PANFACTUM_VERSION_EDGE__"; }; outputs = { self, panfactum, pkgs, ... } @ inputs: { devShells = panfactum.lib.mkDevShells { inherit pkgs; modules = [ (import ./devenv.nix )]; }; }; } ``` **After:** ```nix { inputs = { flake-utils.url = "github:numtide/flake-utils"; panfactum.url = "github:panfactum/stack/__PANFACTUM_VERSION_EDGE__"; }; outputs = { panfactum, flake-utils, ... }@inputs: flake-utils.lib.eachDefaultSystem (system: { devShell = panfactum.lib.${system}.mkDevShell { }; } ); } ``` ### Remove devenv Files 1. Remove your `devenv.nix` file. 2. Remove the `.devenv` directory. For alternatives to devenv functionality using the new devShell paradigm, see [our documentation.](https://panfactum.com/docs/main/guides/development-shell/customizing) ### Renamed Command `pf-get-version-hash` has been renamed to `pf-get-commit-hash`. It now takes named rather than positional arguments. Update any scripts or CI configurations that use this command. ## Related Resources - [JSON Data](https://panfactum.com/docs/changelog/edge.24-10-18.json): Machine-readable data - [Channel Release List](https://panfactum.com/docs/changelog/edge.json): All releases in this channel