Mit Services verbinden
Dieses Feature befindet sich derzeit in der Beta-Phase und ist nur über nctl verfügbar. Cockpit-Unterstützung ist noch nicht implementiert.
Deploio-Applikationen können sich mit On-Demand Services wie Datenbanken und Key-Value Stores verbinden, indem sie Service-Referenzen in der Applikation definieren. Nine injiziert die Verbindungsdaten automatisch als Umgebungsvariablen in die Applikation zur Laufzeit.
Dabei erstellt und verwaltet Nine automatisch eine verschlüsselte ServiceConnection im Projekt des Ziel-Services. Eine manuelle Netzwerkkonfiguration ist nicht erforderlich.
Unterstützte Services
Folgende Service-Typen können von einer Deploio-Applikation referenziert werden:
Service-Referenz hinzufügen
Jede Service-Referenz erfordert ein Ziel (den gewünschten Service).
- Cockpit
- nctl
Verwenden Sie beim Erstellen einer neuen Applikation --service im Format name=kind/target-name:
nctl create application my-app \
--git-url=https://github.com/example/app.git \
--service cache=keyvaluestore/my-kvs
Um einen Service zu einer bestehenden Applikation hinzuzufügen:
nctl update application my-app \
--service cache=keyvaluestore/my-kvs
Um eine Service-Referenz zu entfernen:
nctl update application my-app \
--delete-service cache
Injizierte Umgebungsvariablen
Sobald die Service-Referenzen konfiguriert sind, injiziert Nine die Verbindungsdaten als Umgebungsvariablen in jede Instanz der Applikation. Die Variablen folgen diesem Namensformat:
NINE_<SERVICE_TYPE>_<NAME>_<KEY>
Das Verbinden mit einem Key-Value Store prod und einer MySQL-Datenbank prod ergibt
beispielsweise Variablen wie diese:
NINE_KEYVALUESTORE_PROD_URL=redis://...
NINE_MYSQLDATABASE_PROD_URL=mysql://...
Die genauen Variablennamen und verfügbaren Keys hängen vom jeweiligen Service-Typ ab.