{"id":6409,"date":"2019-10-31T15:21:38","date_gmt":"2019-10-31T13:21:38","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=6409"},"modified":"2019-10-31T15:21:40","modified_gmt":"2019-10-31T13:21:40","slug":"neue-version-tags-in-kudos-boards-fuer-docker-kubernetes","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/neue-version-tags-in-kudos-boards-fuer-docker-kubernetes\/","title":{"rendered":"Neue Version-Tags in Kudos Boards f\u00fcr Docker\/Kubernetes"},"content":{"rendered":"<p>Kudos Boards wird seit einiger Zeit in einer \u00fcberarbeiteten Version f\u00fcr Docker und Kubernetes angeboten. Problematisch war in meinen Augen die fehlende Versionierung: Pro Applikation existierte ein Tag, ohne jegliche Versionsangaben. Dies ist \u00e4quivalent zu einem <strong>latest<\/strong> Tag. In Kombination mit der <strong>pullPolicy Always<\/strong> wurde sp\u00e4testens beim Neustart der Anwendung das jeweils neuste Image geladen. <\/p>\n<p>Dies f\u00fchrt zu zwei Problemen: Man hat keine Kontrolle \u00fcber Updates bzw. wird nicht dar\u00fcber informiert. Sollte es danach zu Problemen kommen, gibt es mangels Tags keine M\u00f6glichkeit, auf eine vorherige Version zur\u00fcckzugriefen.<\/p>\n<h2 class=\"wp-block-heading\">Versionieren mit Tags<\/h2>\n<p>Vor einigen Wochen hat ISW auf das Feedback reagiert und zus\u00e4tzliche Tags eingef\u00fchrt. Diese beinhalten einen Tag pro Applikation nach dem Schema {Anwendungsname}-{Releasedatum}. Aktuell beispielsweise <strong>boards-2019-10-16<\/strong>. Da sich dieser im Laufe der Zeit durch Aktualisierungen \u00e4ndert, ist es empfehlenswert zuvor im Docker-Hub nach der aktuellsten stabilen Version zu schauen.<\/p>\n<p>Das Chart hat hierf\u00fcr die globale Variable <strong>imageTagSuffix<\/strong> unter <strong>global<\/strong> eingef\u00fchrt, die in der entsprechenden <strong>values.yaml<\/strong> wie folgt genutzt werden kann:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nglobal:\n  repository: iswkudos\/kudos-boards-docker\n  # Neu in Chart version 2.0.2\n  imageTagSuffix: &quot;2019-10-16&quot;\n  # ...\n<\/pre>\n<\/div>\n<p>Wichtig: Damit die \u00c4nderungen wirksam werden, muss man entweder <strong>helm update<\/strong> mit &#8211;recreate-pods ausf\u00fchren, oder die Pods h\u00e4ndisch l\u00f6schen. Sind die Shortcut-Helper auf dem System installiert, ist letzteres mit folgendem Einzeiler m\u00f6glich:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\nfor i in $(kgpo | sed 1d | egrep -v &quot;mongod|minio&quot; | grep d | awk &#039;{print $1}&#039;); do k delete po $i; done\n<\/pre>\n<\/div>\n<p>Pods der Drittanbieter-Software MongoDB und Minio werden hier ausgeschlossen, da diese eigene Standard-Tags in ihren jeweiligen Charts nutzen. <\/p>\n<h2 class=\"wp-block-heading\">Verifizieren der neuen Tags<\/h2>\n<p>Anschlie\u00dfend k\u00f6nnen wir das Image eines beliebigen Kudos-Pods anschauen. Vor dem Update war kein Versions-Tag gesetzt, wie an folgendem Beispiel zu erkennen:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ kd deployment boards-core | grep -i image\n    Image:      iswkudos\/kudos-boards-docker:core\n<\/pre>\n<\/div>\n<p>Nach der Neuerstellung der Pods sollte hier der gesetzte Tag zu sehen sein:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n$ kd deployment boards-core | grep -i image\n    Image:      iswkudos\/kudos-boards-docker:core-2019-10-16\n<\/pre>\n<\/div>\n<p>So lange Kudos den Tag<strong> 2019-10-16<\/strong> nicht neu pusht, haben wir damit einen konsistenten, definierten Stand. Zu beachten ist, dass die Updates nun auch h\u00e4ndisch vorgenommen werden, da noch keine semantischen Versions-Tags existieren.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kudos Boards wird seit einiger Zeit in einer \u00fcberarbeiteten Version f\u00fcr Docker und Kubernetes angeboten. Problematisch war in meinen Augen die fehlende Versionierung: Pro Applikation existierte ein Tag, ohne jegliche Versionsangaben. Dies ist \u00e4quivalent zu einem latest Tag. In Kombination mit der pullPolicy Always wurde sp\u00e4testens beim Neustart der Anwendung das jeweils neuste Image geladen. &#8230;<\/p>\n","protected":false},"author":5,"featured_media":6410,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,78],"tags":[760,764],"class_list":["post-6409","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","category-software","tag-hcl-connections","tag-kudos-boards"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/6409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=6409"}],"version-history":[{"count":2,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/6409\/revisions"}],"predecessor-version":[{"id":6412,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/6409\/revisions\/6412"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/6410"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=6409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=6409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=6409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}