SonarQube on Aruba Cloud
Deploy SonarQube Community Edition — continuous code quality and security analysis — on Aruba Cloud using Terraform and cloud-init. Local PostgreSQL database, Java 17, direct access on port 9000.
Provider version: arubacloud/arubacloud
~> 1.0| Terraform: ≥ 1.9
Introduction
SonarQube is the leading open-source platform for continuous inspection of code quality. It performs static analysis on 30+ languages, detecting bugs, vulnerabilities, and code smells as part of your CI/CD pipeline. This example provisions SonarQube Community Edition with:
- A CloudServer VM (CSO4A8 — 4 vCPU / 8 GB) running the SonarQube server on port 9000
- Java 17 (OpenJDK) — required by SonarQube 10.x
- Local PostgreSQL — the recommended database (H2 is evaluation-only; MySQL is not supported)
- Critical kernel tuning (
vm.max_map_count=524288,fs.file-max=131072) applied via sysctl — required by the embedded Elasticsearch that powers SonarQube's search
Architecture Overview
Infrastructure Created
| Resource | Name pattern | Description |
|---|---|---|
arubacloud_project | sonar-prod | Project container |
arubacloud_vpc | sonar-prod-vpc | Virtual Private Cloud |
arubacloud_subnet | sonar-prod-subnet | Basic subnet |
arubacloud_securitygroup | sonar-prod-vm-sg | Security group |
arubacloud_securityrule | sonar-prod-vm-ssh | SSH ingress |
arubacloud_securityrule | sonar-prod-vm-sonar | SonarQube web UI (port 9000) |
arubacloud_elasticip | sonar-prod-vm-eip | VM public IP |
arubacloud_blockstorage | sonar-prod-boot | 80 GB boot disk (Performance) |
arubacloud_keypair | sonar-prod-keypair | SSH public key |
arubacloud_cloudserver | sonar-prod-vm | CloudServer VM |
Estimated Monthly Cost
| Resource | Spec | Est. cost/mo |
|---|---|---|
| CloudServer VM | CSO4A8 — 4 vCPU / 8 GB | ~€36 |
| Boot disk | 80 GB Performance | ~€10 |
| Elastic IP | — | ~€3 |
| Total | ~€49/mo |
For larger teams or monorepos, use CSO8A16 (8 vCPU / 16 GB) — the Elasticsearch component benefits significantly from extra RAM.
Requirements
- Terraform ≥ 1.9
- ArubaCloud Terraform Provider
~> 1.0 - An ArubaCloud account with OAuth2 API credentials
- An SSH key pair