跳到主要内容

功能介绍

组件评测的目的是通过尽可能多的自动化测试从多个维度来评估一个组件。因此,组件评测三个部分的内容:

  • 定义并完成组件的自动化测试
  • 收集处理测试数据
  • 评估获取组件等级

为了实现上述提到的三个部分的内容,我们选择:

  • 通过Tekton安全性可靠性可用性三个维度定义多种任务来完成自动化组件测试
  • 定义CRD Rating及其控制器,实时监听Tekton资源,收集测试数据
  • 通过KubeAGI/arcadia实现AI制定组件评估规则,并基于测试数据实时更新组件等级
提示

核心流程

rating_workflow

任务列表

提示

所有任务权重目前都为1,后续需要根据实际的任务重要性赋予不同的权重,并以此获得最终的评分

评测任务类型描述权重状态
rating-security-rback安全性通过 dryrun 的方式获取完整的组件 RBAC1已支持
rating-security-slsa安全性验证 SLSA 供应链安全等级1研发中
rating-reliability-linting可靠性通过 helm lint 验证组件是否符合规范1已支持
rating-reliability-testing可靠性通过 helm testing1研发中
rating-reliability-deployment-testing可靠性验证部署后的组件,功能和性能是否符合预期1研发中
rating-availability-sample可用性验证组件包是否包含 ComponentPlan 示例1研发中

安全性任务

rating-security-rback 根据 chart 包里的内容得到完整的安装文件,并根据这些文件生成权限关系图,用户可以根据这个关系图判断权限是否过大而选择是否安装。

分以下4个步骤完成:

  1. 下载chart包

通过 helm pull 下载指定的chart包

  1. 生成 .dot 文件

通过 helm template 将 chart 包要安装的内容完全列举出来,并通过 yqjq 命令转换成如下格式:

{
"kind":"List",
"apiVersion": "v1",
"items": [
{
"kind": "ServiceAccount",
"apiVersion": "v1",
"metadata": {
"name": "sa",
}
}
]
}

通过 rback 命令将以上的 json 内容转换成 .dot 文件。

  1. 存储到 ConfigMap

将上述得到 .dot 文件存储到 ConfigMap 中。

  1. 将 ConfigMap 名字写到输出

Pipeline 支持输出一些运行结果,将CongiMap的名字写到输出内容中,方便后续用户使用。

可靠性任务

rating-reliability-linting 用来检查 chart 包里书写格式是否正确,以保证平台可以完整的给用户展示相关信息。

分以下2个步骤完成:

  1. 下载 chart 包

通过 helm pull 下载 chart 包。

  1. 检查 lint

通过 helm lint 检查包的书写格式,输出内容会跟随日志输出。

可用性任务

(待补充)