FleetDeck PoC
愿景
FleetDeck 是一个基于 Go 的概念验证工具包,用于实现"类 GitOps"的应用部署,支持金丝雀/蓝绿部署策略、SBOM 生成和安全策略控制。
架构
1
2
3
4
5
6
7
8
9
10
|
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ CLI 工具 │───▶│ 控制器 │───▶│ Kubernetes │
│ (fleetdeck) │ │ (Go/Kubebuilder)│ │ 集群 │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ 构建 & SBOM │ │ 策略引擎 │ │ OCI 注册表 │
│ (Syft/Grype) │ │ (OPA/Kyverno) │ │ (本地/远程) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
|
功能特性
- 🚀 金丝雀部署:分阶段推进(10% → 25% → 50% → 100%)
- 🔄 蓝绿部署:通过冒烟测试验证的切换
- 📦 SBOM 与安全:自动生成 SBOM 和漏洞扫描
- 🛡️ 策略控制:使用 OPA/Kyverno 进行安全检查
- 📊 可观测性:Prometheus 指标和结构化日志
- 🎯 轻量级 GitOps:通过 CRD 与 Kubernetes 集成
快速开始
前置要求
- Go 1.22+
- Docker 和 Docker Compose
- kubectl
- kind
- Helm 3.x
安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# 克隆仓库
git clone git@github.com:BrotherhoodLabs/fleetdeck-poc.git
cd fleetdeck-poc
# 创建本地 Kubernetes 环境
./infra/kind-create.sh
# 启动本地 OCI 注册表
docker-compose up -d
# 构建并安装 CLI
make build-cli
make install-cli
# 部署控制器
make deploy-controller
|
首次部署
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
# 初始化项目
fleetdeck init my-app
# 构建镜像并生成 SBOM
fleetdeck build
# 使用金丝雀策略部署
fleetdeck deploy --strategy canary
# 跟踪进度
fleetdeck status
# 推广到 100%
fleetdeck promote
|
文档
路线图
查看 docs/roadmap.md 了解未来功能规划。
贡献
查看 CONTRIBUTING.md 了解贡献指南。
许可证
MIT 许可证 - 详见 LICENSE 获取更多细节。