# Updates en gespreid uitrollen

> Hoe de software op een scherm wordt bijgewerkt, en hoe je een update gespreid uitrolt.

Bron: https://kyosk.nl/docs/updates

De software op de Pi wordt op afstand bijgewerkt. Een update kan op één scherm, op een selectie of gespreid over de hele vloot.

## Hoe een update op de Pi verloopt

De actie `update` haalt de gekozen versie op, controleert die met een checksum en wisselt dan in één stap naar de nieuwe versie. Een mislukte update laat de oude versie gewoon draaien.

Per fase meldt de Pi de voortgang: in de wachtrij, downloaden, controleren, installeren, herstarten en klaar of mislukt. De meldingen bevatten geen tokens of adressen. Na een herstart komt de melding "klaar" pas als de Pi na het opstarten bevestigt dat de doelversie draait.

> [!TEST] De voortgang per fase komt uit de testrelease v1.2.2-exp. Op een oudere Pi zie je alleen de status van de opdracht.

## Welke versie

- `latest` is de nieuwste stabiele release.
- Een versie met `-exp` (bijvoorbeeld `v1.2.2-exp`) is een testrelease. Die wordt nooit `latest`, dus een Pi op `latest` pakt hem niet op.
- Je kunt een versie vastzetten. Bestaat die versie niet, dan installeert de update niets en meldt hij een fout, in plaats van terug te vallen op een andere versie.

Zie de [changelog](/changelog) voor wat er in elke versie zit.

## Gespreid uitrollen

Rol een nieuwe versie niet op de hele vloot tegelijk uit. Een uitrol in golven begint met een klein deel en gaat pas door als dat goed gaat.

1. Kies in het panel Updates en daarna Nieuwe update in stappen.
2. Kies de doelversie en de schermen.
3. Kies de golven. Standaard is dat 5 procent (minstens 2 schermen), daarna 25 procent en dan 100 procent, met een wachttijd tussen de golven en een maximaal toegestaan foutpercentage. Je kunt eigen percentages kiezen. Zet de eerste golf bij voorkeur op een testklant of eigen schermen.
4. Schermen per golf worden vast gekozen, en schermen die online zijn komen eerst, zodat de eerste golf niet op een offline Pi valt.

### Voortgang

Per golf zie je hoeveel schermen wachten, afgeleverd zijn, klaar zijn, mislukt zijn, offline zijn of zijn overgeslagen, met de versie voor en na. Een scherm is pas klaar als de opdracht klaar is en het scherm de doelversie meldt.

- Gaat een scherm offline nadat de opdracht is afgeleverd, dan blokkeert dat de golf en telt het na de wachttijd als mislukt.
- Een scherm dat al offline was telt niet mee en wordt na 24 uur overgeslagen. Komt het terug, dan pakt de uitrol het alsnog op.
- Overschrijdt het foutpercentage de grens, dan pauzeert de uitrol vanzelf. Een volgende golf start nooit vanzelf na een pauze.

### Bijsturen en terugdraaien

Je kunt pauzeren, hervatten en afbreken (wachtende schermen worden dan overgeslagen). Er loopt één uitrol tegelijk.

Terugdraaien maakt een nieuwe uitrol met de oude versie voor de schermen die al klaar waren. Dat werkt alleen als die versie nog bestaat. Er is geen automatische terugdraaiing. De pagina Updates live toont wat er op dit moment op de Pi's gebeurt.

> [!OPMERKING] Gespreid uitrollen schakelt de beheerder van het platform in. Zolang dat uit staat zijn de pagina's leesbaar en geeft starten een melding.
