Statistics
| Branch: | Tag: | Revision:

root / docs / cyclades-upgrade.rst @ 70f13b0f

History | View | Annotate | Download (12.4 kB)

1
Upgrade
2
=======
3

    
4
This file documents the upgrade to newer versions of the Synnefo software.
5
For more information, please see deployment guide.
6

    
7

    
8
v0.7.4 -> v0.8
9
--------------
10

    
11
Synnefo is now distributed packaged in python/debian packages. You should
12
consider the following when migrating from projects previously deployed from
13
source:
14
    
15
    * To keep consistency with future changes, change all ``python manage.py``
16
      calls to refer to the shipped ``snf-manage`` console script.
17
      This includes automation scripts, service scripts etc.
18

    
19
      Same applies for calls to ``dispatcher.py``, ``snf-tools/admin.py``,
20
      ``snf-tools/burnin.py`` and ``snf-tools/cloud.py`` which are replaced
21
      by ``snf-dispatcher``, ``snf-admin``, ``snf-burnin`` and ``snf-cloud``,
22
      respectively.
23

    
24
    * Copy custom settings files located in project's ``settings.d`` directory
25
      to ``/etc/synnefo/`` directory.
26

    
27
    * Migrate location from which :ref:`static files <static-files>` are served from.
28

    
29
.. warning::
30
   
31
   Synnefo settings have been refactored as part of the
32
   :ref:`snf-common <snf-common>` component. File locations may be inaccurate
33
   and the list of changed settings incomplete.  Please consult the actual
34
   files installed under ``/etc/synnefo`` as the authoritative source for new
35
   settings.
36

    
37
NEW APPS
38
    * The ``synnefo.ui.userdata`` application has been added in
39
      :file:`settings.d/00-apps.conf`. Application urls appended in
40
      :file:`ui/urls.py`.
41
      If no custom ``ROOT_URLCONF`` module is used, no url change is needed.
42
    * The new app has migrations defined.
43
      Use ``snf-manage migrate`` to migrate *all* apps.
44

    
45
NEW/UPDATED SETTINGS
46
    * ``BYPASS_AUTHENTICATION_TOKEN_SECRET`` replaces ``BYPASS_AUTHENTICATION_TOKEN``
47
      in :file:`settings/common/aai.py`.
48
    * New config file :file:`31-userdata.conf`, containing userdata app settings
49
    * ``USERDATA_SSH_KEY_LENGTH`` in :file:`31-userdata.conf`:
50
      Key length in bits for generated ssh keys
51
    * ``USERDATA_SSH_KEY_EXPONENT`` in :file:`31-userdata.conf`:
52
      Generated SSH key exponent
53
    * ``USERDATA_MAX_SSH_KEYS_PER_USER`` in :file:`31-userdata.conf`:
54
      Maximum number of ssh keys a user is allowed to have
55
    * ``UI_SUPPORT_SSH_OS_LIST``, in :file:`30-ui.conf`:
56
      A list of os names that support ssh public key assignment
57
    * ``UI_OS_DEFAULT_USER_MAP``, in :file:`30-ui.conf`:
58
      OS/username map to identify default user name for a specific os
59
    * ``VM_CREATE_NAME_TPL``, in :file:`30-ui.conf`:
60
      Template to be used for suggesting the user a default name for newly
61
      created VMs. String {0} gets replaced by the value of metadata key "os"
62
      for the Image.
63
    * ``UI_FLAVORS_DISK_TEMPLATES_INFO`` added in :file:`30-ui.conf`:
64
      Name/description metadata for the available flavor disk templates
65
    * ``VM_CREATE_SUGGESTED_FLAVORS`` in :file:`30-ui.conf`:
66
      Updated flavor data to include disk_template value.
67
    * ``GANETI_DISK_TEMPLATES`` and ``DEFAULT_GANETI_DISK_TEMPLATE`` in :file:`20-api.conf`:
68
      The list of disk templates supported by the Ganeti backend.
