kubesphere 集成 sonar

news2025/1/18 7:31:53

文章目录

  • 安装 helm
  • 通过 helm 安装 sonar
  • 配置 SonarQube 服务器
    • 创建 SonarQube 管理员令牌
    • SonarQube 配置添加到 ks-installer
    • 创建 Webhook 服务器
    • 将 SonarQube 服务器添加至 Jenkins
    • 将 sonarqubeURL 添加到 KubeSphere 控制台
    • 重启服务
  • 为新项目创建 SonarQube Token

官方文档: 将 SonarQube 集成到流水线

安装 helm

先安装helm,可参考文章 CentOS7 安装 helm

通过 helm 安装 sonar

安装命令

helm upgrade --install sonarqube sonarqube --repo https://charts.kubesphere.io/main -n kubesphere-devops-system  --create-namespace --set service.type=NodePort

安装成功
在这里插入图片描述

查看 SonarQube 的状态

kubectl get pod -n kubesphere-devops-system

在这里插入图片描述

输出 sonar 访问地址

export NODE_PORT=$(kubectl get --namespace kubesphere-devops-system -o jsonpath="{.spec.ports[0].nodePort}" services sonarqube-sonarqube)
export NODE_IP=$(kubectl get nodes --namespace kubesphere-devops-system -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT

在这里插入图片描述

默认账号:admin
默认密码:admin

成功访问,ip:32525
在这里插入图片描述

 

配置 SonarQube 服务器

创建 SonarQube 管理员令牌

点击右上角字母 A,然后从菜单中选择 My Account 以转到 Profile 页面。
在这里插入图片描述

点击 Security 并输入令牌名称,例如 kubesphere
在这里插入图片描述

复制 token 并保存好

SonarQube 配置添加到 ks-installer

编辑 ks-installer,或在自定义资源中搜索 ClusterConfiguration,点击 ks-installer 右侧的按钮 ,选择编辑 YAML

kubectl edit cc -n kubesphere-system ks-installer
  • externalSonarUrl:sonar 的访问地址
  • externalSonarToken:上一步生成的 token
devops:
  enabled: true
  jenkinsJavaOpts_MaxRAM: 2g
  jenkinsJavaOpts_Xms: 512m
  jenkinsJavaOpts_Xmx: 512m
  jenkinsMemoryLim: 2Gi
  jenkinsMemoryReq: 1500Mi
  jenkinsVolumeSize: 8Gi
  sonarqube: # Add this field manually.
    externalSonarUrl: http://10.xx.xx.xx:32525
    externalSonarToken: xxxxxx

检查安装过程

kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f

创建 Webhook 服务器

获取 SonarQube Webhook 的地址。

export NODE_PORT=$(kubectl get --namespace kubesphere-devops-system -o jsonpath="{.spec.ports[0].nodePort}" services devops-jenkins)
export NODE_IP=$(kubectl get nodes --namespace kubesphere-devops-system -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT/sonarqube-webhook/

在这里插入图片描述

依次点击 Administration、Configuration 和 Webhooks 创建一个 Webhook
在这里插入图片描述

新建
在这里插入图片描述

  • name:自定义
  • url:上面获取的 Webhook

在这里插入图片描述

将 SonarQube 服务器添加至 Jenkins

获取 Jenkins 的地址

export NODE_PORT=$(kubectl get --namespace kubesphere-devops-system -o jsonpath="{.spec.ports[0].nodePort}" services devops-jenkins)
export NODE_IP=$(kubectl get nodes --namespace kubesphere-devops-system -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT

在这里插入图片描述
默认账号:admin
默认密码:P@88w0rd

如果报错

WARNING o.s.c.s.ResourceBundleMessageSource#getResourceBundle: ResourceBundle [org.acegisecurity.messages] not found for MessageSource: Can’t find bundle for base name org.acegisecurity.messages, locale en
WARNING o.a.p.l.a.BindAuthenticator2#handleBindException: Failed to bind to LDAP: userDnuid=admin,ou=Users,dc=kubesphere,dc=io username=admin
javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]

可以修改密码,参考文章 KubeSphere3.0我在部署devops服务之后,jenkins无法使用ldap账号登录

kubectl patch users admin -p '{"spec":{"password":"Admin123456"}}' --type='merge' && kubectl annotate users admin iam.kubesphere.io/password-encrypted-

系统管理 - Manage Credentials - Jenkins - 全局凭据
在这里插入图片描述

在这里插入图片描述

Secret text - 全局 - 上面创建的 token
在这里插入图片描述

点击 系统管理 - 系统配置 - SonarQube servers - Add SonarQube - 选择sonarqube

在这里插入图片描述

将 sonarqubeURL 添加到 KubeSphere 控制台

编辑 config

kubectl edit  cm -n kubesphere-system  ks-console-config

搜寻到 data.client.enableKubeConfig,在下方添加 devops 字段并指定 sonarqubeURL。
在这里插入图片描述

重启服务

kubectl -n kubesphere-devops-system rollout restart deploy devops-apiserver
kubectl -n kubesphere-system rollout restart deploy ks-console

为新项目创建 SonarQube Token

创建项目
在这里插入图片描述
创建 token
在这里插入图片描述

得到 mvn 发布命令
在这里插入图片描述

执行命令
在这里插入图片描述

成功发布到 sonar

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/896259.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝蓝设计-ui设计公司-界面设计案例作品

泛亚高科-光伏电站控制系统界面设计 html前端 | 交互设计 | 视觉设计 | 图标设计 泛亚高科(北京)科技有限公司(以下简称“泛亚高科”),一个以实时监控、高精度数值计算为基础的科技公司, 自成立以来,组成了以博士、硕…

同样都是找工作,为什么你的简历没人看?

上次的文章分享了自己软件测试面试时的一些经历,今天我想分享一下自己当时写简历以及投简历方面的经历,本文内容纯粹是个人简单分享,如果有写得不好的地方还请读者包涵与指正。 我是去年的九月初开始投递简历的,貌似各行各业的人…

μCOS-Ⅲ_简介

μCOS-Ⅲ简介 文章目录 μCOS-Ⅲ简介前言一、什么是 C/OS-III?二、C/OS-III的特点三、C/OS-III的版本和参考资料1、C/OS-III版本2、C/OS-III源码获取3、C/OS-III参考资料 四、C/OS-III源码简介总结 前言 μcos-III是一个可以基于ROM运行的、可裁剪的、抢占式、实时…

第五章.编辑资料

5.1.添加编辑页面 <template><div class="users-show"><div class="col-md-3 main-col"><div class="box"><div class="padding-md"><div class="list-group text-center"><rou…

k8s v1.27.4 部署metrics-serverv:0.6.4,kube-prometheus

只有一个问题&#xff0c;原来的httpGet存活、就绪检测一直不通过&#xff0c;于是改为tcpSocket后pod正常。 wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml修改后的yaml文件&#xff0c;镜像修改为阿里云 apiVersion: …

9.处理this和防抖、节流

9.1 this指向-普通函数 普通函数的调用方式决定了this的值&#xff0c;即【谁调用this的值 指向谁】 普通函数没有明确调用者时this值为window&#xff0c;严格模式下没有调用者时this的值为undefined 9.2 this指向-箭头函数 箭头函数中的this与普通函数完全不同&#xff0…

uni——遍历循环替换值

案例展示 const fraction_json ref([]) //星级数组最终我们需要的格式是&#xff1a; [{“num”: “5”, “evaluate_id”: “2”}, {“num”: “5”, “evaluate_id”: “3”}] 参考的方法&#xff1a; 【 .map() 】方法 map() 方法返回一个新数组&#xff0c;数组中的元素…

究竟什么是位图

引言 为什么要写这篇博文呢&#xff0c;是因为之前面试的时候遇到这样一个问题&#xff1a; 有一款数十亿级别的用户产品&#xff0c;如何统计一周内连续活跃的用户数&#xff1f; 这个问题的特征其实很明显&#xff1a;数据量大&#xff0c;需要交并操作&#xff0c;而且还有…

Postgresql+Postgis安装教程

Windows 下载地址 Postgresql&#xff1a;https://www.enterprisedb.com/downloads/postgres-postgresql-downloads Postgis&#xff1a;https://winnie.postgis.net/download/windows/ 我这里安装Postgresql13&#xff0c;所以对应Postgis也选择pg13版本 首先安装Postgresql…

kali 换源

kali 换源 1.使用root权限打开 vim /etc/apt/sources.list # See https://www.kali.org/docs/general-use/kali-linux-sources-list-repositories/ #deb http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware# Additional line for source pack…

标签(1)(详解)

目录 标签 部分标签 标签之标题 标题介绍与应用 VSCode插件 标签之段落 换行 水平线 标签之图片 网站中最多的元素 图片路径详解 绝对路径 相对路径 网络路径 标签之超文本链接 超链接描述 超链接属性 超链接表现 标签之文本 常用文本标签 标签 部分标签 …

Linux权限系列--给普通用户添加某个命令的sudo权限

原文网址&#xff1a;Linux权限系列--给普通用户添加某个命令的sudo权限_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍Linux系统如何给普通用户添加某个命令的sudo权限。 使用场景 普通开发者可能需要sudo的命令&#xff1a; apt-get&#xff08;经常要安装软件&#x…

《Zookeeper》源码分析(十四)之 投票是如何发送与接收的

目录 MessengerWorkerSenderWorkerReceiver第5步&#xff1a;检验选票的epoch和version第6步&#xff1a;处理投票 Messenger Messenger管理接收到的消息以及待发送的消息&#xff0c;其源码如下&#xff1a; 它的源码比较简单&#xff0c;接下来着重介绍它维护的两个线程&a…

【仿写tomcat】七、项目结构优化以及代码开源

仿写tomcat 项目结构开源地址 项目结构 到目前为止&#xff0c;博主的仿写tomcat就告一段落了&#xff0c;后续有时间了还会继续补充功能&#xff0c;现在的项目结构如下。 在保证功能的前提下作出的改动有&#xff1a; 将各个类中的参数统一成了Config类&#xff0c;通过对…

Java课题笔记~ Ajax

1.1 概述 AJAX (Asynchronous JavaScript And XML)&#xff1a;异步的 JavaScript 和 XML。 我们先来说概念中的 JavaScript 和 XML&#xff0c;JavaScript 表明该技术和前端相关&#xff1b;XML 是指以此进行数据交换。 1.1.1 作用 AJAX 作用有以下两方面&#xff1a; 与服…

百度又开源一款压测工具,可模拟几十亿的并发场景,太强悍了

dperf 是百度开源的一款基于 DPDK 的 100Gbps 网络性能和负载测试软件&#xff0c;能够每秒建立千万级的 HTTP 连接、亿级别的并发请求和数百 Gbps 的吞吐量。 优点 性能强大&#xff1a; 基于 DPDK&#xff0c;使用一台普通 x86 服务器就可以产生巨大的流量&#xff1a;千万…

[oeasy]python0085_[趣味拓展]字体样式_下划线_中划线_闪动效果_反相_取消效果

字体样式 回忆上次内容 \033 xm 可以改变字体样式 0m - 10m 之间设置的 都是字体效果 0m 复原1m 变亮2m 变暗 从3m到10m 又是什么效果 呢&#xff1f;&#xff1f; 真的可以 让文字 blink闪烁吗&#xff1f;&#x1f441; 3m 3m 实现斜体字的效果 4m 4m 对应着下划线 控…

==和equals方法之间的区别,hashcode的理解,String拼接,Spring拆分

==和equals方法之间的区别 字符串有字符串常量池的概念,本身就推荐使用String s="字符串", 这种形式来创建字符串对象, 而不是通过new关键字的方式, 因为可以把字符串缓存在字符串常量池中,方便下次使用,不用遇到new就在堆上开辟一块新的空间 有一对双胞胎姐妹,晓苑…

LabVIEW开发感应电机自动测试台

LabVIEW开发感应电机自动测试台 设计开发先进的电机测试台&#xff0c;能够测试额定功率为0-15hp的单相和三相感应电动机。系统能够测量感应电动机的不同参数&#xff0c;例如电压&#xff0c;电流&#xff0c;有功功率&#xff0c;无功功率&#xff0c;视在功率&#xff0c;功…

有限状态机--实现cp的功能

有限状态机–实现cp的功能 执行的任务 上图是我们想实现的任务&#xff0c;对于A机来说&#xff0c;从fd1读取内容写到fd2&#xff0c;B机要做的是从fd2读取内容写到fd1中。 画出A机的状态。 代码示例 fsm.c #include <stdio.h> #include <stdlib.h> #include …