You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ambari.apache.org by Nate Cole <nc...@hortonworks.com> on 2016/04/06 14:59:27 UTC

New Concept: Version Definition File

All,

There has been steady work on a new concept in Ambari for 2.4.0 - the Version Definition File, or VDF.

For some time, registering repositories for Rolling/Express upgrade involves specifying the version (by hand) and providing the base-urls for the repositories (by hand).  This is not a very favorable user experience, and indeed has forced a lot of workarounds in code to ensure correctness of what the user sets as values.  On top of that, we continue to use the service versions defined on the stack, which may not actually match what is being installed out of a repository.

The goal of the VDF is to provide a way to describe a specific version of a stack that makes registering new versions less error prone and more accurate.  We have had success using this file for registering repositories, and work is underway to also use this mechanism during cluster install as well.

The VDF contains 3 major sections:

  *   Release Information. things like display name, readable version information, some package details (for wildcard use during install), ability to set release notes url, etc.
  *   Manifest.  Lists all services and their correct versions that are available for the repositories.
  *   Repositories.  List the repositories that apply for that version.  These may be changed to use local repositories, but what is available in the file is what is known for that version.

There is a python script available that generates VDF files; it is located in contrib/version-builder.

>From an API standpoint, the previous functionality is still intact, so anyone using those APIs can still register versions the way they were - they just don't have the benefits that the VDF provides for them.

Thanks,
Nate