• Stars
    star
    3,372
  • Rank 13,264 (Top 0.3 %)
  • Language
    TypeScript
  • License
    Mozilla Public Li...
  • Created almost 7 years ago
  • Updated 15 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Automation for Kubernetes development and testing. Spin up production-like environments for development, testing, and CI on demand. Use the same configuration and workflows at every step of the process. Speed up your builds and test runs via shared result caching

Garden

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

Quickstart   •   Website   •   Docs   •   Examples   •   Blog   •   Discord

Garden is a tool that combines rapid development, testing, and DevOps automation in one platform. It is designed for teams developing applications that run on Kubernetes and for DevOps Engineers writing infrastructure as code. This repository contains the source of Garden core along with its documentation and examples.

With Garden you can:

  • Test and develop with smart caching and live reloading.
  • Build container images and push them to any number of registries, automatically, as you write.
  • Use remote Kubernetes clusters as your development environment with developer namespaces.
  • Declare your entire stack in a single file (or many files), including how it's built, deployed and tested from infrastructure to application code.

Installation

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

Otherwise:

curl -sL https://get.garden.io/install.sh | bash

For more installation options, see the installation guide.

Demo

Garden dev deploy

Usage

If you have a garden.yml file in your project, you can run garden commands from the root of your project. If you don't have a garden.yml file, clone the quickstart project:

git clone https://github.com/garden-io/garden-quickstart.git

Now start the dev console with:

garden dev

Build with:

build

Deploy with:

deploy

Test with:

test

Exit with exit.

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

garden deploy --env preview

A developer wants to run an end-to-end test from their laptop as they code. Simple:

garden test --name my-e2e-test

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, simply run:

garden deploy --sync

Docs

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

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.

  • Efficient builds and deploys: The Stack Graph allows Garden to determine which parts of your project have changed and need to be rebuilt or redeployed, avoiding unnecessary work and speeding up the development process.

  • Automated testing: Garden can automatically run tests for the parts of your project that have changed, thanks to the Stack Graph. This saves time because all parts of your dependency graph are known and cached.

  • DevOps automation: The Stack Graph allows Garden to automate many aspects of the DevOps process, including building, testing, and deploying your project.

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).

More Repositories

1

go3dprint

Go 3D Print
Go
36
star
2

mlem

Machine Learning Excluding Math
Go
23
star
3

garden-action

GitHub action to install and prepare Garden, in order to run workflows, tests or deploy to your environments inside GitHub Workflows.
16
star
4

garden-aws-quickstart

Garden AWS Quickstart solution for production-like development clusters on AWS.
TypeScript
12
star
5

update-homebrew-action

A GitHub Action for pushing new releases to your Homebrew tap
TypeScript
8
star
6

quickstart-example

The Garden quickstart example project
Vue
8
star
7

ci-demo-project

An example project that demonstrates how to use Garden inside a CI/CD pipeline
JavaScript
6
star
8

rails-vote

A minimal example app demonstrating Ruby on Rails running inside Kubernetes
Ruby
5
star
9

homebrew-garden

Homebrew packages for Garden
Ruby
5
star
10

garden-example-hasura

A simple demo app that uses the Hasura GraphQL engine
JavaScript
5
star
11

garden-example-cloud-sql

An example project that demonstrates how to use Garden to spin up a GKE cluster and a Cloud SQL database via Garden's Terraform plugin
HCL
5
star
12

garden-example-vote-helm

Voting app example, implemented with Garden and Helm
JavaScript
3
star
13

bazel-garden

Deploying bazel project via garden
Starlark
2
star
14

garden-example-remote-sources-web-services

A test repo for trying out Garden's remote sources functionality.
JavaScript
2
star
15

garden-interactive-environments

Store code for Interactive environments for Garden.io (Killercoda/Cloud Shell)
Shell
1
star
16

garden-example-remote-module-jworker

A test repo for trying out some functionality of the Garden engine.
Java
1
star
17

garden-docker-compose

A sample docker-compose project, migrated to Garden
JavaScript
1
star
18

garden-example-remote-sources-db-services

A test repo for trying out Garden's remote sources functionality.
1
star
19

web-app-example

The three-tier web app example project from the "First Project" tutorial and the "Getting Started" video tutorial
Vue
1
star