FleetDeck PoC:GitOps风格的应用部署工具包详解

FleetDeck是一个基于Go语言的概念验证工具包,支持GitOps风格的应用部署,包含金丝雀/蓝绿部署策略、SBOM生成、安全策略控制等功能。工具采用模块化架构,集成Kubernetes、OPA/Kyverno策略引擎和漏洞扫描工具,提供完整的CI/CD解决方案。

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 获取更多细节。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计