Sonarqube im Kubernetes Cluster

Sonarqube ist ein Open Source Tool, um die Verbesserung der Qualität der Software zu erhöhen. Sonarqube bedindt sich der statischen Codeanalyse und kann verhindern, dass übliche Fehler sich in den Quelltext einschleichen.

Für die Installation sollte zunächst ein K3D aufgesetz werden.

Da es im moment kein offizielles Helm Chart für die Installation gibt, es aber im Stable Repository auf oteemocharts verwiesen wird, nutze ich das Repository.

Repository hinzufügen

Zunächst muss man das Repository von oteemocharts hinzufügen.

helm repo add oteemocharts https://oteemo.github.io/charts

Installation

Die Installation ist recht einfach. Es sind für den Basisbetrieb zunächst nur wenige Parameter nötig. Wie üblich sollte man die Anwendung in einem eigenen Namespace laufen lassen. Ich verwende hier den Namespace sonarqube.

kubectl create namespace sonarqube
helm install sonarqube --namespace sonarqube oteemocharts/sonarqube --set ingress.enabled=true --set ingress.hosts[0].name=sonarqube.xxx.org

Nach dem Download dauer es jedoch einen kleinen Augenblick bis Sonarqube gestartet ist. Es muss zunächst die Datenbank initialisiert werden und der Startup nimmt einige Zeit in Anspruch.

Anmeldung

Ist die Anwendung gestartet, dann kann man sich mit den Standard admin und admin Credentials anmelden.

KubeApps

Mit Kubeapps lassen sich Anwendungen per Operator oder Helm Chart sehr schnell und einfach deployen. Es können beliebige Repository hinzugefügt werden, sodass sich schnell eine Vielzahl von Anwendungen deployen lassen.

Vorteile von Kubeapps

Einer ger großen Vorteile von Kubeapps ist, dass man eine Basiskonfiguration von Helm Charts per UI vornehmen kann. Die Values werden dann im Chart entsprechend gesetzt. Das macht es gerade auch für Anfänger einfacher einen Überblick über die unzähligen Parameter zu gewinnen.

Installation

Die Installation von Kubeapps geschiet seinerseits wiederum der Helm Chart. Besondere Voraussetzungen sind nicht zu erfüllen.

helm install kubeapps --namespace kubeapps bitnami/kubeapps --set ingress.enabled=true --set ingress.hostname=kubeapps.xxx.org

Für eine Installation empfehle ich immer mit Ingress zu arbeiten. Dazu muss ein Reverse Proxy vorhanden sein, der die Anfragen weiterleitet und ein entsprechend konfigurierter DNS. Auch ein Zertifikat z.B. mit DuckDNS beseitigt durch TLS viele Probleme.

Kubernetes mit K3D

Mit K3D lässt sich schnell ein Cluster aufsetzen. Wer also noch keinen hat, der sollte hier nicht zurückschrecken. Es lässt sich mit K3D schnell auch auf älterer Hardware ein Cluster aufsetzen. Es lohnt sich.

Serviceaccout für den Cluster-Admin erstellen

Damit man nun mit Kubeapps Anwendungen deployen kann, benötigt man ein Token. Diese sollte zu einem Serviceaccout mit cluster-admin Rechten gehören. In dem Artikel Cluster-Admin Serviceaccount beschreibe ich wie das geht.

Mit dem nun erzeugten Token könnt ihr euch nun in Kubeapps anmelden und das Erste Deployment vornehmen.