Devtron Code Scan 插件实战:在 CI 流水线 Pre-build 阶段用 Trivy 扫描代码安全
云原生DevOps运维【免费下载链接】devtronThe only Kubernetes dashboard you need项目地址https://gitcode.com/gh_mirrors/dev/devtron点击查看免费下载本篇介绍 Devtron 的Code Scan插件如何接入 CI 工作流在 Build 流水线的 Pre-build stage 中添加该任务后Devtron 会调用 Trivy 对源代码进行扫描在构建容器镜像之前检测漏洞Vulnerabilities、错误配置Misconfigurations、许可证风险License Risks和泄露的密钥Exposed Secrets。读完后你将掌握插件接入的完整操作步骤、任务输入/输出变量的配置约定以及该插件背后依赖的安全扫描模块与扫描工具元数据在源码中的对应实现。一、插件定位与前置条件Devtron 提供 DevSecOps 能力其安全扫描体系分为三类Image Scan、Code Scan、Kubernetes Manifest Scan见 安全特性文档。Code Scan 属于其中在构建产物之前扫描源代码的一环扫描时机代码提交之后、构建镜像之前。尽早发现问题避免问题带入镜像后修复成本更高默认扫描工具Devtron 集成Trivy可检测四类问题——Vulnerability、License Risks、Misconfigurations、Exposed Secrets扫描结果展示位置应用App Details页面的Code Scan区域。Code Scan 是 Devtron 官方插件列表中的一员见 插件列表 中的 Code-Scan 条目本文即对应 docs/user-guide/plugins/code-scan.md 的完整指引。前置条件Prerequisites在集成 Code Scan 插件之前必须先通过 Devtron 的Stack Manager安装Vulnerability Scanning (Trivy/Clair)集成。这一前置要求在源码中有直接对应Devtron 将漏洞扫描建模为安全模块模块名为security.trivyTrivy与security.clairClair并带有对应的工具版本号pkg/module/bean/bean.go 中定义了ModuleNameSecurityClair ModuleName security.clair、ModuleNameSecurityTrivy ModuleName security.trivy以及TRIVY_V1 V1、CLAIR_V4 V4等工具版本常量pkg/module/ModuleService.go 在模块启用流程中对security.trivy固定使用TRIVY_V1版本、对security.clair使用CLAIR_V4版本源码注释说明 Clair V2 已不再使用。因此若未在 Stack Manager 中启用该扫描模块Code Scan 任务将没有可用的底层扫描服务。二、接入步骤Workflow Editor 实操以下 8 个步骤完整继承自原文档在已启用 Vulnerability Scanning 集成的前提下操作进入Applications→Devtron Apps点击目标应用进入应用详情页进入App Configuration→Workflow Editor点击New Workflow选择Build and Deploy from Source Code工作流类型在Create build pipeline窗口填写必填字段进入Pre-build stage。提示如果已经配置了工作流则直接编辑edit现有的 build pipeline再导航到Pre-build stage即可无需新建工作流。在TASKS区域点击 Add task按钮在插件列表中选择Code Scan插件按下文用户输入章节填入相应值最后点击Update Pipeline保存流水线。选择 Pre-build stage 的意义在于扫描发生在 CI 构建之前属于 安全特性文档 中Before Building Artifact描述的扫描时机。按该文档的说明你可以基于扫描结果通过插件的Pass/Failure Condition设置决定是否让 CI 继续执行例如仅当高危漏洞数为 0 时才允许构建镜像从而把代码扫描作为流水线的质量门禁。三、用户输入User Inputs详解Task Name任务名称为任务命名用于在流水线任务列表中区分不同任务。例如Code Scanning。Description任务描述简要说明任务用途及选择该插件的原因信息量以他人能理解该任务目的为标准。例如The Code Scan plugin is integrated for scanning the in-code vulnerabilities.Input Variables输入变量Code Scan 插件不需要任何输入变量——这与需要指定规则集、项目 Key 等参数的其他扫描类插件如 SonarQube、Codacy见 Codacy不同Code Scan 开箱即用无需额外配置即可基于 Trivy 完成四类检测。Output Variables输出变量Code Scan 不会生成任何输出变量。这意味着它不会向流水线下游如 Build stage、其他任务注入可引用的变量其产物是写入 App Details 页Code Scan区域的扫描结果数据而不是供模板渲染使用的变量。配置完成后点击Update Pipeline即可完成任务接入。四、源码侧印证扫描结果的落库与查询Code Scan 的结果最终归入 Devtron 统一的策略治理Policy Governance扫描数据体系。从源码结构看pkg/policyGovernance/security/scanTool/ScanToolMetadataService.go 负责扫描工具Trivy/Clair 等的元数据管理与 Stack Manager 安装的 Vulnerability Scanning 模块一一对应pkg/policyGovernance/security/imageScanning/ImageScanService.go 实现了扫描执行详情FetchExecutionDetailResult、漏洞明细列表FetchVulnerabilityListing、按严重度统计CalculateSeverityCountInfo区分 critical/high/moderate/low/unknown以及按严重程度排序过滤等能力是 App Details 页面扫描结果视图的数据来源部署前的漏洞状态校验入口为GetArtifactVulnerabilityStatus支撑根据扫描结果决定能否继续的门禁逻辑。另外pkg/pipeline/types/CiCdConfig.go 中定义了扫描服务的连接与重试配置如IMAGE_SCANNER_ENDPOINT指向 image-scanner 微服务IMAGE_SCAN_MAX_RETRIES默认 3 次、IMAGE_SCAN_RETRY_DELAY默认 5 秒说明扫描执行是通过 Devtron 的扫描微服务进行的Dashboard 端负责编排与结果展示。五、小结项目说明插件名称Code Scan扫描工具Trivy需在 Stack Manager 安装 Vulnerability Scanning (Trivy/Clair) 集成检测类型Vulnerabilities、Misconfigurations、License Risks、Exposed Secrets接入位置CI 流水线 Pre-build stage通过 Add task 添加输入变量无输出变量无结果展示在 App Details 的 Code Scan 区域保存动作点击 Update PipelineCode Scan 插件以零输入变量、零输出变量的轻量形态把 Trivy 的代码级扫描嵌入 Devtron 工作流它不向下游传递变量而是以扫描结果本身作为交付物配合 Pass/Failure Condition 可作为 CI 阶段的安全门禁。如需进一步了解 Devtron 完整的扫描体系Image Scan、Manifest Scan、安全策略可继续阅读 Security Features。赞分享云原生DevOps运维【免费下载链接】devtronThe only Kubernetes dashboard you need项目地址https://gitcode.com/gh_mirrors/dev/devtron点击查看免费下载相关推荐Devtron CI 流水线 Pre/Post-Build 阶段实战预设插件与自定义脚本配置指南Devtron CI 流水线 Pre/Post Build 阶段实战预设插件与自定义脚本配置指南 本文基于 Devtron 开源仓库 关联文档 https:云原生DevOps运维Devtron 集成 SonarQube v1.1.0 插件实现 CI 流水线持续代码质量与安全扫描Devtron 集成 SonarQube v1.1.0 插件实现 CI 流水线持续代码质量与安全扫描 文章导读 本文围绕 Devtron 内置的 Sonarq云原生DevOps运维Devtron Semgrep 插件接入指南在 CI 流水线中落地静态代码扫描Devtron Semgrep 插件接入指南在 CI 流水线中落地静态代码扫描 Semgrep 是 Devtron 提供的一款 PRESET预置CI 插件云原生DevOps运维创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

