본문 바로가기

클라우드/GCP 자원 테라폼으로 관리해보기

(8-4) Terraform에서 helm 관리 - Sonarqube

반응형

 

 

Sonarqube도 helm을 통해 받아오고 helm_sonarqube.tf 파일에서 관리하도록 설정하였다.

resource "helm_release" "sonarqube" {
  name       = "sonarqube"
  #repository = "https://charts.jenkins.io"  # Jenkins Helm 차트 레포지토리 URL
  chart      = "../sonar/sonarqube/sonarqube-1.4.2.tgz"
  #version    = "3.0.13"  # Jenkins Helm 차트 버전
  namespace   = "default"
 
  # verify = false
  values = [
    "${file("../sonar/sonarqube/values.yaml")}"
  ]

}

 

1. sonarqube repo 저장 받기

helm pull  bitnami/sonarqube --untar --version 1.4.2
helm package .
helm install sonarqube sonarqube-1.4.2.tgz -f values.yaml

 

 

Sonarqube 의 경우 신버전을 설치하게되면 java 17이 기본으로 설정되게 되는데 내가 개발하고 있는 maven은 java 11을 사용하는데 개발 버전을 java 17로 올릴 지 Sonarqube 버전을 java 11 버전으로 낮춰서 설치할 지 해야했는데 개발 코드를 수정하는 게 더 오래 걸릴 것 같아 임시로 java 11 버전의 Sonarqube인 1.4.2를 설치하였다. 

 

sonarqube-java11.zip
0.22MB

 

혹시라도  Java 17로 하게되면 아래 zip 파일을 풀어서 하면된다.

sonarqube-java17.zip
0.53MB

 

values.yaml 에서 변경한 점

1) 368 라인 type: ClusterIP -> LoadBalancer로 변경 

 

 

기존 디스크 연결시는 추후 추가 작성 예정

 

kubectl get secret --namespace default sonarqube -o jsonpath="{.data.sonarqube-password}" | base64 -d  명령어로 초기 계정인 user 패스워드 확인 후 로그인

 

 

Jenkins와 연동 방법

 

1.Jenkins webhook 연동을 위해 Administration -> Configuration -> webhooks에 아래 정보 기입
Name: jenkins-webhook

URL: http://<Jenkins ip>:<Port>/sonarqube-webhook/ 


2. Security에서 Create User로 Jenkins 계정 생성 및 sonar-administrators 권한 부여 후 토큰 발급

 

 

Jenkins 설정
3. Jenkins 관리 -> System에서 SonarQube servers를 생성한 Sonarqube 정보로 변경

1) Server URL : http://<sonarqube IP>:80


2) Server authentication token 의 경우 Jenkins 관리 -> Credentials에서 SonarQube-240602 업데이트를 통해 2.에서 생성한 토큰 값 Secret에 입력 



4.  Jenkins 관리 -> System에서 Quality Gates - Sonarqube 를 생성한 Sonarqube 정보로 변경


1) SonarQube Server URL : http://<sonarqube IP>:80
2) SonarQube account login : user (혹은 생성한 jenkins 계정? 테스트 필요)
3) SonarQube account password :  kubectl get secret --namespace default sonarqube -o jsonpath="{.data.sonarqube-password}" | base64 -d 명령어로 확인한 값 입력

 

 

Jenkinsfile을 통한 파이프라인은 추후 별도 항목으로 작성 예정

 

실제 Pipeline을 통해 Sonarqube로 분석 후 빌드 하는 과정을 볼 수 있다. 맨 마지막 파이프라인은 설정을 안해준거라 무시하셔도 된다..

 

 

 

 

SonarQube를 보면 아까 설정한 Webhook이 정상적으로 실행된 것을 볼 수 있다.

 

 

프로젝트 항목을 보면 아까 없던 항목이 생겨 있는데 내가 만든 코드를 분석해주었다. 개발자가 아니라 임의로 코드를 만들다 보니 수정할 부분이 많아보이게 나온다.

반응형