Compliance Operator 开发者指南
版本: 1.0.0
更新日期: 2026-06-08
适用对象: 参与 Compliance Operator 开发的贡献者
项目结构
compliance-operator/
|-- cmd/
| |-- manager/
| |-- main.go # Operator 入口(含 manager 和 report 子命令)
|
|-- api/
| |-- v1alpha1/
| |-- compliancescan_types.go # ComplianceScan CRD 类型定义
| |-- compliancescanresult_types.go # ComplianceScanResult CRD 类型定义(聚合摘要)
| |-- compliancescannoderesult_types.go # ComplianceScanNodeResult CRD 类型定义(单节点详细结果)
| |-- groupversion_info.go # API Group 注册
| |-- zz_generated.deepcopy.go # 自动生成的 DeepCopy 方法
|
|-- controllers/
| |-- compliancescan_controller.go # 主 Reconciler
| |-- scan_job_builder.go # Job Spec 构造器
| |-- result_collector.go # 结果回收逻辑
| |-- history_manager.go # 历史记录管理(淘汰策略)
| |-- schedule_manager.go # 定时扫描调度
|
|-- pkg/
| |-- scanner/
| | |-- interface.go # Scanner 接口定义
| | |-- kubebench/
| | | |-- parser.go # kube-bench JSON 输出解析
| | |-- openscap/
| | |-- parser.go # OpenSCAP XCCDF Results XML 解析
| |
| |-- report/
| | |-- knowledge.go # 规则知识库(KnowledgeBase)
| | |-- cis_loader.go # CIS Benchmark 规则加载(go:embed YAML)
| | |-- stig_loader.go # STIG 规则加载(go:embed XCCDF XML)
| | |-- generator.go # HTML 报告生成
| | |-- template.go # HTML 模板定义
| |
| |-- unified/
| | |-- model.go # UnifiedCheckResult 模型
| |
| |-- util/
| |-- node.go # 节点选择工具
| |-- scanid.go # scanID 生成
|
|-- config/
| |-- crd/
| | |-- bases/ # CRD YAML(3 个 CRD 定义)
| |-- rbac/
| | |-- role.yaml # Operator ClusterRole
| | |-- scan_job_role.yaml # Scan Job ClusterRole
| | |-- role_binding.yaml # ClusterRoleBinding
| | |-- service_account.yaml # ServiceAccount
| |-- manager/
| | |-- manager.yaml # Deployment
| |-- samples/
| |-- compliance_v1alpha1_compliancescan_kubebench.yaml
| |-- compliance_v1alpha1_compliancescan_openscap.yaml
|
|-- charts/
| |-- compliance-operator/
| |-- Chart.yaml
| |-- values.yaml
| |-- crds/ # CRD YAML(Helm 安装时自动加载)
| |-- templates/ # 部署模板(含 deployment, RBAC, service 等)
|
|-- docs/
| |-- detailed-design.md # 本文档
| |-- user_guide.md # 用户指南
| |-- developer_guide.md # 开发者指南
| |-- diagrams/ # 架构图
|
|-- build/
| |-- Dockerfile # Operator 镜像构建文件
|
|-- hack/
| |-- boilerplate.go.txt # Kubebuilder 代码头模板
|
|-- Makefile
|-- go.mod
|-- go.sum
本地开发
git clone https://gitcode.com/openFuyao/compliance-operator.git
cd compliance-operator
make build
make test
make manifests
make run
运行测试
go test ./... -v
go test ./... -coverprofile=coverage.out
go tool cover -html=coverage.out