SonarQube is an open sourced code quality scanning tool.
You can use a helm chart, but at the time of writing this blog I didn’t see a Google SQL proxy option. I ended up using helm template to generate the majority of the yaml files and added the Google SQL proxy parts myself.
https://github.com/Oteemo/charts/tree/master/charts/sonarqube
Create Database
https://cloud.google.com/sql/docs/mysql/connect-kubernetes-engine#before_you_begin
I used PostgreSQL 12 and created a user account and a database called sonar.
https://docs.sonarqube.org/latest/requirements/requirements/
Create namespace
kubectl create ns sonarqube
Create Google Service Account
Create secrets
Service Account
This secret enables authentication to Cloud SQL.
kubectl -n sonarqube create secret generic sonarqube-cloudsql-instance-credentials \
--from-file=credentials.json=./credentials.json
Database Username & Password
- Update [PASSWORD]
kubectl -n sonarqube create secret generic sonarqube-cloudsql-db-credentials \
--from-literal=username=sonar \
--from-literal=password="[PASSWORD]" \
--from-literal=url="jdbc:postgresql://localhost:5432/sonar"
Create
- Download the yaml file
- Update [YOUR_GOOGLE_CLOUD_CONNECTION_NAME]
kubectl apply -f sonarqube-example.yaml
Connect
Create a port-forward connection.
kubectl port-forward deploy/sonarqube 9000:9000 -n sonarqube
Open in browser.
open http://localhost:9000
Login (default).
- Username: admin
- Password: admin