FleetDeck PoC:Go语言打造的GitOps应用部署工具包

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文件。

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