Praxiswissen: Micronaut Environment-Konfiguration für GitLab CI/CD

von Tobias Kraft

Konfigurationen

Für eine Server-Applikation werden in der Regel verschiedene Konfigurationen abhängig von der jeweiligen Umgebung (Environment) und der Nutzung eingesetzt. Ein klassisches Beispiel hierfür ist die Datenbankverbindung, die für die Produktionsumgebung andere Parametrierungen besitzt wie im lokalen Testmodus. Auch die Einstellungen des angebundenen Mail-Servers sowie automatisch laufende Jobs unterscheiden sich normalerweise zwischen den Umgebungen.

Micronaut stellt verschiedene Formate (YAML, JSON, ...) zum Setzen der Konfigurationen zur Verfügung. Am bekanntesteten ist die Nutzung der application.yml Dateien. Abhängig von der Umgebung erhält diese Datei ein Suffix wie bspw. application-test.yml zum Setzen Umgebungs-spezifischer Eigenschaften.
Neben den Dateien können Konfiguration auch über Umgebungs-Variablen gesetzt und überschrieben werden.

GitLab CI/CD

Für Continuous Integration und Continuous Delivery erfreut sich GitLab CI/CD zwischenzeitlich großer Beliebtheit. Hauptgründe sind die direkte Verbindung zwischen Source-Code-Verwaltung und gleichzeitigen CI/CD-Funktionalitäten in einem Werkzeug sowie die einfache Integration mit Containern.

Beim Durchlaufen der CI/CD-Pipelines sind automatisierte Tests einer der Kernaspekte. Die Konfiguration für die Durchführung von Tests mit GitLab CI/CD kann, abhängig vom Projekt, unterschiedlich zu den Einstellungen für die Durchführung von lokalen Tests sein. Dies bedeutet, dass Einträge in der Datei application-test.yml nicht valide für die Ausführung mit der CI/CD Pipeline sind.

Individuelle Umgebungs-Konfiguration einrichten

Für die Durchführung der Tests über GitLab CI/CD bietet sich deshalb die Erstellung einer separaten YAML-Datei application-gitlab.yml an.

Die Vorteile einer solchen Datei mit allen individuellen Definitionen sind darin zu sehen, dass diese im gleichen Verzeichnis wie die anderen Standard-Konfigurations-Dateien abgelegt und mit versioniert werden kann. Dadurch hat man im Vergleich zu Umgebungsvariablen immer alles auf einen Blick und Änderungen bzw. Erweiterungen können bequem von den Entwicklern in der IDE vorgenommen werden.

Übersicht YAML-Dateien

Um für eine ausführbare Micronaut-Applikation die Konfiguration aus einer separaten Datei zu nutzen, kann diese einfach mit dem entsprechenden Parameter gestartet werden. Die Datei wird automatisch angezogen, wenn sie im gleichen Verzeichnis oder im Classpath liegt.

java -Dmicronaut.environments=gitlab -jar myapp.jar

Die Ausführung der Tests erfolgt jedoch nicht mit einer fertigen Applikation, sondern über das Build-Tool von Micronaut. Hier stehen gradle und maven zur Auswahl.
Dies hat zur Folge, dass die Umgebung nicht analog wie bei einer ausführbaren Applikation mitgegeben werden kann.

Durch Nutzen der Umgebungsvariable MICRNAUT_CONFIG_FILES existiert jedoch ein einfacher Weg für die Bekanntmachung der individuellen Konfigurationen.
Diese Variable referenziert die für GitLab spezifische Datei. Beim Ausführen der Tests mit gradlew test werden die Einstellungen aus der referenzierten Datei angezogen.

Ausschnitt aus der Pipeline-Definition .gitlab-ci-yml

test:
  stage: test
  services:
    - mysql:5.7
  variables:
    MYSQL_DATABASE: "myapp"
    MYSQL_ROOT_PASSWORD: "mypassword"
  script:
    - export MICRONAUT_CONFIG_FILES=./src/main/resources/application-gitlabci.yml    
    - ./gradlew clean test --stacktrace
  artifacts:
    expire_in: 7 days
    when: always
    reports:
      junit: ./build/test-results/**/TEST-*.xml

Alle Ausführungsschritte der GitLab Pipeline werden in der Datei .gitlab-ci.yml definiert. Im oben aufgeführten Listing sind in der Sektion script die für Micronaut vorgenommenen Settings zu sehen.

 

 

 

Zurück

© 2006-2023 exensio GmbH
Einstellungen gespeichert

Datenschutzeinstellungen

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell, während andere uns helfen, diese Website und Ihre Erfahrung zu verbessern.

Sie können Ihre Einwilligung jederzeit ändern oder widerrufen, indem Sie auf den Link in der Datenschutzerklärung klicken.

Zu den gesetzlichen Rechenschaftspflichten gehört die Einwilligung (Opt-In) zu protokollieren und archivieren. Aus diesem Grund wird Ihre Opt-In Entscheidung in eine LOG-Datei geschrieben. In dieser Datei werden folgende Daten gespeichert:

 

  • IP-Adresse des Besuchers
  • Vom Besucher gewählte Datenschutzeinstellung (Privacy Level)
  • Datum und Zeit des Speicherns
  • Domain
You are using an outdated browser. The website may not be displayed correctly. Close