Vai al contenuto

MDM-081 · Ponte di aggiornamento dalla 3.2.x e prova in laboratorio

Campo Valore
Gruppo 6 · Migrazione del parco
Assegnato a (proposta) Lorenzo + Mattia
Priorità P1
Stima indicativa M
Stato ⬜ da fare
Attività del piano T9.2
Dipende da MDM-080, MDM-031, MDM-014

Contesto

I box dei clienti restano su main e si aggiornano dal pannello (D22). Dopo l'unione di stage in main, l'update della 3.2.x scarica il codice nuovo ma non sa avviarlo: cerca docker-compose.yml e .env.build_tag nella radice, usa il profilo production e non prepara uv, sottomoduli e segreto AWS. La 3.2.x non si modifica: il ponte sta nella release nuova. Analisi: migrazione-box-alla-nuova-versione.md.

Cosa fare (sviluppo su stage, rilascio con l'unione in main)

  • [ ] File ponte nella radice: docker-compose.yml e .env.build_tag compatibili con l'updater 3.2.x (profilo production, stessi nomi dei servizi), che avviano la nuova immagine di produzione.
  • [ ] All'avvio da ponte: import della configurazione (MDM-080), poi via named pipe: uv se manca, sottomoduli, down del progetto Compose vecchio, avvio con infra-cli in ambiente prod.
  • [ ] Controlli finali (versione, mac, stato inserito/disinserito, telecamere, midserver) e ripristino automatico del commit e dello stack precedenti, con segnalazione al midserver.
  • [ ] Gli stessi controlli finali e lo stesso ripristino in mdm update (dev_scripts/commands/updater.py), che oggi fa solo pull, login ECR e infra-cli ... -up: servono anche per gli update successivi al passaggio.
  • [ ] Prova in laboratorio con la release candidata, update dal pannello e prova del ripristino, su: 3.1.9 GANZ, 3.1.9 o 3.2.2 Frigate (wrapper Flask), 3.2.9 Frigate; ognuno configurato e inserito. L'updater è lo stesso dalla 3.1.9 alla 3.2.9.
  • [ ] Decidere come collegare il box di prova prod al midserver dev senza il segreto di produzione.
  • [ ] Provare il ponte senza toccare il main vero: sul box di prova l'update della 3.2.x fa git pull origin main, quindi il remoto origin del box di prova va puntato a un repository di prova il cui main è la candidata (MDM-032).
  • [ ] Misurare il tempo di fermo e scriverlo in aggiornamento-box.md.

Criteri di accettazione

  • Dopo l'update dal pannello il box è su main, ambiente prod, con lo stesso codice impianto, la stessa configurazione e lo stesso stato; l'update successivo usa mdm update.
  • In caso di errore il box torna da solo alla 3.2.x funzionante.

Rischi e attenzioni

Mai su box dei clienti prima della prova completa in laboratorio. Segreto AWS di produzione corretto prima (M27, MDM-031). Tag di produzione aggiornati in infra/environments/prod/.env.build_tag (MDM-032).

Riferimenti