[!警告]
Garden 0.12.x 生命周期终止: Garden Acorn(0.12.x 版本)将在 2024 年 6 月 30 日之前接收安全更新。之后它将被弃用,我们将停止支持。详见公告。
Garden
如果你喜欢 Garden,请 ★ 给这个仓库加星以表示你的支持 :green_heart:。需要支持?加入我们的 Discord。
欢迎使用 Garden!
Garden 是一款 DevOps 自动化工具,用于更快速地开发和测试 Kubernetes 应用。
- 按需启动用于开发、测试和 CI 的类生产环境
- 在软件交付的每个阶段使用相同的配置和工作流
- 通过智能缓存加速构建和测试运行。
入门
开始使用 Garden 最快的方法是按照我们的快速入门指南进行操作。
演示
文档
如需全面了解 Garden 及其详细文档,请访问我们的文档。
使用概述
Garden 通过 garden.yml
文件进行配置。对于大型项目,你可以将文件拆分,并将它们与堆栈的相关部分放在一起,甚至可以跨多个仓库。
一个(简化的)Web 应用的 Garden 配置如下所示:
kind: Deploy
name: db
type: helm
spec:
chart:
name: postgres
repo: https://charts.bitnami.com/bitnami
---
kind: Build
name: api
type: container
source:
path: ./api
---
kind: Deploy
name: api
type: kubernetes
dependencies: [build.api, deploy.postgres]
spec:
files: [./manifests/api/**/*]
---
kind: Test
name: integ
type: container
dependencies: [deploy.api]
spec:
args: [npm, run, test:integ]
你可以使用以下命令构建和部署此项目:
garden deploy
...并使用以下命令进行测试:
garden test
要在每个 pull request 上创建预览环境,你可以在 CI 流水线中添加以下内容:
garden deploy --env preview
Garden 还有一个特殊模式称为"同步模式",它可以实时重新加载对运行服务的更改——确保开发时获得极快的反馈。要启用它,运行:
garden deploy --sync
你还可以启动一个交互式开发控制台(见上面的屏幕截图),从中可以构建、部署和测试你的项目:
garden dev
Garden 如何工作
Stack Graph 是 Garden 的一个关键特性,它能够实现高效的开发、测试和 DevOps 自动化。Stack Graph 允许你声明项目的依赖结构并跟踪变更,以避免不必要的构建、部署和测试运行。它就像是可以用于开发的 CI/CD 配置。没有 Stack Graph,许多使 Garden 区别于竞争对手的功能将无法实现或效率会大大降低。
-
高效的构建和部署: Stack Graph 使 Garden 能够确定项目的哪些部分发生了变化并需要重新构建或重新部署,避免不必要的工作并加快开发过程。
-
自动化测试: 得益于 Stack Graph,Garden 可以自动运行项目中已更改部分的测试。这节省了时间,因为依赖图的所有部分都是已知的并且已缓存。
-
DevOps 自动化: Stack Graph 使 Garden 能够自动化 DevOps 过程的许多方面,包括构建、测试和部署你的项目。
有关 Stack Graph 和 Garden 工作原理的更多信息,请参阅:
插件
Garden 是_可插拔的_:操作的执行方式取决于所使用的插件。我们的 Kubernetes 插件目前最受欢迎,其次是 Terraform 和 Pulumi 插件。有关 Garden 及其插件的更详细介绍,请访问我们的文档:
社区
加入我们的 Discord 社区,提出问题、反馈或只是打个招呼 🙂
贡献
Garden 欢迎贡献!请查看我们的贡献指南以获取更多信息。
许可证
Garden 根据 Mozilla Public License 2.0 (MPL-2.0) 许可。