Sonarqube도 helm을 통해 받아오고 helm_sonarqube.tf 파일에서 관리하도록 설정하였다.
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를 설치하였다.
혹시라도 Java 17로 하게되면 아래 zip 파일을 풀어서 하면된다.
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이 정상적으로 실행된 것을 볼 수 있다.
프로젝트 항목을 보면 아까 없던 항목이 생겨 있는데 내가 만든 코드를 분석해주었다. 개발자가 아니라 임의로 코드를 만들다 보니 수정할 부분이 많아보이게 나온다.
'클라우드 > GCP 자원 테라폼으로 관리해보기' 카테고리의 다른 글
(9) GCP API 활성화 (0) | 2024.06.09 |
---|---|
(8-5) Terraform에서 helm 관리 - Ingress Controller (0) | 2024.06.09 |
(8-3) Terraform에서 helm 관리 - Grafana, Prometheus (0) | 2024.06.09 |
(8-2) Terraform에서 helm 관리 - ELK (0) | 2024.06.09 |
(8-1) Terraform에서 helm 관리 - Jenkins (0) | 2024.06.09 |