蓝鲸 CMDB 开放接口「查询业务」Search Business API 完全指南:参数详解、条件过滤与源码级原理

蓝鲸 CMDB 开放接口「查询业务」Search Business API 完全指南:参数详解、条件过滤与源码级原理

后端企业应用运维 【免费下载链接】bk-cmdb 蓝鲸智云配置平台(BlueKing CMDB) 项目地址: https://gitcode.com/gh_mirrors/bk/bk-cmdb 点击查看 免费下载 本文聚焦蓝鲸智云配置平台(bk-cmdb)开放接口(APIGateway open API&#x…

2026/10/13 10:50:39 阅读更多 →
Vue集成bpmn.js实战:流程图渲染、XML同步与自定义扩展

Vue集成bpmn.js实战:流程图渲染、XML同步与自定义扩展

简介:本资源是一份面向前端开发者与流程系统初学者的 Vue.js 集成 bpmn.js 实战项目,聚焦业务流程图的可视化展示与基础交互编辑能力。项目完整封装了 BPMN 流程渲染器(Viewer)与建模器(Modeler)在 Vue 3 环…

2026/10/13 10:49:39 阅读更多 →
H3C设备桥接到物理口:三种场景配置与排障实战

H3C设备桥接到物理口:三种场景配置与排障实战

