karpenter_arch
Description
The karpenter_arch parameter sets the CPU architecture for Karpenter workload nodes.
Default Value
The default value is empty (auto-detected from node_type).
Setting the Parameter
$ convox rack params set karpenter_arch=arm64 -r rackName
Updating parameters... OK
For mixed-architecture workloads:
$ convox rack params set karpenter_arch=amd64,arm64 -r rackName
Updating parameters... OK
Additional Information
- Validation: Must be
amd64,arm64, oramd64,arm64. Empty is the initial default (auto-detect), not a settable value. - Write the mixed value with no spaces:
amd64,arm64. - When unset, Karpenter auto-detects the architecture from the Rack's
node_typeinstance family, so enabling Karpenter on an existing Rack keeps the architecture that Rack was already running and this parameter does not need to be set. Convox Console Karpenter install templates pre-set the parameters a Karpenter Rack needs. - When both architectures are specified, Karpenter selects the optimal architecture based on pod requirements and instance availability.
- Once set, the parameter cannot be cleared back to auto-detect; set it explicitly to the desired value instead.
- With
karpenter_arch=amd64,arm64, Convox Builds produce a multi-architecture image index, so Services schedule onto either architecture with nonodeSelectorLabelspinning. - With a single value, Builds on the workload and build pools produce one image for that architecture. On a Rack with
build_node_enabled=true, the build pod runs in the build pool, whose architecture followsbuild_node_type, falling back tonode_type, notkarpenter_arch. Settingkarpenter_arch=arm64by hand on such a Rack whosenode_typeis x86 therefore moves the workload pool to arm64 while leaving the build pool on amd64. From Rack version3.25.9those Builds still produce arm64 images, built under emulation, which is slower than a native Build. Setbuild_node_typeto a Graviton type in the same change to keep Builds native. Before3.25.9every new Build on such a Rack produced an image the workload pool could not run, and Processes failed with an exec format error. A Rack that inherits both fromnode_typeis always consistent. With the defaultbuild_node_enabled=falsethere is no build pool, Builds run on workload nodes, andbuild_node_typehas no effect. - See Architecture Selection and Mixed-Architecture Racks for the full Build output matrix, which platforms
convox builds import-imagecopies, and how anadditional_karpenter_nodepools_configentry with a differingarchalso switches the Rack into multi-architecture Builds.
See Also
- Karpenter for the full Karpenter configuration reference
- BuildArch for pinning an individual App's Build to one architecture
- build_node_type for the build node instance type
- node_type for primary node instance type