Cluster upgrade extension for Fuel
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OpenDev Sysadmins 50b2c13a2a OpenDev Migration Patch 5 months ago
cluster_upgrade Set vip_namespace when migrating vips from 6.x 2 years ago
specs Add package spec 3 years ago
tools Prepare for using standard python tests 2 years ago
.coveragerc Initial commit 3 years ago
.gitignore Setup unit tests 3 years ago
.gitreview OpenDev Migration Patch 5 months ago
AUTHORS Initial commit 3 years ago
LICENSE Initial commit 3 years ago Initial commit 3 years ago
README.rst Show team and repo badges on README 2 years ago
bindep.txt Add bindep.txt to shorten test run time 3 years ago Setup unit tests 3 years ago
nailgun-test-settings.yaml Setup unit tests 3 years ago
requirements.txt Initial commit 3 years ago
setup.cfg Enable image-based provisioning for 6.0 upgrades 2 years ago Initial commit 3 years ago
test-requirements.txt Setup unit tests 3 years ago
tox.ini Switch to upstream fuel-web repository 3 years ago


Team and repository tags


Fuel nailgun extenstion for cluster upgrade

This extension for Nailgun provides API handlers and logic for cluster upgrading. This extension used by the fuel-octane project.


After installing fuel-nailgun-extension-cluster-upgrade package run:
  1. nailgun_syncdb - migrate database
  2. restart nailgun service

Transformer configuration

Every transformation manager has default config that hardcoded, but you can overwrite this config with your own transformations extensions. This could be done by extending nailgun/settings.yaml file.


      7.0: [transform_vips]
      9.0: [first_transformation, second_transformation]


In extension you should define a entrypoint is such way:

nailgun.cluster_upgrade.transformations.cluster.7.0 =
   transform_vips = my_project.transformations:transform_cluster_vips

on first line we have entripoint name where

  • nailgun.cluster_upgrade.transformations - namespace where all transformations defined.
  • cluster - name of object which data transformed
  • 7.0 - cluster version where these transformations should happen

on the second line

  • transform_vips - unique transformation name that you can use in configuration file or in transformation manager
  • my_project.transformations - module name
  • transform_cluster_vips - transformer function name

Transformation function must take only one argument - data to transform. When you call manager.apply(from_version, to_version, data) all transformer functions ordered by a version called one by one, and output of one transformer used as input to the other.

In out example calling cluster_manager.apply('6.0', '9.1', data) will call three functions transform_vips, first_transformation, second_transformation.