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
Verwende 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
Wenn Service-Referenzen konfiguriert sind, injiziert Nine die Verbindungsdaten als
Umgebungsvariablen in jede Instanz der Applikation. Die Variablennamen folgen dem Format
NINE_<IDENTIFIER>_<NAME>_<KEY>, wobei <NAME> der Name der Ziel-Serviceressource ist,
in Grossbuchstaben mit nicht-alphanumerischen Zeichen ersetzt durch _.
Die verfügbaren Variablen hängen vom Service-Typ ab:
- Key-Value Store
- PostgreSQL — Business
- PostgreSQL — Economy
- MySQL — Business
- MySQL — Economy
- OpenSearch
| Variable | Beschreibung |
|---|---|
NINE_KVS_<NAME>_FQDN | Hostname. Verwendet privates Networking-DNS, wenn privates Networking konfiguriert ist; andernfalls den öffentlichen Hostname. |
NINE_KVS_<NAME>_PORT | Port (immer 6379). |
NINE_KVS_<NAME>_USER | Benutzername. |
NINE_KVS_<NAME>_PASSWORD | Passwort. |
NINE_KVS_<NAME>_CA_CERT | CA-Zertifikat. Wird nur injiziert, wenn ein CA-Zertifikat vorhanden ist. |
| Variable | Beschreibung |
|---|---|
NINE_PG_<NAME>_FQDN | Hostname. Verwendet privates Networking-DNS, wenn privates Networking konfiguriert ist; andernfalls den öffentlichen Hostname. |
NINE_PG_<NAME>_PORT | Port (immer 5432). |
NINE_PG_<NAME>_USER | Benutzername. |
NINE_PG_<NAME>_PASSWORD | Passwort. |
NINE_PG_<NAME>_CA_CERT | CA-Zertifikat. Wird nur injiziert, wenn ein CA-Zertifikat vorhanden ist. |
NINE_PG_<NAME>_DSN | Vollständige PostgreSQL-Verbindungs-URI (postgres://user:pass@host:port/dbname). |
| Variable | Beschreibung |
|---|---|
NINE_PGDB_<NAME>_FQDN | Hostname. Verwendet privates Networking-DNS, wenn privates Networking konfiguriert ist; andernfalls den öffentlichen Hostname. |
NINE_PGDB_<NAME>_PORT | Port (immer 5432). |
NINE_PGDB_<NAME>_USER | Datenbankname (entspricht dem bei der Erstellung vergebenen Namen). |
NINE_PGDB_<NAME>_PASSWORD | Passwort. |
NINE_PGDB_<NAME>_CA_CERT | CA-Zertifikat. Wird nur injiziert, wenn ein CA-Zertifikat vorhanden ist. |
NINE_PGDB_<NAME>_DSN | Vollständige PostgreSQL-Verbindungs-URI (postgres://user:pass@host:port/dbname). |
| Variable | Beschreibung |
|---|---|
NINE_MYSQL_<NAME>_FQDN | Hostname. Verwendet privates Networking-DNS, wenn privates Networking konfiguriert ist; andernfalls den öffentlichen Hostname. |
NINE_MYSQL_<NAME>_PORT | Port (immer 3306). |
NINE_MYSQL_<NAME>_USER | Benutzername. |
NINE_MYSQL_<NAME>_PASSWORD | Passwort. |
NINE_MYSQL_<NAME>_CA_CERT | CA-Zertifikat. Wird nur injiziert, wenn ein CA-Zertifikat vorhanden ist. |
| Variable | Beschreibung |
|---|---|
NINE_MYSQLDB_<NAME>_FQDN | Hostname. Verwendet privates Networking-DNS, wenn privates Networking konfiguriert ist; andernfalls den öffentlichen Hostname. |
NINE_MYSQLDB_<NAME>_PORT | Port (immer 3306). |
NINE_MYSQLDB_<NAME>_USER | Benutzername (entspricht dem bei der Erstellung vergebenen Datenbanknamen). |
NINE_MYSQLDB_<NAME>_PASSWORD | Passwort. |
NINE_MYSQLDB_<NAME>_CA_CERT | CA-Zertifikat. Wird nur injiziert, wenn ein CA-Zertifikat vorhanden ist. |
| Variable | Beschreibung |
|---|---|
NINE_OS_<NAME>_FQDN | Hostname. Verwendet privates Networking-DNS, wenn privates Networking konfiguriert ist; andernfalls den öffentlichen Hostname. |
NINE_OS_<NAME>_USER | Benutzername. |
NINE_OS_<NAME>_PASSWORD | Passwort. |
NINE_OS_<NAME>_CA_CERT | CA-Zertifikat. Wird nur injiziert, wenn ein CA-Zertifikat vorhanden ist. |