69
      The default template to be used when migrating Flavors with no value for
70
      disk_template (i.e., 'drbd').
71
    * ``UI_COMPUTE_URL``, ``UI_GLANCE_URL`` in ui app:
72
      Configurable API endpoints
73
    * ``UI_ENABLE_GLANCE`` in ui app:
74
      Whether or not UI should retrieve images from the Glance API endpoint
75
      set in ``UI_GLANCE_API_URL``. If setting is set to False, ui will request
76
      images using calls to the Cyclades API.
77
UI
78
    * ``synnefo.ui.userdata`` application has been added in ``INSTALLED_APPS``.
79
      Database migration is needed for the creation of application db tables.
80

    
81
API
82
    * A new ``disk_template`` attribute has been added to Flavors.
83
      ``GANETI_DISK_TEMPLATES`` and ``DEFAULT_GANETI_DISK_TEMPLATE`` have been
84
      added in :file:`20-api.conf` to control its value. A database migration is
85
      needed.
86

    
87
PLANKTON
88
    Plankton is a new image service that has been added as a separate app. The
89
    images are stored in backend of Pithos and thus it must be configured to
90
    access the DB and directory that Pithos uses to store its data. These
91
    settings are defined in the new plankton.py file in settings.
92
    
93
    Plankton stores and looks for images in the Pithos container named
94
    ``PITHOS_IMAGE_CONTAINER``.
95
    
96
    There is a Pithos account that is reserved for system images. This account
97
    is defined in ``SYSTEM_IMAGES_OWNER``.
98

    
99
ADMIN TOOLS
100
    * A new ``--disk-template`` flag has been added to snf-admin to choose a
101
      disk template when creating flavors. Similarly, ``disk_template`` support
102
      in flavors has beed added to the admin web interface.
103

    
104

    
105
v0.7.3 -> v0.7.4
106
----------------
107

    
108
OKEANOS INTRO
109
    * News section added. News content can be remotely retrieved using
110
      OKEANOS_NEWS_CONTENT_URL settings option.
111

    
112

    
113
v0.6.2 -> v0.7
114
--------------
115

    
116
HTML TEMPLATES
117
    * Included a generic service unavailable template based on
118
      generic_info_tpl.html, as ui/static/service_unavailable.html.
119

    
120
NEW DEPENDENCIES
121
    * python-unittest2, python-paramiko needed by the new integration
122
      test suite snf-tools/burnin. Paramiko shipped with Squeeze uses
123
      broken RandomPool, produces warnings, see #576697.
124
    * snf-image must be installed on all Ganeti hosts, see README.deploy,
125
      Step 13.
126

    
127
COMPONENTS
128
    * snf-admin has been updated with new functionality, be sure to upgrade any
129
      locally installed versions.
130
    * snf-image replaces snf-ganeti-instance-image as the Ganeti OS provider
131
      used by Synnefo, and can live alongside snf-ganeti-instance-image.
132
      Once snf-image has been deployed on all Ganeti nodes, be sure to modify
133
      the value of settings.d/10-backend.conf:GANETI_CREATEINSTANCE_KWARGS
134
      to use 'snf-image+default'.
135

    
136
UI STATIC FILES
137
    * A major reorganization of static files has been commited. All ui and
138
      invitations static files has been moved in their own separate directory
139
      (ui/static/snf, ui/static/invitations).
140
    * UI static files base url is now configurable via UI_MEDIA_URL.
141
    * A symlink named after the current version of the ui application has been
142
      committed in ui/static directory. The symlink will get updated after each
143
      version upgrade to allow us provide unique urls of static files between
144
      after each upgrade, see #1460.
145

    
146
NEW/UPDATED SETTINGS
147
    * EMAIL_SUBJECT_PREFIX:
148
      Prepended to automated emails, set to someting that uniquely identifies
149
      the deployment.
150
    * MAX_PERSONALITY and MAX_PERSONALITY_SIZE in 20-api.conf:
151
      Maximum number of files to be injected in newly created servers,
152
      maximum total size of encoded file contents.
153
    * Renamed SUGGESTED_FLAVORS to VM_CREATE_SUGGESTED_FLAVORS in 30-ui.conf
154
    * VM_CREATE_SUGGESTED_ROLES in 30-ui.conf:
155
      A list of suggested vm roles to display to user on create wizard.
156
    * UI_DELAY_ON_BLUR in 30-ui.conf:
157
      Whether to increase the intervals of recurrent requests (networks/vms 
158
      update) if window loses its focus.
159
    * UI_BLUR_DELAY in 30-ui.conf:
160
      The value of update intervals if window loses its focus.
161
      Considered only if `UI_DELAY_ON_BLUR` is set to True.
162
    * UI_UPDATE_HIDDEN_VIEWS in 30-ui.conf:
163
      Whether not visible vm views will update their content if vm changes.
164
    * UI_SKIP_TIMEOUTS in 30-ui.conf:
165
      After how many timeouts of reccurent ajax requests to display the timeout
166
      error overlay.
167
    * UI_HANDLE_WINDOW_EXCEPTIONS in 30-ui.conf:
168
      Whether UI should display error overlay for all Javascript exceptions.
169
    * UI_MEDIA_URL in 30-ui.conf:
170
      Base url for ui static files, 
171
      defaults to MEDIA_URL + 'snf-<latest_ui_version>/'.
172
    * MEDIA_URL changed in 00-site.conf:
173
      Changed to '/static/' since it is now used in ui app.
174
    * TEMPLATE_CONTEXT_PROCESSORS changed in 00-apps.conf:
175
      added 'django.core.context_processors.media' to allow access of MEDIA_URL
176
      in template files.
177
    * GANETI_CREATEINSTANCE_KWARGS in 10-backend.conf:
178
      Must be updated to use snf-image as the Ganeti OS provider.
179
      
180
    
181
DB MIGRATION
182
    * Uniqueness constraints have been added to the metadata models.
183
      A database migration is needed.
184

    
185
LOGGING
186
    * A new logging mechanism has been implemeted. Please see 00-logging.conf
187
      under settings.d/ and read the relevant section in README.admin for more
188
      info.
189

    
190

    
191
v0.6.1 -> v0.6.2
192
----------------
193

    
194
ADMIN INTERFACE
195
    * The models were changed so that Flavors and SynnefoUsers now have
196
      a deleted state. The admin tools were updated so that models are
197
      now marked as deleted instead of actually being deleted from the DB.
198
      A database migration is needed.
199

    
200
COMPONENTS
201
    * Only the Django webapp is affected, must restart the logic dispatcher
202
      due to DB migration taking place.
203

    
204

    
205
v0.5.5 -> v0.6
206
--------------
207

    
208
ADMIN INTERFACE
209
    * A new Web-based admin interface is available under /admin.
210
      It is accessible by users of type 'ADMIN' in the DB, with
211
      their authentication token. "snf-admin user modify" may be used
212
      to change the type of a specific user.
213

    
214
RECONCILIATION
215
    * Implemented new reconciliation management command, please see
216
      ./manage.py reconcile --help and README.admin for more info.
217
      Recommended to run ./manage.py reconcile --detect-all periodically,
218
      via cron.
219

    
220
GANETI-INSTANCE-IMAGE
221
    * A new version of ganeti-instance-image is required (v0.5.1-1-snf1).
222
      The new version is available for download as a debian package:
223
      https://code.grnet.gr/projects/gnt-instance-image/files
224

    
225
COMPONENTS
226
    * snf-cyclades-gtools must be rebuilt, see snf-cyclades-gtools/debian/
227
      for Debian packaging.
228

    
229
NEW SETTINGS
230
    * 30-ui.conf:SUGGESTED_FLAVORS
231
    * 30-ui.conf:VM_IMAGE_COMMON_METADATA
232

    
233

    
234
v0.5.4 -> v0.5.5
235
----------------
236

    
237
LOGGING
238
    * Changed the default logging settings for the dispatcher to also log
239
      to /var/log/synnefo/dispatcher.log, redirecting stderr and stdout there
240

    
241
QUEUES
242
    * Changed default routing key naming for queues. Queues must be redeclared.
243
      The suggested upgrade path is to delete ALL (even obsolete) existing
244
      queues and restart the dispatcher. To do so, download amqp-utils from
245

    
246
          https://github.com/dougbarth/amqp-utils
247

    
248
      and run the amqp-deleteq tool for each declared queue. Alternatively,
249
      amqp-utils can be installed with: sudo gem install amqp-utils.
250

    
251
UI
252
    * Feedback form now uses django native send_mail for sending emails.
253
      Proper django settings should be set for feedback mails to work
254
      (https://docs.djangoproject.com/en/dev/topics/email/)
255

    
256
COMPONENTS
257
    * snf-cyclades-gtools must be rebuilt, see snf-cyclades-gtools/debian/
258
      for Debian packaging.
259

    
260

    
261
v0.5.3 -> v0.5.4
262
----------------
263

    
264
REPOSITORY
265
    * Split Synnefo Ganeti tools to snf-cyclades-gtools, with Debian packaging
266

    
267
REMOVED APPS
268
    * The ganeti/ app has been removed from the Django project completely.
269
      Any explicit references to it in Django settings must be removed.
270

    
271
DJANGO SETTINGS
272
    * snf-cyclades-gtools is configured independently from Django,
273
      need to add proper /etc/synnefo/settings.conf
274
    * Removed 15-queues.conf: fix_amqp_settings (no need to call it anywhere)
275
    * Removed settings.d/98-ganeti-* due to split of snf-cyclades-gtools
276
    * ~okeanos intro: OKEANOS_VIDEO_URL: Changed from string to dict
277
    * ~okeanos intro: OKEANOS_VIDEO_POSTER_IMAGE_URL: New setting
278
    * ~okeanos intro: OKEANOS_VIDEO_FLOWPLAYER_URL: New setting
279

    
280
DB MIGRATIONS
281
    * 0018_auto__add_field_virtualmachine_buildpercentage
282

    
283
PACKAGING
284
    * Split Synnefo Ganeti tools to separate snf-cyclades-gtools Debian package
285

    
286
NEW DEPENDENCIES
287
    * python-prctl: Needed by the snf-progress-monitor,
288
      specified as a dependency of the snf-cyclades-gtools Debian package.
289

    
290
EXTERNAL COMPONENTS
291
    * Ganeti Instance Image must be upgraded to support progress monitoring,
292
      please see README.deploy.
293

    
294

    
295
v0.5.2 -> v0.5.3
296
----------------
297

    
298
NEW SETTINGS
299
    * 30-ui.conf:LOGOUT_URL
300
    * 00-admins.conf:DEFAULT_FROM_EMAIL
301
    * 90-okeanos.conf.sample:LOGOUT_URL
302

    
303
REMOVED SETTINGS
304
    * 00-admins.conf:SYSTEM_EMAIL_ADDR
305
    * 90-okeanos.conf.sample:APP_INSTALL_URL
306

    
307

    
308
v0.5.1 -> v0.5.2
309
----------------
310

    
311
NEW SETTINGS
312
    * 10-backend.py:GANETI_CREATEINSTANCE_KWARGS
313

    
314
REMOVED SETTINGS
315
    * 10-backend.conf:GANETI_OS_PROVIDER
316
    * 20-api.conf:GANETI_DISK_TEMPLATE
317

    
318
BACKEND CHANGES
319
    * Need to patch Ganeti, file:
320
      lib/python2.6/site-packages/ganeti/rapi/rlib2.py
321
      to honor the wait_for_sync flag, see Synnefo #835.
322
      Patch provided under contrib/patches/ganeti-rlib2.py-v0.5.2
323