autoupdater.rst 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. Autoupdater
  2. ===========
  3. Gluon contains an automatic update system which can be configured in the site configuration.
  4. Building Images
  5. ---------------
  6. By default, the autoupdater is disabled (as it is usually not helpful to have unexpected updates
  7. during development), but it can be enabled by setting the variable GLUON_BRANCH when building
  8. to override the default branch set in the set in the site configuration.
  9. A manifest file for the updater can be generated with `make manifest`. A signing script (using
  10. ecdsautils) can by found in the `contrib` directory. When creating the manifest, ``GLUON_PRIORITY`` can
  11. be set on the command line, or it can be taken from the ``site.mk``.
  12. The priority defines the maximum number of days that may pass between releasing an update and installation
  13. of the images. The update probability with start at 0 after the release time mentioned in the manifest
  14. and then slowly rise to 1 after the number of days given by the priority has passed.
  15. The priority may be an integer or a decimal fraction.
  16. A fully automated nightly build could use the following commands:
  17. ::
  18. git pull
  19. (cd site && git pull)
  20. make update
  21. make clean
  22. make -j5 GLUON_BRANCH=experimental
  23. make manifest GLUON_BRANCH=experimental
  24. contrib/sign.sh $SECRETKEY images/sysupgrade/experimental.manifest
  25. cp -r images /where/to/put/this/experimental
  26. ln -s experimental.manifest /where/to/put/this/experimental/manifest
  27. Infrastructure
  28. --------------
  29. We suggest to have following directory tree accessible via http:
  30. ::
  31. firmware/
  32. stable/
  33. sysupgrade/
  34. factory/
  35. snapshot/
  36. sysupgrade/
  37. factory/
  38. experimental/
  39. sysupgrade/
  40. factory/
  41. The last level is generated by the Gluon build process. Do not forget
  42. to create symlinks from ``manifest`` to ``<branch>.manifest`` in the
  43. sysupgrade directories to allow upgrades from Gluon versions before 2014.3.
  44. The server should be available via IPv6.
  45. Command Line
  46. ------------
  47. These commands can be used on a node.
  48. ::
  49. # Update with some probability
  50. autoupdate
  51. ::
  52. # Force update check, even when the updater is disabled
  53. autoupdater -f