Spezifikation Mint Cloud
Die Mint Cloud Hosting-Platform basiert auf Odoo und Kubernetes.
Architektur
Technisch
Der Kern der Architektur bildet der Odoo Webshop. Er ist die Schnittstelle nach Aussen zum Kunden und nach Innen zu den Kubernetes-Umgebungen.
Odoo Webshop
Specification Website Sale Helm
Ansible
Die Manifest-Dateien kommen aus dem Ansible Build Projekt. Der Odoo Kubernetes-Controller verwendet somit die gleichen Manifest-Dateien wie Ansible.
Mailgun
Mit Mailgun können Absender-Domain registriert werden: Mailgun > Create a domain.
Exoscale
Exoscale ist nur einer von Möglichen "Managed Kubernetes Providern".
Payrexx
Payrexx ist ein Schweizer Zahlungsanbieter. Es gibt bereits Integrationen für Odoo.
Codey
Codey ist ein Projekt der VSHN AG und soll eine Schweizer Alternative zu GitHub und Co beiten.
Workflow
Rollen: Kunde, Operator
System: Odoo, Kubernetes
ConfigMap erfassen:
- Der Operator loggt sicht im Odoo Backend ein
- Er erfasst unter Kubernetes > ConfigMaps einen Eintrag
- Er legt fest, ob die ConfigMap eine Vorlage ist
Manifest erfassen:
- Der Operator loggt sicht im Odoo Backend ein
- Er erfasst unter Kubernetes > Manifests einen Eintrag
- Ein Manifest hat einen Titel und eine URL auf die YAML-Datei
- Odoo zeigt eine Vorschau der Manifest-Datei, wenn die URL eingetragen wird
Hosting-Produkt erfassen:
- Anschliessend öffnet er Website > Produkte
- Er erfasst ein neues Produkt Odoo-Hosting als Subscription
- Im Tab Kubernetes wählt er die Vorlage ConfigMap, Environment und Manfeste zur Anwendung aus
Hosting einkaufen:
- Ein Kunde besucht Webshop
- Der Kunde legt ein Odo-Hosting in den Warenkorb
- Im Checkout-Prozess gibt der Kunde einen Appnamen ein
- Er sieht einen Hinweis, dass der Appname als Subdomain verwendet wird
- Odoo validiert die Eingabe des Appnamen
- Der Kunde bezahlt den Warenkorb
- Odoo erstellt eine subscription udn löst ein Deployment aus
- Odoo versendet eine Einladung via Mailgun unter dem App-Hostname
- Der Kunde erhält ein E-Mail mit den Zugriffsdaten
Deployment:
- Odoo legt eine Subscription an
- Für jede Auftragszeile -> Produkt -> Environments wird ein Namespace und eine App erstellt
- Der Namespace wird direkt in Kubernetes angelegt
- Beim Erstellen der App wird die ConfigMap vom Produkt kopiert
- Odoo lädt in Reihenfolge die Manifest-Dateien herunter
- Odoo wendet die Werte der ConfigMap als Jinja-Template auf die Manifest-Dateien an
- Odoo wendet die Manifest-Dateien an.
- Kubernetes erstellt die Deployments und Services.
ConfigMap exportieren:
- Der Operator loggt sich im Odoo Backend ein
- Er zeigt die Kubernetes Apps an und öffnen einen Eintrag
- Mit einem Klick auf Aktion > Export ConfigMAp erhält er ein Ansible
vars.yml
Manuelles Deployment:
- Der Operator loggt sicht im Odoo Backend ein
- Er zeigt die Kubernetes Apps an und öffnen einen Eintrag
- Er klickt auf "Apply" und "Update"
- Odoo prüft den Status des Ingress und zeigt diesen an
Integration zurücksetzen:
- Der Kunde loggt sich Odoo Portal ein
- Er öffnet die Apps-Kachel und wählt eine App aus
- In der Detailansicht wählt der die Aktion "Reset"
- Odoo triggert ein Deployment
Integration manuell zurücksetzen:
- Der Operator loggt sicht im Odoo Backend ein
- Er zeigt die Kubernetes Apps an und öffnen einen Integration-Eintrag
- Er klickt auf den "Reset" Button