Deployment System Development

Overview / Goal

With yocto and FESA a new deployment system is needed. Find the meeting notes an design decisions here.

Feature Requests 11.6.2024

  • start procedure for yocto on ppc to get and start the DevAcc -SW -> urgent! DDay?
    • ramdisk zu klein für ansible
    • CHandel schlägt ein yocto image pro PPC
      • früher image + zip (mvn deploy descriptor)
      • jetzt image mit/inklusive zip -> rezept pro FEC -> bitbake
      • manifest, rezept -> bauen mit vollem yocto

Design Thoughts

deploy.drawio.png

Package Server

fastapi: https://fastapi.tiangolo.com/

ist nicht auf dem cluster drauf. Zum ausprobieren am besten python venv
und pip.

Provisioning

ansible: https://www.ansible.com/

intro: https://docs.ansible.com/ansible/latest/getting_started/introduction.html

ist auf dem cluster drauf.

Fuer vmla022 habe ich eine custom ramdisk in der die benoetigten python
teile fuer ansible drin sind und das package management aktiv ist.

Und ein git repository mit einem (basic) beispiel

https://git.acc.gsi.de/embedded/ansible-test


package management ist aktiv. Aber ansible kann das nur mit einem extra
modul verwenden. Da wir noch keinen package feed haben...

Aber man kann z.B. sehen aus welchen paketen die ramdisk zusammengebaut
ist und wie gross das jeweils ist

opkg list --size

package management

package management in yocto zur laufzeit. Das standard scu image am 2024-06-18 hat damit folgende groessen

format cpio.gz cpio tree
ipk 45447819 117221376 116854408
deb 52185909 133527552 133139001
rpm 65647228 178408960 177920920

Meetings

2024-06-11

API
  • Authentifizierung
    • OIDC -> bei Fragen Christoph
    • Kerberos (command-line)
    • API-Tokens (Token generieren für eigenes Skript)
  • Ablegen der yaml/ansible-config
    • SQL-DB -> skaliert besser
    • Git auf Dateisystem
      • yaml pro FEC, locken

Dev-Unterstützung
  • Hotfixes erstmal mit Shellscript einspielen
Paketstream
  • Pakete bauen aus DU & instance (opkg ist nested zip mit Manifest)
  • opkg-files ausliefern
    • an die API als blob reichen -> initial ablegen im Dateisystem
    • package feed anlegen? -> eher später, derzeit zu komplex
FEC
  • fragt regelmäßig nach config nach dem ersten boot -> CHandel
    • call gegen die API mit Rechnername, IP
    • API generiert Ansiblecode und führt den aus. -> mit workerthread
  • Deploy-sys kennt die private-keys aller FECs / initaler deploy-key, der danach geändert wird
Aufgaben
  • Auth mit fastapi -> MWiebel
  • Generierung von yaml-files in python -> DDay

2024-06-27

API
  • Mögliche Endpoints
    • sshkeyupload (user-keys)
    • uploadDU (Paket im Deploy-system erzeugen)
    • giveMeSoftware (FEC fragt DS)
    • pushOnFec (user beauftragt DS)
  • Authentifizierung
    • OIDC -> bei Fragen Christoph
      • zuerst das probieren
    • Kerberos (command-line)
      • untersucht MWiebel noch
    • API-Tokens (Token generieren für eigenes Skript)
      • geht

Dev-Unterstützung
Paketstream
  • starten mit debian, weil Kompromiss aus Größe und Tooling
FEC
Nächster Termin

-- MatthiasWiebel - 11 Jun 2024
Topic revision: r6 - 27 Jun 2024, MatthiasWiebel
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback