超棒的GitOps资源列表
受@sindresorhus的awesome启发,精心策划的GitOps资源列表
我们遵循这份行为准则。
什么是GitOps?
GitOps是一种进行Kubernetes集群管理和应用程序交付的方法。它通过使用Git作为声明式基础设施和应用程序的唯一真实来源,结合确保基础设施和应用程序的_实际状态_向Git中声明的_期望状态_收敛的工具来实现。以Git为交付流程的中心,开发人员可以提出拉取请求,加速并简化应用程序部署和对基础设施或容器编排系统(如Kubernetes)的操作任务。
为什么GitOps很棒?
它提高了开发人员的生产力,增强了开发人员体验,提高了稳定性,同时具有更高的可靠性、更高的一致性和更强的安全保障。
现代软件开发实践_假定_支持审查变更、跟踪历史、比较版本和回滚错误更新;GitOps将相同的工具和工程视角应用于管理为用户和客户提供直接业务价值的系统。
背景
- 通过拉取请求进行操作 - 关于GitOps在Weaveworks是如何产生的博客文章
- GitOps.tech - GitOps工作原理的总结
- GitOps对话工具包 - 如何展示GitOps的优秀之处并说服所有利益相关者实施它
- GitOps工作组 - CNCF应用交付SIG下GitOps工作组的GitHub仓库。
工具
- ArgoCD - Kubernetes的声明式持续部署工具
- Atlantis - Terraform拉取请求自动化工具
- Autoapply - 自动将Git仓库中的更改应用到Kubernetes集群
- Carvel — 以GitOps方式在Kubernetes上构建、打包和管理软件的工具套件
- CloudBees Rollout - 利用GitOps和配置即代码的特性标志即服务(CloudBees的商业产品)
- Flux - 开放且可扩展的Kubernetes持续交付解决方案,由GitOps工具包驱动
- Helm Operator - 以GitOps方式自动化Helm Chart发布
- Flagger - Kubernetes的渐进式交付操作器(金丝雀、A/B测试和蓝/绿部署自动化)
- Ignite - 具有容器用户体验和内置GitOps的虚拟机管理器
- Faros - 基于CRD的GitOps控制器
- Jenkins X - Kubernetes的CI/CD平台,提供流水线自动化、内置GitOps和预览环境
- Kubefirst - 全自动开源交付和基础设施管理GitOps平台
- KubeStack - 使用Terraform的GitOps框架,适用于云Kubernetes发行版(AKS、GKE和EKS),包含常用工具的CI/CD示例
- Sceptre - Sceptre是一个工具,通过使用钩子作为CI/CD流水线的一部分来驱动AWS CloudFormation
- Weave GitOps OSS - Weave GitOps是一个简单的开源开发者平台,适合想要云原生应用但不需要Kubernetes专业知识的人使用
- Weave GitOps Enterprise - Weave GitOps Enterprise是一个持续运营产品,可轻松在任何环境中大规模部署和管理Kubernetes集群和应用程序(Weaveworks的商业产品)
- Werf - GitOps工具,具有高级功能,可构建镜像并将其部署到Kubernetes(可与任何现有CI系统集成)
- PipeCD - 用于声明式Kubernetes、无服务器和基础设施应用程序的持续交付工具
- Grant.rs - 以GitOps风格管理Redshift/Postgres权限
- Gimlet - 基于Flux的内部开发者平台
辅助工具
通知
- Fluxcloud - 无需Weave Cloud的Flux Slack通知
密钥
- argocd-vault-plugin - ArgoCD插件,用于从Vault检索密钥并将其注入Kubernetes资源
- git-secret - 在git仓库中存储私有数据的bash工具
- Kamus - Kubernetes应用程序的零信任密钥加密/解密解决方案
- Sealed Secrets - 单向加密的密钥
- SOPS - 密钥操作
- Vault Secrets Operator - 将Vault中的密钥同步到Kubernetes
教程
- 以GitOps方式管理Helm发布 - Flux和Helm Operator教程
- 使用GitOps自动化Istio金丝雀部署 - 使用Flagger、Flux、Helm Operator和Istio的渐进式交付教程
- 使用GitOps管理多租户集群 - Flux和Kustomize教程
- 使用Cloud Build进行GitOps风格的持续交付 - Google Cloud Build教程
社区
- Kubernetes Slack - #gitops 频道,用于讨论 GitOps 模式和工具
- CNCF Slack - #flux 频道,用于讨论 GitOps 模式和工具
- Weaveworks Slack - 多个频道(包括 #flagger、#wksctl 等),用于讨论 Weaveworks GitOps 产品、提供反馈,以及探讨通用方法