SonarQube empowers all developers to write cleaner and safer code.
Before you can install the chart you will need to add the stevehipwell
repo to Helm.
helm repo add stevehipwell https://stevehipwell.github.io/helm-charts/
After you've installed the repo you can install the chart.
helm upgrade --install --namespace default --values ./my-values.yaml my-release stevehipwell/sonarqube
The following table lists the configurable parameters of the SonarQube chart and their default values.
Parameter | Description | Default |
---|---|---|
image.repository |
Image repository. | sonarqube |
image.tag |
Image tag. | {{ .Chart.AppVersion }}-community |
image.pullPolicy |
Image pull policy. | IfNotPresent |
image.pullSecrets |
DEPRECATED Image pull secrets, use imagePullSecrets instead. |
[] |
imagePullSecrets |
Image pull secrets, will override image.pullSecrets . |
[] |
nameOverride |
Override the name of the chart. | nil |
fullnameOverride |
Override the full name of the chart. | nil |
commonLabels |
Labels to add to all chart resources. | {} |
serviceAccount.create |
If true , create a new service account. |
true |
serviceAccount.labels |
Labels to add to the service account. | {} |
serviceAccount.annotations |
Annotations to add to the service account. | {} |
serviceAccount.name |
Service account to be used. If not set and serviceAccount.create is true , a name is generated using the full name template. |
nil |
serviceAccount.automountToken |
If true , mount the ServiceAccount token. |
false |
deployment |
If true , a Deployment will be created instead of a StatefulSet . IMPORTANT - Do not change this value after installing the chart, you could loose your data. |
true |
podLabels |
Annotations to add to the pod. | {} |
podAnnotations |
Annotations to add to the pod. | {} |
podSecurityContext |
Security context for the pod. | { fsGroup: 1000 } |
securityContext |
Security context for the sonarqube container. | { runAsUser: 1000 } |
priorityClassName |
Priority class name to use. | null |
terminationGracePeriodSeconds |
Termination grace period in seconds. | 30 |
livenessProbe |
The liveness probe. | See values.yaml |
readinessProbe |
The readiness probe. | See values.yaml |
service.type |
Service type. | ClusterIP |
service.clusterIP |
Service cluster IP. | null |
service.annotations |
Annotations to add to the service. | {} |
service.port |
Service port. | 9000 |
ingress.enabled |
If true , create an ingress object. |
false |
ingress.annotations |
Ingress annotations. | {} |
ingress.ingressClassName |
Ingress class to use. | "" |
ingress.hosts |
Ingress hosts. | [] |
ingress.tls |
Ingress TLS configuration | [] |
persistence.enabled |
If true , create a PVC. |
false |
persistence.annotations |
Annotations to add to the PVC. | {} |
persistence.existingClaim |
Use an existing PVC to persist data. | nil |
persistence.accessMode |
Persistence access mode. | ReadWriteOnce |
persistence.storageClass |
PVC storage class (use - for default). |
standard |
persistence.size |
Size of PVC to create. | 8Gi |
extraVolumeMounts |
Additional volume mounts for the sonarqube container. | [] |
resources |
Resource requests and limits for the sonarqube container. | {} |
extraInitContainers |
Additional init containers for the pod. | [] |
extraContainers |
Additional containers for the pod. | [] |
extraVolumes |
Additional volumes for the pod. | [] |
nodeSelector |
Node labels for pod assignment. | {} |
affinity |
Affinity settings for pod assignment. If an explicit label selector is not provided for pod affinity or pod anti-affinity one will be created from the pod selector labels. | {} |
topologySpreadConstraints |
Topology spread constraints for pod assignment. If an explicit label selector is not provided one will be created from the pod selector labels. | [] |
tolerations |
Tolerations for pod assignment. | [] |
caCerts.enabled |
If true , add provided CA certificates to the JVM cacerts key store. |
false |
caCerts.secret |
Secret containing the additional CA certificates. | nil |
envVars.javaOptionsWeb |
Java options to pass to the container via SONAR_WEB_JAVAOPTS. | "" |
envVars.javaAdditionalOptionsWeb |
Java options to pass to the container via SONAR_WEB_JAVAADDITIONALOPTS. | "" |
envVars.javaOptionsCE |
Java options to pass to the container via SONAR_CE_JAVAOPTS. | "" |
envVars.javaAdditionalOptionsCE |
Java options to pass to the container via SONAR_CE_JAVAADDITIONALOPTS. | "" |
env |
Environment variables for the sonarqube and default init containers. | [] |
sonarProperties |
A map of SonarQube properties. | {} |
sonarSecretProperties.enabled |
If there is a secret to provide properties to SonarQube. | false |
sonarSecretProperties.secret |
The secret name that contains the SonarQube properties. | nil |
sonarSecretProperties.key |
The key on the secret that contains the SonarQube properties. | nil |
installPlugins.enabled |
If plugins should be installed. | false |
installPlugins.plugins |
The plugins to install (see values.yaml for structure.). | [] |
psql.host |
External PostgreSQL host to use (if this is set the additional psql values need to be set) |
nil |
psql.port |
External PostgreSQL port | nil |
psql.database |
External PostgreSQL database | nil |
psql.username |
External PostgreSQL username | nil |
psql.password.secret |
Name of the secret containing the external PostgreSQL password | nil |
psql.password.key |
Key on the secret containing the external PostgreSQL password | nil |
postgresql.enabled |
Enable PostgreSQL sub chart, see chart for additional values. | false |
By default the sonarqube image will create a H2 database for evaluation purposes, this should NOT be used in production. You can either allow this chart to create a PostgreSQL instance specifically for SonarQube by specifying postgresql.enabled
as true
or you can use an external PostgreSQL instance by specifying the connection details on psql
.
The sonarqube image stores the SonarQube data and configurations at the /opt/sonarqube
path in the container.
Persistent Volume Claims are used to keep the data across deployments. This is known to work in GCE, AWS, and minikube. See the Configuration section to configure the PVC or to disable persistence.