Uploaded image for project: 'SonarQube'
  1. SonarQube
  2. SONAR-14701

Create meaningful liveness/readiness/startup probes

    XMLWordPrintable

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: 8.9
    • Component/s: None
    • Edition:
      Community
    • Production Notes:
      None

      Description

      WHY

      In the Current Helm chart the liveness and readiness probes can only be successful when SQ is fully up and running

      WHAT

      A startup probe is missing to protect a SQ deployment from resource starvation and a death loop when running with multiple pods on the same node. The expected new endpoint for this probe should be available as fast as possible.

      HOW

      Create dedicated liveness / readiness and Startup Probes.

      For liveness and readiness the /api/system/health can be wrapped in a bash script to parse that returned status. 

      Create a startup probe (/apy/system/started) that will return https://http.cat/200 if sonarqube is starting and https://http.cat/503 when there is an error during startup. This endpoint will continue to be available as long as sonarqube is alive. The access should be public.

      It's actually not easily possible to have an API endpoint available before api/system/status or api/system/health. The solution is then to create a wrapper for the api/system/status endpoint and rely on that.

      Possible values are:

      STARTING, UP, DOWN, RESTARTING, DB_MIGRATION_NEEDED, DB_MIGRATION_RUNNING

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              tobias.trabelsi Tobias Trabelsi
              Reporter:
              tobias.trabelsi Tobias Trabelsi
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Due:
                Created:
                Updated:
                Resolved: