Vor über 4 Jahren habe ich bereits im Beitrag Logging in Java ein paar grundlegende Gedanken zum Thema Logging geäußert. Dabei bin ich recht unspezifisch geblieben und habe nur ein paar grundlegende Ideen geäußert. Diesmal will ich etwas konkreter werden.
Ich mache oft den „Spaß“ beim Starten von Maven den beliebten Satz zu sagen: „Jetzt lädt Maven erstmal das Internet runter.“ – denn beim ersten Lauf auf einem Rechner müssen dutzende Libraries alleine für Maven geladen werden.
Aber eben habe ich bei einem kleineren quarkus.io-basierten Projekt mal ein „mvn site“ gestartet …
DAS kann man dann „Internet herunterladen“ nennen.
Nachdem wir uns im letzten Teil das quay.io-Container-Repository aufgesetzt haben Das Aufsetzen der OpenShift basierten GitHub Action Runner ist der letzte Schritt, den wir noch brauchen, um die CI-Pipeline fertig zu haben. Und darum kümmern wir uns in diesem Artikel.
In diesem Teil der Artikelserie befassen wir uns, nachdem das GitHub-Source-Repository existert, mit dem quay.io-Repository und dem Einrichten eines Robot-Benutzers für die Nutzung durch GitHub Actions.
In der Softwareentwicklung gehören CI/CD-Pipelines inzwischen zum guten Ton. Allerdings braucht man hierfür einiges an Infrastruktur, um den Buildprozess so weit zu automatisieren. In dieser kurzen Artikelserie will ich eine mögliche Pipeline auf Basis von GitHub, GitHub Actions, quay.io und OpenShift-basierten Runnern für GitHub Actions betrachten. Ich nutze hier OpenShift, da ich einen OKD-Cluster zu Verfügung habe, aber die Runner lassen sich auch 1:1 für Kubernetes-Cluster nutzen.
Meine Software ist eine Java spring-boot-Anwendung, die per Maven gebaut wird. Aber dies betrifft nur den kurzen build-Teil der Pipeline und man kann die gleiche Methode auch für Gradle-Builds oder auch für node.js nutzen – man muss gegebenenfalls einen anderen Build-Runner aussuchen.
Nach der Winterpause geht es weiter im Live-Coding. Ich habe einen Discord-Bot, der bereits für Rollenspiele würfeln kann.
Im Moment binde ich ihn an die Webseite DriveThruRPG an, der im Rollenspielbereich größten Seite für digitale Downloads (hauptsächlich PDFs). Diese Anbindung soll als Basis dienen, dort abzufragen, welche Bücher, Spielkartensets usw. jemand gekauft hat, damit die entsprechenden Informationen/Bilder/… angezeigt werden können.
Heute ist es wieder soweit! Um 20:30 werde ich auf https://twitch.tv/klenkes74 wieder live programmieren. Ich habe mich freiwillig gemeldet, an einem Community-Projekt zu helfen, bei dem wir eine spezialisierte Suchmaschine bauen. Hier bekommen wir ASCIIDOC Quelltexte geliefert, die wir einerseits verschlagworten und dann auch noch einer Volltextdatenbank übergeben.
Bis jetzt ist der Code in Python geschrieben, aber da ich kein Python beherrsche, besteht meine erste Aufgabe, den Code zu verstehen und nach Java zu transponieren.
Als Basis habe ich mir – natürlich – Quarkus gewählt, da mir hier schon viele Integrationen mundgerecht geliefert werden. Ein leeres Scaffolding habe ich auch schon, ich starte damit, die Datenbank via Liquibase einzurichten, um dann den Code in die Datenbank schreiben zu lassen.
Den Quellcode gibt es erstmal nicht öffentlich, aber das könnte sich eventuell auch ändern – ich bin aber nicht der Projektlead und kann das daher nicht entscheiden.
OpenShift offers a variety of possible integrations into security providers. The integration is divided into authentication and authorization. Authentication is handled by one of the configurable IdentityProviders of OpenShift. While authorization is handled by importing groups into OpenShift. For importing groups the most used method is reading from an LDAP (or an Active Directory via its LDAP interface). OpenShift already has a synchronization tool for this type of synchronization. And as long as that tool is sufficient, there are more reasons to stay with that tool than to replace it. But there are some situations where you need to replace it. And here the base software I written and published to github project klenkes74/openshift-ldapsync.
Der Artikel „Is Standard Java Logging Dead?“ auf dzone.com hat mich animiert, wieder einmal ein paar Gedanken zu Papier zu bringen. Logging ist immer ein nettes Thema in den Projekten. Meistens wird wenig dazu gesagt oder vereinbart. Jeder Programmierer zieht sein Ding durch. Doch wenn Logging wirklich helfen soll, dann muss man sich ein paar Gedanken machen.