FleetDeck是一个基于Go语言的PoC工具包,支持GitOps风格的应用部署,提供金丝雀/蓝绿部署策略、SBOM生成、安全策略控制等功能,集成Kubernetes和多种安全工具。
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文件。