1) Kaoni Cloud/CI CD

06. Kubernetes에 SonarQube 설치

러시안블루 크레아 의 집 2024. 6. 8. 00:28

앞서 Jenkins 설치 및 pipeline 구성을 완료했다면, 이번 chapter에서는 SonarQube 설치에 대해 기술하겠다.

 

SonarQube는 소프트웨어 품질을 관리하고 코드 분석을 통해 코드 품질을 유지하는 도구이다. CI(Continuous Integration) 파이프라인, 특히 Jenkins와의 통합은 개발 주기의 일환으로 코드 품질을 자동으로 검사하고 개선하는 데 유용하다. 

필자는 Jenkinsfile에서(CI 과정에서) SonarQube의 코드 품질 검사를 진행하고, SonarQube Quality Gate 기능으로 코드의 품질이 일정 수준을 넘지 못할 경우 빌드를 실패하도록 설정했다.  

 

즉, Sonarqube가 CI process를 진행할지/정지할지 여부를 검사하고 판단하는 역활을 하는 것이다. 

 

거두절미하고, 본론으로 들어가겠다. 

 


1. Sonarqube 설치

 1) write menifest

apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    pv.kubernetes.io/bound-by-controller: "yes"
  finalizers:
  - kubernetes.io/pv-protection
  name: sonarqube-pv
spec:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 20Gi
  nfs:
    path: /nfs/sonarqube
    server: 10.0.50.20
  persistentVolumeReclaimPolicy: Retain
  storageClassName: rancher-storage-sonarqube
  volumeMode: Filesystem

StorageClass 등록 후 dynamic provisioning을 할 계획이지만, 지금은 pv, pvc 순서로 만들어가는 static provisioning으로 진행한다.

 

 

2) apply menifest

kubectl apply -f [menifest]

위에서 작성한 yaml 파일을 적용

 

 

 3) Helm 저장소 추가 및 업데이트

helm repo add sonarqube https://SonarSource.github.io/helm-chart-sonarqube
helm repo update

 

 

 4) SonarQube 설치

kubectl create namespace sonarqube
helm show values sonarqube/sonarqube > values.yaml
helm install sonarqube sonarqube/sonarqube --namespace sonarqube -f values.yaml

 

 

 5) NodePort 통한 SonarQube 서버 접근 

kubectl get svc -n sonarqube

Service의 NodePort를 통해 sonarqube 서버 WEB UI에 접근할 것이다.

Ingress를 등록해서 접근해도 무방하다. 

'sonarqube-sonqrqube' Service의  NodePort 복사

 

 

 6) access to SonarQube

http://[IP:NodePort]
ex) http://10.0.50.10:31373

 

 

ID : admin

Password : admin

 

 

 


 

 

 

이것으로 kubernetes에 sonarqube 설치가 완료되었다.

다음 chapter에서는 Jenkins와 SonarQube 연동 에 대해 다루겠다.

'1) Kaoni Cloud > CI CD' 카테고리의 다른 글

08. Kubernetes에 ArgoCD 설치  (0) 2024.06.08
07. Jenkins와 SonarQube 연동  (0) 2024.06.08
05. Jenkins Pipeline 구축  (0) 2024.06.07
04. Kubernetes에 Jenkins 설치  (0) 2024.06.07
03. Kubernetes에 NEXUS 설치  (0) 2024.05.29