The upgrade to v0.14 consists in three steps:
Warning
It is strongly suggested that you keep separate database backups for each service after the completion of each step.
All web services must be brought down so that the database maintains a predictable and consistent state during the migration process:
$ service gunicorn stop
$ service snf-dispatcher stop
$ service snf-ganeti-eventd stop
Backup databases for recovery to a pre-migration state.
Keep the database servers running during the migration process
astakos.host$ apt-get install \
python-objpool \
snf-common \
python-astakosclient \
snf-django-lib \
snf-webproject \
snf-branding \
snf-astakos-app
cyclades.host$ apt-get install \
python-objpool \
snf-common \
python-astakosclient \
snf-django-lib \
snf-webproject \
snf-branding \
snf-pithos-backend \
snf-cyclades-app
pithos.host$ apt-get install \
python-objpool \
snf-common \
python-astakosclient \
snf-django-lib \
snf-webproject \
snf-branding \
snf-pithos-backend \
snf-pithos-app \
snf-pithos-webclient
ganeti.node$ apt-get install \
python-objpool \
snf-common \
snf-cyclades-gtools \
snf-pithos-backend
Note
Make sure ‘snf-webproject’ has the same version as ‘snf-common’.
Note
Package ‘kamaki’, installed on all nodes in version 0.13, is not required any more and can safely be uninstalled.
Note
Installing the packages will cause services to start. Make sure you bring them down again (at least gunicorn, snf-dispatcher).
Note
If you are asked about stale content types during the migration process, answer ‘no’ and let the migration finish.
astakos-host$ snf-manage syncdb
astakos-host$ snf-manage migrate quotaholder_app 0001 --fake
astakos-host$ snf-manage migrate quotaholder_app
astakos-host$ snf-manage migrate im
cyclades-host$ snf-manage syncdb
cyclades-host$ snf-manage migrate
pithos-host$ pithos-migrate upgrade head
In order to make all services’ URLs configurable and discoverable from a single endpoint in Astakos through the Openstack Keystone API, every service has a XXXXX_BASE_URL setting, or it’s old corresponding setting was renamed to this. Therefore:
If two or more services are installed on the same machine, make sure their base URLs do not clash. You can distinguish them with a suffix, e.g. ASTAKOS_BASE_URL = "https://node1.example.com/astakos" and CYCLADES_BASE_URL = "https://node1.example.com/cyclades".
You need to register astakos as a component. Moreover you need to register all services provided by cyclades and pithos. Running the following script you will be asked to provide the base installation URL for each component. You will also need to specify the UI URL for astakos.
The former is the location where each component resides; it should equal the <component_name>_BASE_URL as specified in the respective component settings (see above).
The latter is the URL that appears in the Cloudbar and leads to the component UI. If you want to follow the default setup, set the UI URL to <base_url>/ui/ where base_url is the component’s base URL as explained before.
For example, for Astakos, if BASE_URL = https://accounts.example.synnefo.org/astakos, then UI_URL = https://accounts.example.synnefo.org/astakos/ui/):
astakos-host$ snf-component-register
(ATTENTION: Make sure to go to the next step WITHOUT running snf-manage resource-modify, as suggested at the end of this command.)
Note
This command is equivalent to running the following series of commands; in each host it exports the respective service definitions, copies the exported json file to the astakos host, where it finally imports it:
astakos-host$ snf-manage component-add astakos ui_url astakos-host$ snf-manage service-export-astakos > astakos.json astakos-host$ snf-manage service-import --json astakos.json cyclades-host$ snf-manage service-export-cyclades > cyclades.json # copy the file to astakos-host astakos-host$ snf-manage service-import --json cyclades.json pithos-host$ snf-manage service-export-pithos > pithos.json # copy the file to astakos-host astakos-host$ snf-manage service-import --json pithos.json
Run:
astakos-host$ snf-manage component-list
to make sure that all UI URLs are set to the correct value (<base_url>/ui/ as explained above). If you have changed some <component_name>_BASE_URL in the previous step, you will need to update the UI URL with:
snf-manage component-modify <component_name> --url new_ui_url
The limit on the pending project applications is since 0.14 handled as an Astakos resource, rather than a custom setting. So, as a last step we need to run:
astakos-host$ astakos-migrate-0.14
This will prompt you to set this limit (replacing setting ASTAKOS_PENDING_APPLICATION_LIMIT) and then automatically migrate the user-specific base quota for the new resource astakos.pending_app using the deprecated user setting.
You are now done migrating from Synnefo v0.13 to v0.14. Please test your installation to make sure everything works as expected.
Make sure to update your configuration to include settings refered in the updated Email delivery configuration section of the quick installation admin guide.
After the upgrade is finished, we bring up all services:
astakos.host # service gunicorn start
cyclades.host # service gunicorn start
pithos.host # service gunicorn start
cyclades.host # service snf-dispatcher start