Upgrade from 1.2.0 to 1.3.0

Upgrade Genvid Project

The Genvid Project has been updated to a cleaner design, deprecating some elements in the process. Updating is quite easy:

Update the version number

The version number now matches the one of the first release supporting a new feature. You need to replace this:

version = "1.1"

with this:

version = "1.3.0"

Replace all binary elements

The binary elements are replaced by simple config elements. Specified paths no longer automatically substitute to absolute ones at start time, but that can be achieved using a consul-template plugin.

Replace each element like:

binary "name" {
  path = "exec"
}

with the following:

config {
  local {
    binary {
      name {
        path = "{{plugin `where` `exec` | js}}"
      }
    }
  }
}

If you already know the complete location of the executable, you can directly write the path there (with the correct quoting).

Replace all image elements

Previously, the image elements were placed directly under the cloud section of the configuration. They must now be specified inside a config element. Therefore, if you had this:

image "name" {
  tag = "myimage:dev"
}

then you must convert it to this instead:

config {
  cloud {
    image {
      name {
        tag = "myimage:dev"
      }
    }
  }
}

Replace all other elements with a configuration

With the addition of binary and image, there were only five others elements having a special treatment: name, version, job, event and log. All other elements were simply added to the key-value store. These elements now need to be added to a config/ element, followed by either local or cloud (or both) depending on where they were expected. The previous version were always loading those configuration under local for local.py or cloud for cloud.py. You probably have to make some adjustment to your template in this case.

If you had:

website {
  root = "{{env `PROJECT_DIR` | js}}\\web"
}

you must now have:

config {
  local {
    // website is only used in the local environment
    website {
      root = "{{env `PROJECT_DIR` | js}}\\web"
    }
  }
}