Multi-Stack Produkte

Definiere komplexe Anwendungen mit mehreren Docker Stacks und gemeinsamen Variablen in einem einzigen Manifest.

Was sind Multi-Stack Produkte?

Multi-Stack Produkte ermöglichen es, komplexe Anwendungen zu definieren, die aus mehreren Docker Stacks bestehen. Statt jeden Stack einzeln zu verwalten, werden sie in einem einzigen RSGo Manifest zusammengefasst.

Typische Anwendungsfälle

  • Microservices-Architekturen: Frontend, Backend und Datenbank als separate Stacks mit gemeinsamer Konfiguration
  • Multi-Tenant Setups: Basis-Stack mit kundenspezifischen Erweiterungen
  • Development Environments: Entwicklungs-Tools und Abhängigkeiten in einem Produkt gebündelt

Gemeinsame Variablen

Ein zentrales Feature ist die Möglichkeit, Variablen auf Produkt-Ebene zu definieren, die von allen Stacks genutzt werden können:

product:
  name: my-application
  variables:
    - name: DATABASE_HOST
      type: String
      description: Shared database hostname

stacks:
  - name: backend
    variables:
      - name: DATABASE_HOST  # Übernimmt Definition vom Produkt

  - name: frontend
    variables:
      - name: API_URL
        type: String

Variable Override Behavior

Wenn eine Variable sowohl auf Produkt- als auch auf Stack-Ebene definiert ist, werden die Definitionen intelligent zusammengeführt:

Merge-Regeln:

  • Stack-spezifische Werte überschreiben Produkt-Werte
  • Typ und Validierung werden vom Produkt vererbt
  • Beschreibungen können auf Stack-Ebene angepasst werden

Vorteile

  • Konsistenz: Einheitliche Konfiguration über alle Stacks
  • Wiederverwendbarkeit: Gemeinsame Variablen nur einmal definieren
  • Übersichtlichkeit: Alle Komponenten in einem Manifest
  • Deployment: Ein-Klick Installation des gesamten Produkts