SonarQubeг нуждается в двух PersistentVolumeClaim, одно для SonarQube и одно для базы данных Postgres.
PersistentVolume будет необходим для каждого.
Поскольку все тестовый пример , для обоих вариантов создается PersistentVolume на основе hostPath.
mkdir -p /mnt/data/postgres && kubectl create -f pv-postgres.yaml
mkdir -p /mnt/data/sonarqube && kubectl create -f pv-sonarqube.yaml
pv-postgres.yaml:
kind: PersistentVolume apiVersion: v1 metadata: name: postgres-volume labels: type: local spec: storageClassName: manual capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: "/mnt/data/postgres"
pv-sonarqube.yaml:
apiVersion: v1 metadata: name: sonarqube-volume labels: type: local spec: storageClassName: manual capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: "/mnt/data/sonarqube
Установка
Мы будем использовать Helm.
Если у вас он еще не установлен, используйте наши руководства:
- ☸️ Установка и использование Helm 3 в кластере Kubernetes
- ☸️ Установка и использование Helm 2 в кластере Kubernetes
- ☸️ Как установить приложения на Kubernetes с помощью Helm
Используя Helm, установите чарт SonarQube Helm с несколькими пользовательскими значениями.
helm install stable/sonarqube --name sonar --namespace sonarqube --values sonarqube-values.yaml
Я выбрал следующие:
image: tag: 7.9.1-community service: type: NodePort # Chart does not allow setting of actual nodePort number, so a # patch after installation is applied. # (https://github.com/helm/charts/blob/master/stable/sonarqube/templates/service.yaml) persistence: storageClass: manual enabled: false size: 10Gi accessMode: ReadWriteOnce postgresql: persistence: size: 10Gi storageClass: manual sonarProperties: sonar.forceAuthentication: false # https://docs.sonarqube.org/display/PLUG/Plugin+Version+Matrix plugins: install: - 'https://binaries.sonarsource.com/Distribution/sonar-java-plugin/sonar-java-plugin-5.13.0.18197.jar' - 'https://github.com/SonarQubeCommunity/sonar-pmd/releases/download/3.2.1/sonar-pmd-plugin-3.2.1.jar' - 'https://github.com/spotbugs/sonar-findbugs/releases/download/3.11.0/sonar-findbugs-plugin-3.11.0.j ar' - 'https://github.com/checkstyle/sonar-checkstyle/releases/download/4.20/checkstyle-sonar-plugin-4.20.jar'
Этот чарт загружает экземпляр SonarQube вместе с базой данных PostgreSQL.
SonarQube также загружает несколько плагинов, определенных в конфигурации чарта Helm.
Чтобы получить полный статус доступности новой развертки, выполните эту проверку.
kubectl patch service sonar-sonarqube -n sonarqube --type='json' --patch='[{"op": "replace", "path": "/spec/ports/0/nodePort", "value":31111}]'
Теперь вы можете войти на веб морду.
Вы можете войти как admin / admin и просмотреть предустановленные плагины.
См. также:
- 🖴 Резервное копирование и восстановление контейнерных баз данных PostgreSQL | Kubernetes | SonarQube
- 🦟 Как изменить статус проекта в SonarQube
- 🦟 11 интересных инструментов для аудита и управления качеством кода