I am planning to install the sonar server, scanner, database on EKS (Kubernetes). The database is stateful obviously.
Is SonarQube server Stateful? What will happen if the SonarQube Server that is running got shut down and start another server?
If there are many users, can we do the horizontal scaling? e.g. one SonarQube Server is running. When the traffic got to increase, another SonarQube server will be added and will be accepting the traffic?
For scanner, I am assuming we can horizontal-scale them too. If no project is running there won’t be any scanner instance running. If one project starts scanning, one scanner instance will be created and will be running. If another project starts then another scanner instance will be created and will be running too. Does the scanner work that way?
these are a lot of questions but i try to answer them as good as possible.
The Application SonarQube itself is not stateful but elasticsearch is. as elasticsearch is bundled with the community- developer- and enterprise-edition, you should treat SonarQube as a STS.
If you enable persistency in our helm chart the new SonarQube pod should start up just fine in that scenario. You just have to make sure that only one instance of SQ is running at a time as only the datacenter edition supports horizontal scaling and clustering.
See my comment on the previous question. Only the datacenter edition supports horizontal scaling. all other editions need to be scaled vertically.
the scanner should be part of you CI/CD pipelines. maybe this architectonic overview will help you:
that is a fine overview! did you reference it from some part of the documentation? if so, could you maybe add the URL to it into this thread? if not, could you maybe find a cozy little place for it in the docs? (oh, i forgot: and add the URL to it here, afterwards )