2017-08-21 4 views
0

Ich habe derzeit einen Prozess an seinem Platz zu bauen und unsere Anwendung Openshift die Jenkins Openshift-Plugin über folgende Befehle Verwendung bereitstellen:Hinzufügen von Umgebungsvariablen bereits implementierte Anwendung in Openshift

openshift.newBuild("--image-stream=${builderImageName}", "--binary=true", "-n ${projectName}", "--to=${applicationName}:${targetEnv}") 
openshift.startBuild("${applicationName}", "--from-dir=.", "--wait=true", "-n ${projectName}") 
openshift.newApp("-n ${projectName}", "--template=${templateName}", "--param-file=${appDeployConfigFileName}", "--env-file=${appEnvFileName}") 

Das wie vorgesehen funktioniert. Meine Frage ist, sobald die App bereitgestellt wurde, wie kann ich die Env-Variablen aktualisieren, wenn zusätzliche hinzugefügt werden müssen? Ich möchte im Grunde die Funktionalität des Durchgehens des ui und des Hinzufügens von env-Variablen duplizieren. Allerdings würde ich dies mit dem openshift plugin oder oc tool machen und eine Datei mit Variablen verwenden, nicht nur eine Menge von Schlüsselwerten.

Antwort

1

Sie müssen die Bereitstellung Konfiguration für Ihre Anwendung

oc set env dc/<your_app> MYVAR=foo -n <project_name> 
+0

Danke für die Antwort, ich habe das ausprobiert und es funktioniert, aber das Problem mit dieser Lösung ist, dass es mehrere env Variablen sein kann zu sein hinzugefügt. Anfangs werden sie in einer env-Datei in einer neuen App übergeben. Wenn ich diese Datei in SCM speichern und dann die Variablen aktualisieren möchte, müsste ich den Befehl analysieren und zusammenführen. Ich hatte auf eine Möglichkeit gehofft, die gesamte Datei erneut zu übergeben. – Scrobert

+1

Verwenden Sie stattdessen eine Konfigurationskarte. Dies würde die ursprünglichen Schlüssel/Werte enthalten. Wenn Sie der Implementierungskonfiguration Umgebungsvariablen hinzufügen, müssen Sie sie aus der Konfigurationszuordnung referenzieren. Sie können dann die Konfigurationskarte auf einmal bearbeiten/ersetzen, und die erneute Bereitstellung wird automatisch ausgelöst. –

+0

Korrekte Antwort ist eine ConfigMap – user2983542

0

aktualisieren Wenn Sie versuchen, die Umgebungsvariablen in SCM mit einem Builder Bild zu speichern (w/S2I aka Source-Bild Behälter Bild aktiviert), verwenden Sie eine Umgebungsdatei .s2i/environment.

+0

Danke für den Kommentar. Ich möchte die Umgebungsvariablen nicht an den Build koppeln, da sie sich von Umgebung zu Umgebung ändern werden. Ich möchte sie in der DeploymentConfig angeben. – Scrobert

Verwandte Themen