Neue Version-Tags in Kudos Boards für Docker/Kubernetes

Neue Version-Tags in Kudos Boards für Docker/Kubernetes

Kudos Boards wird seit einiger Zeit in einer überarbeiteten Version für Docker und Kubernetes angeboten. Problematisch war in meinen Augen die fehlende Versionierung: Pro Applikation existierte ein Tag, ohne jegliche Versionsangaben. Dies ist äquivalent zu einem latest Tag. In Kombination mit der pullPolicy Always wurde spätestens beim Neustart der Anwendung das jeweils neuste Image geladen.

Dies führt zu zwei Problemen: Man hat keine Kontrolle über Updates bzw. wird nicht darüber informiert. Sollte es danach zu Problemen kommen, gibt es mangels Tags keine Möglichkeit, auf eine vorherige Version zurückzugriefen.

Versionieren mit Tags

Vor einigen Wochen hat ISW auf das Feedback reagiert und zusätzliche Tags eingeführt. Diese beinhalten einen Tag pro Applikation nach dem Schema {Anwendungsname}-{Releasedatum}. Aktuell beispielsweise boards-2019-10-16. Da sich dieser im Laufe der Zeit durch Aktualisierungen ändert, ist es empfehlenswert zuvor im Docker-Hub nach der aktuellsten stabilen Version zu schauen.

Das Chart hat hierfür die globale Variable imageTagSuffix unter global eingeführt, die in der entsprechenden values.yaml wie folgt genutzt werden kann:

global:
  repository: iswkudos/kudos-boards-docker
  # Neu in Chart version 2.0.2
  imageTagSuffix: "2019-10-16"
  # ...

Wichtig: Damit die Änderungen wirksam werden, muss man entweder helm update mit –recreate-pods ausführen, oder die Pods händisch löschen. Sind die Shortcut-Helper auf dem System installiert, ist letzteres mit folgendem Einzeiler möglich:

for i in $(kgpo | sed 1d | egrep -v "mongod|minio" | grep d | awk '{print $1}'); do k delete po $i; done

Pods der Drittanbieter-Software MongoDB und Minio werden hier ausgeschlossen, da diese eigene Standard-Tags in ihren jeweiligen Charts nutzen.

Verifizieren der neuen Tags

Anschließend können wir das Image eines beliebigen Kudos-Pods anschauen. Vor dem Update war kein Versions-Tag gesetzt, wie an folgendem Beispiel zu erkennen:

$ kd deployment boards-core | grep -i image
    Image:      iswkudos/kudos-boards-docker:core

Nach der Neuerstellung der Pods sollte hier der gesetzte Tag zu sehen sein:

$ kd deployment boards-core | grep -i image
    Image:      iswkudos/kudos-boards-docker:core-2019-10-16

So lange Kudos den Tag 2019-10-16 nicht neu pusht, haben wir damit einen konsistenten, definierten Stand. Zu beachten ist, dass die Updates nun auch händisch vorgenommen werden, da noch keine semantischen Versions-Tags existieren.

Leave a Reply