Chef Ideas

We believe that the best way to build software is to do it in close collaboration with the people who use it. We invite you to submit your ideas using the form below. Please be sure to include the problem for which you are solving and the benefits of implementing the idea.

We do our best to implement as many Ideas as we can. Our Product team will evaluate all submitted ideas in a timely manner and will disposition each into one of the following categories: will integrate into the product roadmap, further research is needed, unlikely to implement.

Thanks for collaborating with us!

Omnibus support for labelled/aliased software version overrides

In lieu of gem-style software version control...

Add labelling or aliasing functionality to Omnibus software definitions to allow an override to pin to a release train, instead of pinning to a specific release version.

This is particularly useful when there are multiple release trains concurrently active for upstream software.

As the software definition is updated with new releases, the alias can ensure the downstream override does not need to be updated until a different release train is desired.

This is functionally similar to default_version, but allows more granularity, and operationally simplifies rollout when a new patch version is released.


Examples of release trains:

  • Java: 8, 11

  • PostgreSQL: 9.6.x, 10.x, 13.x, 14.x

  • Redis: 2.8.x, 3.0.x, 5.0.x, 6.0.x, 6.2.x


Sample functionality:

In this situation, we want to pin Redis to the most recent release of the 5.0.x release train. We add the new version 5.0.14, and update the version_alias to target the updated version number.

software-definition.rb:

 name "redis"
default_version "6.2.5"

version_alias("6.2-latest","6.2.6")
version_alias("6.0-latest","6.0.16")
-version_alias("5.0-latest","5.0.7")
+version_alias("5.0-latest","5.0.14")
version_alias("3.0-latest","3.0.14")
version_alias("2.8-latest","2.8.21")

version("6.2.6") { source sha256: "..." }
version("6.2.5") { source sha256: "..." }
version("6.0.16") { source sha256: "..." }
+version("5.0.14") { source sha256: "..." }
version("5.0.7") { source sha256: "..." }
version("3.0.7") { source md5: "..." }
version("3.0.4") { source md5: "..." }
version("2.8.21") { source md5: "..." }
version("2.8.2") { source md5: "..." }

omnibus_override.rb:

override :redis, version_alias: "5.0-latest"
# Unchanged, but now selects version "5.0.14" per above


  • Aaron Pavely
  • Oct 18 2021
  • New
  • Attach files