首页 / 平台管理 / 工具链管理 / 工具部署与升级 / 部署 SonarQube

部署 SonarQube

SonarQube 是一个开源的代码质量管理工具,可帮助您发现代码中的缺陷。

注意事项

前提条件

存储

请确保至少满足以下一条前提。每条前提都对应不同的 存储方式

提示:删除<创建实例>功能创建的工具后,工具绑定的 PVC 仍会被保留。

私有部署

  1. 提前准备好一个版本介于 11.x 和 15.x 之间的 Postgresql 数据库,可访问平台的数据服务 (Data Service) > Postgresql 进行创建。 创建postgresql实例

  2. 在左侧导航栏中,单击 工具链管理 > 实例管理

  3. 单击 创建实例

  4. 创建实例 页面,选择 SonarQube

  5. 部署位置 区域,选择希望将工具部署到的 集群命名空间

  6. 资源 区域,选择一种 CPU 和内存分配方式,并完成配置。

    分配方式 说明
    整体分配 为工具分配总资源,用于保障工具整体可用。如果您对单个组件的特性无特殊要求,全局分配方式会更为便捷。
    单个组件分配 可用于为工具下各组件分配资源,用于保障与特定组件相关的业务表现。
    说明:建议保持 db 组件和 webservice 组件间的资源比例为 3:7
  7. 存储 区域,选择一类存储方式,并完成配置。

    注意:实例创建后,存储配置暂不支持修改。

    存储方式 说明
    动态生成 PVC 前提:需提前准备存储类。
    分别设置 SonarQube 各组件所需存储容量后,平台将动态为每个 SonarQube 组件生成一个 PVC,并根据 PVC 请求的存储类为各组件动态创建持久卷。
    如需进行存储扩容,请切换至 Comtaniner Platform 中扩容 PVC。
    可用 PVC 前提:需提前准备 PVC。
    为每个 SonarQube 组件指定一个可用 PVC 后,平台将根据 PVC 请求的存储类为各组件动态创建持久卷,以满足各组件对存储的不同诉求(扩容、快照等)。
    支持在 平台管理 中直接进行 存储扩容
    节点存储 通过 hostpath 存储方案请求集群节点上的存储资源。使用此方式无需准备存储类。
    注意
    • 填写存储路径时,需确保该路径为绝对路径,且不曾被使用,以免挂载失败。
    • 在公有云集群中部署工具时,为避免集群自动伸缩删除节点后导致数据丢失,不支持选择此存储方式。
  8. 数据库保密字典 区域,配置数据库连接保密字典,若暂无保密字典,则点击创建,然后在弹出的页面中填写保密字典表单,类型选择 Opaque ,并在配置项中新增和填写如下字段:

    字段 描述
    host 数据库的连接地址
    port 数据库的连接端口
    username 数据库账户用户名
    password 数据库账户密码
    database 数据库库名,对应数据库应当存在且为空
    sslmode 连接数据库是否开启 SSL ?填写enable开启或disable禁用,默认为开启

    平台的 数据服务 中创建的 Postgresql 实例默认开启了 SSL 连接,如果使用 数据服务 的 Postgresql 实例,请将 sslmode 设置为 enable ,其他情况下,请根据服务端的配置确认服务端是否支持 SSL 连接。

    填写并提交完成 Secret 创建后,回到 SonarQube 升级页面使用该 Secret 继续升级。

  9. 网络 区域,配置网络要求。

    注意

    • 部署完成后,请谨慎更新服务访问地址。若更新,需要配合外部设置才能正常访问,如配置 DNS 解析等。且本次更新只适用于当前网络设置状态,当网络设置再次发生变更时服务访问地址将会被自动替换为限制值。

    • 若待部署工具的集群中存在双网卡节点,需检查服务访问地址中 默认使用的负载均衡器 IP 地址或节点 IP 地址是否可提供集群外访问 ,否则将导致部署后无法正常访问工具,并出现“check xx alive failed”错误提示。

    • Ingress 方式

      参数 说明
      域名 选择平台中已存在的 域名 。请确保所选域名已分配至待使用本工具的项目。
      协议 支持选择 HTTP 和 HTTPS 协议。
      证书 若使用 HTTPS 协议,还须配置与域名匹配的 证书
      服务访问地址 将自动生成,规则为 http://{Ingress 名称}https://{Ingress 名称}
    • Nodeport 方式

      参数 说明
      HTTPS 端口 访问工具时的端口。
      服务访问地址 将自动生成,规则为 http://{集群地址}:{HTTP端口}
  10. 账号设置 区域,配置账号相关信息。

    参数 说明
    用户名 为默认值 admin 且不可修改。
    说明:默认密码 admin
    SSO 登录 单点登录。若启用,则可使用平台账号授权登录 SonarQube。
  11. 集成 区域,指定一个 集成名称,这个名称帮助项目成员在 DevOps 中识别并选择此工具。

  12. 配置完成后,单击 部署并集成

    创建的工具实例会自动集成到 DevOps 的工具链中。

公有云部署

推荐开虚拟机部署公有云集群后部署 DevOps 工具,使用与私有集群一致的存储和网络方案,通过这种方式支持部署的工具和能力与私有集群部署工具能力对齐。

结果校验

创建过程中,单击 图标实时查看实例创建状态。当出现如下报错信息时,意味着您的**数据库 Secret 存在问题。

报错信息 描述
required postgres database name, got empty dbname from provided secret 没有填写database名字,需要用户指定一个已存在的空database
Connection refused. Check your host and port in the given secret 创建连接失败,检查地址和端口是否错误
Authentication failed. Check your username and password in the given secret 服务端拒绝连接,检查用户名或密码是否错误
SSL is not enabled on the server, please change ‘sslmode’ to ‘disable’ in secret if this server is the right one to connect 服务端不支持SSL连接,请将sslmode设置为disable
server ask for a ssl connection, please change ‘sslmode’ to ’enable’ in secret if this server is the right one to connect 服务端强制要求SSL连接,请将sslmode设置为enable
get secret “ns/secret” failed, please check if exist 获取secret失败,检查 secret 是否创建成功

请根据报错信息检查并更正对应 secret 内的信息。更正完成后,组件将在 1 分钟内重新检查该 secret 内的信息,如果正确无误,将继续完成安装。

等待部署状态为 已部署 后,单击工具访问地址,若能成功登录工具,说明操作成功。

后续操作

将工具资源分配给平台的项目