Home

Awesome

[!WARNING]
Garden 0.12.x EOL: Garden Acorn (0.12.x) will receive security updates until the 30th of June, 2024. After that it will be deprecated and we'll stop support. See announcement.

Garden

If you love Garden, please ★ star this repository to show your support :green_heart:. Looking for support? Join our Discord.

<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://github-production-user-asset-6210df.s3.amazonaws.com/658727/272340510-34957be5-7318-4473-8141-2751ca571c4f.png"> <source media="(prefers-color-scheme: light)" srcset="https://github-production-user-asset-6210df.s3.amazonaws.com/658727/272340472-ad8d7a46-ef85-47ea-9129-d815206ed2f6.png"> <img alt="Garden" src="https://github-production-user-asset-6210df.s3.amazonaws.com/658727/272340472-ad8d7a46-ef85-47ea-9129-d815206ed2f6.png"> </picture> </p> <div align="center"> <a href="https://docs.garden.io/getting-started/quickstart/?utm_source=github">Quickstart</a> <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span> <a href="https://garden.io/?utm_source=github">Website</a> <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span> <a href="https://docs.garden.io/?utm_source=github">Docs</a> <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span> <a href="https://github.com/garden-io/garden/tree/0.13.47/examples">Examples</a> <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span> <a href="https://garden.io/blog/?utm_source=github">Blog</a> <span>&nbsp;&nbsp;•&nbsp;&nbsp;</span> <a href="https://go.garden.io/discord">Discord</a> </div>

Welcome to Garden!

Garden is a DevOps automation tool for developing and testing Kubernetes apps faster.

Getting Started

The fastest way to get started with Garden is by following our quickstart guide.

Demo

Garden dev deploy

Docs

For a thorough introduction to Garden and comprehensive documentation, visit our docs.

Usage Overview

Garden is configured via garden.yml files. For large projects you can split the files up and co-locate them with the relevant parts of your stack, even across multiple repositories.

A (simplified) Garden configuration for a web app looks like this:

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]

You can build and deploy this project with:

garden deploy

...and test it with:

garden test

To create a preview environment on every pull request, you would add the following to your CI pipeline:

garden deploy --env preview

Garden also has a special mode called "sync mode" which live reloads changes to your running services—ensuring blazing fast feedback while developing. To enable it, run:

garden deploy --sync

You can also start an interactive dev console (see screencap above) from which you can build, deploy, and test your project with:

garden dev

How Garden Works

The Stack Graph is a key feature of Garden that enables efficient development, testing, and DevOps automation. The Stack Graph allows you to declare the dependency structure of your project and track changes to avoid unnecessary builds, deploys and test runs. It's like CI/CD config that you can additionally use for development. Without the Stack Graph, many of these functionalities that distinguish Garden from its competitors would not be possible or would be much less efficient.

For more information on the Stack Graph and how Garden works, see:

Plugins

Garden is pluggable: how actions are executed depends on the plugins used. Our Kubernetes plugin is currently the most popular, followed by our Terraform and Pulumi plugins. For a more thorough introduction to Garden and its plugins, visit our docs:

Community

Join our Discord community to ask questions, give feedback or just say hi 🙂

Contributing

Garden accepts contributions! Please see our contributing guide for more information.

License

Garden is licensed according to Mozilla Public License 2.0 (MPL-2.0).