接了个需求:要把H3C设备上的逻辑桥接域打通到物理口。你可能觉得这不是什么大事,但真正动手的时候才发现,光是"桥接"这个词,在不同设备、不同软件版本、不同产品线里,含义完全不一样。有人要的是透明防火墙那…

2026/10/13 10:49:39 阅读更多 →

最新新闻

鸽哒IM源码:生产级私有化即时通讯系统解析

鸽哒IM源码:生产级私有化即时通讯系统解析

简介:这是一套完整的跨平台即时通讯(IM)系统源码,面向中高级Java/Android/iOS开发者及全栈工程师,用于学习和搭建企业级实时通信服务。资源涵盖Web(WebSocketHTML5)、Android(JavaFC…

2026/10/13 21:08:58 阅读更多 →
Python+React低代码平台:元数据驱动的业务系统快速构建方案

Python+React低代码平台:元数据驱动的业务系统快速构建方案

简介:这是一套面向全栈开发初学者与低代码实践者的前后端一体化低代码平台学习资源,聚焦React前端框架与Python后端框架的协同开发模式,帮助非专业开发者快速构建可运行的Web应用,降低传统编码门槛。资源共229个文件,涵…

2026/10/13 21:08:58 阅读更多 →
2020数学建模B题沙漠穿越:Matlab动态规划与剪枝实战解析

2020数学建模B题沙漠穿越:Matlab动态规划与剪枝实战解析

简介:面向备战2020年数学建模B题的参赛者,完整Matlab源代码覆盖四关求解流程,从第一关基础路径规划到第四关随机天气下的最优策略,涉及距离矩阵处理、单目标优化、动态规划、数学期望与随机分布建模等方法。第二关重点解决双地图与…

2026/10/13 21:08:58 阅读更多 →
CEF4Delphi 控件:Delphi 与 JavaScript 双向通信及避坑指南

CEF4Delphi 控件:Delphi 与 JavaScript 双向通信及避坑指南

简介:CEF4Delphi控件是一套面向Delphi开发者的Chromium谷歌内核浏览器集成方案,适合需要在桌面程序中嵌入现代网页渲染能力的开发者,覆盖从Delphi 7到Delphi 10.2的多个版本,作者已亲自测试调试安装正常。资源包共462个文件&#…

2026/10/13 21:08:58 阅读更多 →
数据库大作业图书销售系统:核心是约束设计而不是页面数量

数据库大作业图书销售系统:核心是约束设计而不是页面数量

简介:面向数据库课程大作业的图书销售管理系统数据库设计文档,完整覆盖从问题描述、需求分析、概念模型设计、逻辑模型设计到建立数据库、录入数据及数据库操作的全过程,并配有全局与局部ER图、表结构、外键关系说明,以及实施中遇…

2026/10/13 21:08:58 阅读更多 →
Java 8 Stream 实战指南:从传统循环到声明式流水线

Java 8 Stream 实战指南:从传统循环到声明式流水线

如果你写过几年 Java 业务代码,大概率见过这类场景:一个方法里塞了三四个 for 循环,循环里面套 if,if 里面再往 List 或 Map 里 put 数据,看完要花好几分钟才理清楚这段逻辑到底在干嘛。这种代码不能说错,但…

2026/10/13 21:07:57 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →