Acorn - v0.10.0

New Features

ComputeClass over-provisioning - With this feature, administrators can configure computeClasses with a requestScaler value. This will cause the memory and cpu requested to be scaled down based on the value set. For example, if the computeClass in use has its requestScaler value set to .1 and a user creates an app requesting 2 GiB of memory, the corresponding pod that is created will have its memory request field set to .2 GiB. The memory limit will remain the full 2 GiB. More details here.

ComputeClass generic resource fields - Thanks to community user @dciangot for this contribution! With this feature, administrators can now configure computeClasses with any kind of resources allowed by K8s' corev1.ResourceRequirements. This enables interesting use cases such as supporting GPU-based nodes.

acorn install --ignore-resource-requirements flag added - This will cause your acorn runtime to ignore all resource requirements on acorns being launched. This is useful if your Acorns define resource requests appropriate for production environments, but you want to easily spin them up locally and don’t have enough resources to accommodate them.

Support for user directive in container definitions - You can now specify a user and group containers should run as like so: user: "1000:1000”. This will translate to containerSecurityContext.RunAsUser and RunAsGroup in the pod specification. This is useful if your container image is designed to run as a specific non-root user. See the docs here.

Support for credential secrets - These secrets are similar to to the existing opaque type because they can hold any data you need, but they provide helpful UX to the end user by displaying instructions and prompting the user for the values. More details here.

acorn edit [app-name] and acorn secret edit [secret name] - With these commands, you can now easily edit applications and secrets. When editing an application, you'll be able to edit the values you set when launching the app, like the image, environment variables, and deploy arguments.


With this release you may notice we've restructured our docs. Please take note:
- Docs for end users of Acorn now live here:
- Docs for administrators who are installing and operating their own Acorn installs are here:

We've removed support for an older version of of the Acornfile specification. This should affect very few people as we just removed some undocumented functionality, but if you notice that a previously working Acornfile stops working, reach out to us for support.

What's Changed

  • Deduplicate endpoints for ingress that has port defined by @StrongMonkey in
  • Convert protocol, find matching port for endpoints by @StrongMonkey in
  • Wait for server to acknowledge app deletion before trying ignore-cleanup by @thedadams in
  • Stop trying to parse empty image names by @thedadams in
  • Update to new AML version by @ibuildthecloud in
  • Expand * verbs when doing SAR checks on images by @thedadams in
  • Revert "Expand * verbs when doing SAR checks on images" by @thedadams in
  • Add edit and secret edit command by @ibuildthecloud in
  • Add secret update and secret create --replace/--update by @ibuildthecloud in
  • add alias for acorn project cli by @keyallis in
  • Add ability to prompt for credential secrets (phase 1) by @ibuildthecloud in
  • Add containerreplicas/portforward permission to edit role by @thedadams in
  • Add login required for nested apps by @ibuildthecloud in
  • Cleaned up docs to focus on runtime. by @cloudnautique in
  • add: user directive in Acornfile (e.g. user: "1000:1000") (#718) by @iwilltry42 in
  • add: 'acorn project use -' to switch to last used project (#1319) by @iwilltry42 in
  • add: volume preloading via ?preload=true directive in Acornfile (manager#1598) by @iwilltry42 in
  • Add busybox init script by @tylerslaton in
  • Add acorn-busybox-init to .goreleaser extra_files section for arm64 by @tylerslaton in
  • Support .d dirs for acornfiles by @ibuildthecloud in
  • Set the Host header in the nginx router config by @thedadams in
  • Ignore auth failures when trying to pull apps during cli login by @keyallis in
  • Add feature flag to control whether we should add don't evict annotation by @StrongMonkey in
  • Add support for runtime classes on Acorn computeclasses by @cloudnautique in
  • Ensure that nginx does DNS lookups by @thedadams in
  • Add the new resolv nameserver copier to goreleaser file by @thedadams in
  • fix: replace / with - in anonymous ephemeral volume names (manager-specific) (manager#1598) by @iwilltry42 in
  • Remove temporary VolumeSize migration logic by @tylerslaton in
  • Revert "Remove temporary VolumeSize migration logic" by @tylerslaton in
  • More reliably determine when linked/aliased services are ready by @thedadams in
  • Remove -job suffix from generated service names by @njhale in
  • Resolved offerings by @g-linville in
  • Revert "Resolved offerings (#2369)" by @g-linville in
  • Add resolved offerings to the AppInstance status by @g-linville in
  • Add assistants and functions by @ibuildthecloud in
  • Fix memory values in resolved offerings (#2389) by @g-linville in
  • Add support for acorn.region interpolation in Acornfiles by @thedadams in
  • Drop legacy aml support by @ibuildthecloud in
  • Add resources field to computeclass #2380 by @dciangot in
  • ComputeClass request downscaling for overprovisioning (#2381) by @keyallis in
  • ComputeClass overprovisioning request floor ignores minimum (#2381) by @keyallis in
  • Update to k8s 1.29, remove all rancher code and go.mod replaces by @ibuildthecloud in
  • Change app generated namespace to be deterministic by @ibuildthecloud in
  • Add support to ignore resource requests/limits for local dev purposes by @keyallis in
  • fix: remove potential to panic when validating computeclass create requests by @tylerslaton in
  • Bump function builder by @ibuildthecloud in
  • Update goreleaser for tap deprecation by @ibuildthecloud in
  • Add local environment by @ibuildthecloud in
  • fix: resolved offerings: prioritize -m over Acornfile (#2415) by @g-linville in
  • fix: cli: return an error when creating a secret that already exists (#2408) by @g-linville in
  • Local fixes by @ibuildthecloud in
  • Add back buildkit volume by @ibuildthecloud in
  • fix: credential secrets: use defaults as defined in the Acornfile (#2411) by @g-linville in
  • [Docs] updates by @cloudnautique in
  • Fix malformed message when error is nil by @ibuildthecloud in
  • Create run directory to ensure xtables works in local by @ibuildthecloud in
  • Don't panic during acorn local start by @ibuildthecloud in
  • Add docker client API version negotiation by @ibuildthecloud in
  • fix: credential secrets: handle case where no default is set (#2411) by @g-linville in
  • fix: credential secrets: avoid race condition when prompting user (#2410) by @g-linville in
  • enhance: allow dots in env vars by @iwilltry42 in
  • fix: credential secrets: avoid the race condition better (#2410) by @g-linville in
  • fix: hide compute class request scaler value from api output (2429) by @keyallis in
  • Use docker CLI logic to initialize API client so contexts work properly by @ibuildthecloud in
  • chore: use goreleaser version 1.23.0 by @thedadams in
  • fix: address issue with computeclass tables not converting properly by @tylerslaton in
  • chore: bump cosign to v2.2.2 for releases by @thedadams in
  • chore: update cosign arguments by @thedadams in

New Contributors

  • @dciangot made their first contribution in

Full Changelog:


Jan. 20, 2024, 12:30 a.m.
Register or login to:
  • πŸ”View and search all Acorn releases.
  • πŸ› οΈCreate and share lists to track your tools.
  • 🚨Setup notifications for major, security, feature or patch updates.
  • πŸš€Much more coming soon!
Continue with GitHub
Continue with Google