K8s API Deployment Investigation

工具对比表

ArgoCD Flux Jenkins X ArgoWorkflow Jenkins Tekton Bitbucket Pipelines
官方文档 ArgoCD 文档 Flux 文档 Jenkins X 3.x Argo Workflows Jenkins Tekton Bitbucket Pipelines
简述 GitOps CD,无CI/流水线,功能完善(GUI、SSO、多集群、模板化等) GitOps CD,功能简单 GitOps CI+CD,基于Tekton,GUI简单 适合并行任务,CD不易实现 CI+CD 流水线引擎 CI+CD 流水线 CI+CD 流水线
部署方式 直接部署在K8s中 Git驱动部署 Git驱动部署,组件多 直接部署在K8s中 裸机部署简单,Docker问题多 直接部署K8s 无需部署
API调用 有 Swagger UI,社区 Python 库:argocd,argocd-python-client 官方 Go 库,无 Python 库:GitOps Toolkit - 官方 Python 库:argo-workflows 社区 Python 库:python-jenkins 官方 Python SDK:Tekton Python SDK 官方 Python 库:Atlassian API
实现 Connection 部署 支持 Helm 模板部署、删除、自定义镜像版本控制(PR/自动),存在 bug #14097 支持 HelmRelease 管理部署与删除,版本控制方式灵活 安装困难,WebHook 域名问题,相关 issueTekton configMap 错误 暂未找到满足需求方式 使用 Shell/Python 模板渲染 YAML,无生命周期管理,镜像版本手动关联 使用 YAML 编写流水线,支持复用Tekton Hub中 CRD,支持间接控制 ArgoCD,ECR 认证复杂 类似 Jenkins/Tekton
实现 Entity 部署 可配合CrossplaneACKFlamingo 同样支持 Crossplane、ACK、terraform-controller - - 使用 awscli/terraform 脚本或 Crossplane、ACK 与 Jenkins 相似 与 Jenkins 相似