Upgrade to Synnefo v0.14¶
The upgrade to v0.14 consists in three steps:
- Bring down services and backup databases.
- Upgrade packages, migrate the databases and configure settings.
- Register services to astakos and perform a quota-related data migration.
- Bring up all services.
Warning
It is strongly suggested that you keep separate database backups for each service after the completion of each step.
1. Bring web services down, backup databases¶
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
2. Upgrade Synnefo and configure settings¶
2.1 Install the new versions of packages¶
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
).
2.2 Sync and migrate the database¶
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
2.3 Configure Base URL settings for all services¶
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:
- Rename
ASTAKOS_URL
setting toASTAKOS_BASE_URL
everywhere in your settings, in all nodes and all config files. This must point to the top-level Astakos URL. - In Cyclades settings, rename the
APP_INSTALL_URL
setting toCYCLADES_BASE_URL
. If no such setting has been configured, you must set it. It must point to the top-level Cyclades URL. RenameCYCLADES_ASTAKOS_SERVICE_TOKEN
toCYCLADES_SERVICE_TOKEN
. - In Pithos settings, introduce a
PITHOS_BASE_URL
setting; it must point to the top-level Pithos URL. RenamePITHOS_QUOTAHOLDER_POOLSIZE
, if set, toPITHOS_ASTAKOSCLIENT_POOLSIZE
. - In all 20-<service>-cloudbar.conf files change setting
CLOUDBAR_SERVICES_URL
to point toASTAKOS_BASE_URL/ui/get_services
, whereASTAKOS_BASE_URL
as above. Similarly, setCLOUDBAR_MENU_URL
toASTAKOS_BASE_URL/ui/get_menu
.
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"
.
3 Register services and migrate quota¶
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.
4. Update astakos email notification settings¶
Make sure to update your configuration to include settings refered in the updated Email delivery configuration section of the quick installation admin guide.
5. Bring all services up¶
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