• Русский
  • Устранение неполадок

    Это руководство поможет вам решить распространённые проблемы с коннекторами SonarQube.

    Коннектор не готов

    Симптом

    Статус коннектора SonarQube отображается как Ready: False.

    Шаги диагностики

    1. Проверьте статус коннектора:

      kubectl get connector <connector-name> -n <namespace> -o yaml

      Просмотрите поле status.conditions для получения конкретных сообщений об ошибках.

    2. Распространённые причины и решения:

      Неверный токен:

      • Ошибка: "Authentication failed" или "Token invalid"
      • Решение: Проверьте, что токен в секрете корректен и не истёк
      • Создайте новый токен в SonarQube и обновите секрет

      Проблемы с подключением:

      • Ошибка: "Connection refused" или "Timeout"
      • Решение: Убедитесь, что экземпляр SonarQube доступен из кластера
      • Проверьте сетевые политики, файрволы и разрешение DNS

      Неверный адрес:

      • Ошибка: "404 Not Found" или "Invalid URL"
      • Решение: Убедитесь, что в spec.address указан правильный протокол (https://) и путь

    Сбой задания сканера

    Симптом

    Задание sonar-scanner завершается с ошибкой или зависает во время анализа.

    Шаги диагностики

    1. Проверьте логи задания:

      kubectl logs job/<job-name> -n <namespace>
    2. Распространённые причины и решения:

      Отсутствует sonar-project.properties:

      • Ошибка: "You must define the following mandatory properties"
      • Решение: Убедитесь, что файл sonar-project.properties существует в корне проекта и содержит необходимые поля:
        sonar.projectKey=my-project-key
        sonar.sources=.

      Конфигурация прокси не загружена:

      • Ошибка: "Authentication required"
      • Решение: Проверьте, что сканер использует конфигурацию коннектора:
        SONAR_SCANNER_OPTS="-Dproject.settings=/scanner-config/sonar-project.properties"

      Недостаточно прав:

      • Ошибка: "Insufficient privileges" или "403 Forbidden"
      • Решение: Убедитесь, что токен имеет разрешение "Execute Analysis" для проекта

    Конфигурация не найдена

    Симптом

    Под не может смонтировать конфигурацию sonar-project.properties.

    Шаги диагностики

    1. Проверьте правильность настройки CSI volume: Убедитесь, что CSI volume корректно настроен в спецификации Pod с правильными атрибутами connectorName и configuration.names.

    2. Распространённые причины и решения:

      Коннектор не готов:

      • Решение: Дождитесь, пока коннектор перейдёт в состояние Ready
      • Конфигурация доступна только при Ready состоянии коннектора

      Неправильная конфигурация тома:

      • Решение: Проверьте, что конфигурация CSI volume включает:
        • connectorName: имя вашего коннектора
        • connectorNamespace: namespace вашего коннектора
        • configuration.names: "sonar-scanner"

    Сбой Quality Gate

    Симптом

    Анализ завершён, но статус quality gate не соответствует ожиданиям.

    Шаги диагностики

    1. Проверьте панель проекта SonarQube для деталей quality gate

    2. Распространённые причины и решения:

      Несоответствие Quality Profile:

      • Решение: Убедитесь, что правильный quality profile назначен вашему проекту

      Не достигнут порог покрытия:

      • Решение: Проверьте, есть ли данные о покрытии тестами в проекте
      • Убедитесь, что отчёты о покрытии генерируются до анализа

      Конфигурация периода нового кода:

      • Решение: Проверьте определение периода нового кода в SonarQube

    Проблемы с производительностью

    Симптом

    Сканер работает слишком долго или происходит таймаут.

    Шаги диагностики

    1. Распространённые причины и решения:

      Большая кодовая база:

      • Решение: Увеличьте таймаут задания и лимиты ресурсов:
        spec:
          activeDeadlineSeconds: 1800  # 30 минут
          template:
            spec:
              containers:
              - name: sonar-scanner
                resources:
                  limits:
                    memory: "2Gi"
                    cpu: "1000m"

      Задержки в сети:

      • Решение: Проверьте сетевое подключение к экземпляру SonarQube
      • Рассмотрите возможность использования экземпляра SonarQube, расположенного ближе к вашему кластеру

    Получение помощи

    Если проблемы сохраняются:

    1. Проверьте логи коннектора:

      kubectl logs -n connectors-system -l app=connectors-proxy-service
    2. Просмотрите события коннектора:

      kubectl get events -n <namespace> --field-selector involvedObject.name=<connector-name>
    3. Проверьте состояние экземпляра SonarQube:

      • Зайдите в веб-интерфейс SonarQube
      • Проверьте напрямую эндпоинт /api/system/status
    4. Обратитесь к документации: