Statistics
| Branch: | Tag: | Revision:

root / snf-docs / cyclades-upgrade.rst @ a31e427d

History | View | Annotate | Download (11.9 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 migration from a previously `source` deployment
13
projects:
14
    
15
    * To keep consistency with future changes you should change ``python
16
      manage.py`` calls with deployed ``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
      respectively by ``snf-dispatcher``, ``snf-admin``,
22
      ``snf-burnin`` and ``snf-cloud``.
23

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

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

    
29
NEW APPS
30
    * The 'synnefo.ui.userdata' application has been added in
31
      settings.d/00-apps.conf. Application urls appended in ui/urls.py.
32
      If no custom ROOT_URLCONF module is used, no url change is needed.
33
    * The new app has migrations defined.
34
      Use './manage.py migrate' to migrate *all* apps.
35

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

    
72
API
73
    * A new 'disk_template' attribute has been added to Flavors.
74
      GANETI_DISK_TEMPLATES and DEFAULT_GANETI_DISK_TEMPLATE have been added
75
      in 20-api.conf to control its value. A database migration is needed.
76

    
77
PLANKTON
78
    Plankton is a new image service that has been added as a separate app. The
79
    images are stored in backend of Pithos and thus it must be configured to
80
    access the DB and directory that Pithos uses to store its data. These
81
    settings are defined in the new plankton.py file in settings.
82
    
83
    Plankton stores and looks for images in the Pithos container named
84
    PITHOS_IMAGE_CONTAINER.
85
    
86
    There is a Pithos account that is reserved for system images. This account
87
    is defined in SYSTEM_IMAGES_OWNER.
88

    
89
ADMIN TOOLS
90
    * A new --disk-template flag has been added to snf-admin to choose a
91
      disk template when creating flavors. Similarly, disk_template support
92
      in flavors has beed added to the admin web interface.
93

    
94

    
95
v0.7.3 -> v0.7.4
96
----------------
97

    
98
OKEANOS INTRO
99
    * News section added. News content can be remotely retrieved using
100
      OKEANOS_NEWS_CONTENT_URL settings option.
101

    
102

    
103
v0.6.2 -> v0.7
104
--------------
105

    
106
HTML TEMPLATES
107
    * Included a generic service unavailable template based on
108
      generic_info_tpl.html, as ui/static/service_unavailable.html.
109

    
110
NEW DEPENDENCIES
111
    * python-unittest2, python-paramiko needed by the new integration
112
      test suite snf-tools/burnin. Paramiko shipped with Squeeze uses
113
      broken RandomPool, produces warnings, see #576697.
114
    * snf-image must be installed on all Ganeti hosts, see README.deploy,
115
      Step 13.
116

    
117
COMPONENTS
118
    * snf-admin has been updated with new functionality, be sure to upgrade any
119
      locally installed versions.
120
    * snf-image replaces snf-ganeti-instance-image as the Ganeti OS provider
121
      used by Synnefo, and can live alongside snf-ganeti-instance-image.
122
      Once snf-image has been deployed on all Ganeti nodes, be sure to modify
123
      the value of settings.d/10-backend.conf:GANETI_CREATEINSTANCE_KWARGS
124
      to use 'snf-image+default'.
125

    
126
UI STATIC FILES
127
    * A major reorganization of static files has been commited. All ui and
128
      invitations static files has been moved in their own separate directory
129
      (ui/static/snf, ui/static/invitations).
130
    * UI static files base url is now configurable via UI_MEDIA_URL.
131
    * A symlink named after the current version of the ui application has been
132
      committed in ui/static directory. The symlink will get updated after each
133
      version upgrade to allow us provide unique urls of static files between
134
      after each upgrade, see #1460.
135

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

    
175
LOGGING
176
    * A new logging mechanism has been implemeted. Please see 00-logging.conf
177
      under settings.d/ and read the relevant section in README.admin for more
178
      info.
179

    
180

    
181
v0.6.1 -> v0.6.2
182
----------------
183

    
184
ADMIN INTERFACE
185
    * The models were changed so that Flavors and SynnefoUsers now have
186
      a deleted state. The admin tools were updated so that models are
187
      now marked as deleted instead of actually being deleted from the DB.
188
      A database migration is needed.
189

    
190
COMPONENTS
191
    * Only the Django webapp is affected, must restart the logic dispatcher
192
      due to DB migration taking place.
193

    
194

    
195
v0.5.5 -> v0.6
196
--------------
197

    
198
ADMIN INTERFACE
199
    * A new Web-based admin interface is available under /admin.
200
      It is accessible by users of type 'ADMIN' in the DB, with
201
      their authentication token. "snf-admin user modify" may be used
202
      to change the type of a specific user.
203

    
204
RECONCILIATION
205
    * Implemented new reconciliation management command, please see
206
      ./manage.py reconcile --help and README.admin for more info.
207
      Recommended to run ./manage.py reconcile --detect-all periodically,
208
      via cron.
209

    
210
GANETI-INSTANCE-IMAGE
211
    * A new version of ganeti-instance-image is required (v0.5.1-1-snf1).
212
      The new version is available for download as a debian package:
213
      https://code.grnet.gr/projects/gnt-instance-image/files
214

    
215
COMPONENTS
216
    * snf-cyclades-gtools must be rebuilt, see snf-cyclades-gtools/debian/
217
      for Debian packaging.
218

    
219
NEW SETTINGS
220
    * 30-ui.conf:SUGGESTED_FLAVORS
221
    * 30-ui.conf:VM_IMAGE_COMMON_METADATA
222

    
223

    
224
v0.5.4 -> v0.5.5
225
----------------
226

    
227
LOGGING
228
    * Changed the default logging settings for the dispatcher to also log
229
      to /var/log/synnefo/dispatcher.log, redirecting stderr and stdout there
230

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

    
236
          https://github.com/dougbarth/amqp-utils
237

    
238
      and run the amqp-deleteq tool for each declared queue. Alternatively,
239
      amqp-utils can be installed with: sudo gem install amqp-utils.
240

    
241
UI
242
    * Feedback form now uses django native send_mail for sending emails.
243
      Proper django settings should be set for feedback mails to work
244
      (https://docs.djangoproject.com/en/dev/topics/email/)
245

    
246
COMPONENTS
247
    * snf-cyclades-gtools must be rebuilt, see snf-cyclades-gtools/debian/
248
      for Debian packaging.
249

    
250

    
251
v0.5.3 -> v0.5.4
252
----------------
253

    
254
REPOSITORY
255
    * Split Synnefo Ganeti tools to snf-cyclades-gtools, with Debian packaging
256

    
257
REMOVED APPS
258
    * The ganeti/ app has been removed from the Django project completely.
259
      Any explicit references to it in Django settings must be removed.
260

    
261
DJANGO SETTINGS
262
    * snf-cyclades-gtools is configured independently from Django,
263
      need to add proper /etc/synnefo/settings.conf
264
    * Removed 15-queues.conf: fix_amqp_settings (no need to call it anywhere)
265
    * Removed settings.d/98-ganeti-* due to split of snf-cyclades-gtools
266
    * ~okeanos intro: OKEANOS_VIDEO_URL: Changed from string to dict
267
    * ~okeanos intro: OKEANOS_VIDEO_POSTER_IMAGE_URL: New setting
268
    * ~okeanos intro: OKEANOS_VIDEO_FLOWPLAYER_URL: New setting
269

    
270
DB MIGRATIONS
271
    * 0018_auto__add_field_virtualmachine_buildpercentage
272

    
273
PACKAGING
274
    * Split Synnefo Ganeti tools to separate snf-cyclades-gtools Debian package
275

    
276
NEW DEPENDENCIES
277
    * python-prctl: Needed by the snf-progress-monitor,
278
      specified as a dependency of the snf-cyclades-gtools Debian package.
279

    
280
EXTERNAL COMPONENTS
281
    * Ganeti Instance Image must be upgraded to support progress monitoring,
282
      please see README.deploy.
283

    
284

    
285
v0.5.2 -> v0.5.3
286
----------------
287

    
288
NEW SETTINGS
289
    * 30-ui.conf:LOGOUT_URL
290
    * 00-admins.conf:DEFAULT_FROM_EMAIL
291
    * 90-okeanos.conf.sample:LOGOUT_URL
292

    
293
REMOVED SETTINGS
294
    * 00-admins.conf:SYSTEM_EMAIL_ADDR
295
    * 90-okeanos.conf.sample:APP_INSTALL_URL
296

    
297

    
298
v0.5.1 -> v0.5.2
299
----------------
300

    
301
NEW SETTINGS
302
    * 10-backend.py:GANETI_CREATEINSTANCE_KWARGS
303

    
304
REMOVED SETTINGS
305
    * 10-backend.conf:GANETI_OS_PROVIDER
306
    * 20-api.conf:GANETI_DISK_TEMPLATE
307

    
308
BACKEND CHANGES
309
    * Need to patch Ganeti, file:
310
      lib/python2.6/site-packages/ganeti/rapi/rlib2.py
311
      to honor the wait_for_sync flag, see Synnefo #835.
312
      Patch provided under contrib/patches/ganeti-rlib2.py-v0.5.2
313