SonarQube部署

SonarQube并非猪齿鱼运行必要基础组件,你可以选择性进行安装。

预备知识

如果你不知道SonarQube是做什么的,那么请参考下面链接(包括但不限于)进行学习:

仓库设置

添加choerodon chart仓库并同步

  1. helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/
  2. helm repo update

部署SonarQube

注意:本事例中 PostgreSql 数据库搭建仅为快速体验 SonarQube 而编写,由于使用了NFS存储故并不能保证其稳定运行或数据不丢失,您可以参照 PostgreSql 官网进行搭建。
  1. helm install c7n/sonarqube \
  2. --set persistence.enabled=true \
  3. --set persistence.storageClass=nfs-provisioner \
  4. --set postgresql.persistence.storageClass=nfs-provisioner \
  5. --set ingress.enabled=true \
  6. --set ingress.'hosts[0]'=sonarqube.example.choerodon.io \
  7. --set plugins.'install[0]'=https://file.choerodon.com.cn/choerodon-install/sonarqube/sonar-auth-choerodonoauth-plugin-1.0-RELEASE.jar \
  8. --set plugins.'install[1]'=https://github.com/gabrie-allaigre/sonar-gitlab-plugin/releases/download/4.0.0/sonar-gitlab-plugin-4.0.0.jar \
  9. --version 0.15.0 \
  10. --name sonarqube \
  11. --namespace c7n-system

验证部署

  • 访问设置的SonarQube域名出现以下界面即部署成功

SonarQube部署  - 图1

配置 Choerodon 认证

  • 以下操作须将Choerodon搭建完成后再继续进行,若未搭建,请跳过。

添加Choerodon Client

  1. helm install c7n/mysql-client \
  2. --set env.MYSQL_HOST=c7n-mysql.c7n-system.svc \
  3. --set env.MYSQL_PORT=3306 \
  4. --set env.MYSQL_USER=root \
  5. --set env.MYSQL_PASS=password \
  6. --set env.SQL_SCRIPT="\
  7. INSERT INTO iam_service.oauth_client ( \
  8. name\,organization_id\,resource_ids\,secret\,scope\,\
  9. authorized_grant_types\,web_server_redirect_uri\,\
  10. access_token_validity\,refresh_token_validity\,\
  11. additional_information\,auto_approve\,object_version_number\,\
  12. created_by\,creation_date\,last_updated_by\,last_update_date)\
  13. VALUES('sonar'\,1\,'default'\,'secret'\,'default'\,\
  14. 'password\,implicit\,client_credentials\,authorization_code\,refresh_token'\,\
  15. 'http://sonarqube.example.choerodon.io/oauth2/callback/choerodon'\,3600\,3600\,'{}'\,'default'\,1\,0\,NOW()\,0\,NOW());" \
  16. --version 0.1.0 \
  17. --name gitlab-client \
  18. --namespace c7n-system

配置用户权限

默认管理员用户名:admin,密码:admin
  • 使用管理员用户登录 SoanrQube
  • 配置默认新建项目为Private, 进入 Administration -> Projects -> ManagementSonarQube部署  - 图2

  • 更改默认权限模板, 进入 Administration -> Security -> Permission Templates ,去掉 sonar-users 用户组所有权限SonarQube部署  - 图3SonarQube部署  - 图4

配置认证插件

  • 使用管理员用户登录 SoanrQube
  • 进入 Administration -> Configuration ->choerodon
  • 更改 Enabled 为启用
  • 更改 Choerodon url 为当前使用的 choerodon api getaway 地址;默认地址为:http://api.example.choerodon.ioSonarQube部署  - 图5
  • 退出登录,测试使用choerodon登录,出现如下界面SonarQube部署  - 图6