LogoLogo
Bonsai (0.13) DocsGitHubDiscord CommunityGarden Enterprise
Bonsai (0.13)
Bonsai (0.13)
  • Welcome to Garden!
  • 🌸Overview
    • How Garden Works
    • Core Concepts
    • Adopting Garden
    • Garden vs Other Tools
  • 🌳Use Cases
    • Isolated On-Demand Preview Environments
    • Fast, Portable CI Pipelines that Run Anywhere
    • Shift Testing Left
    • Local Development With Remote Clusters
    • Jumpstart your Internal Developer Platform
  • 🌻Getting Started
    • Quickstart Guide
    • Installing Garden
    • Next Steps
  • 💐Tutorials
    • Your First Project
      • 1. Create a Garden Project
      • 2. Pick a Kubernetes Plugin
      • 3. Add Actions
      • 4. Add Tests
      • 5. Code Syncing (Hot Reload)
      • 6. Next Steps
  • 🌿Using Garden
    • About
    • Configuration Overview
    • Projects
    • Dashboard
    • Actions
    • Tests
    • Runs
    • Workflows
    • Variables and templating
    • Config Templates
    • Using the CLI
    • Modules
  • Kubernetes Plugins
    • About
    • Remote K8s Plugin Configuration
      • 1. Create a Cluster
        • AWS
        • GCP
        • Azure
      • 2. Configure Container Registry
        • AWS
        • GCP
        • Azure
        • Docker Hub
      • 3. Set Up Ingress, TLS and DNS
      • 4. Configure the Provider
    • Local K8s Plugin Configuration
      • 1. Install Local Kubernetes
      • 2. Configure the Provider
    • Ephemeral K8s Plugin Configuration
      • 1. Configure the Provider
      • 2. Login to the Garden dashboard
      • 3. Configure Ingress (optional)
      • 4. Retrieve Kubeconfig (optional)
    • Actions
      • Build
        • Container
      • Deploy
        • Kubernetes
        • Helm
        • Container
        • PersistentVolumeClaim
        • ConfigMap
      • Run and Test
        • Kubernetes Pod
        • Helm Pod
        • Kubernetes Exec
        • Container
    • Guides
      • In-Cluster Building
      • Minimal RBAC Configuration for Development Clusters
      • Deploying to Production
      • Using a Registry Mirror
  • ☘️Terraform Plugin
    • About
    • Plugin Configuration
    • Actions
  • 🌹Pulumi Plugin
    • About
    • Plugin Configuration
    • Actions
  • 🌼Other Plugins
    • Container
    • Exec (local scripts)
  • 🌷Guides
    • Migrating to Bonsai
    • Migrating from Docker Compose to Garden
    • Deprecations and updating to Cedar
    • Code Synchronization
    • Connecting a local application to a Kubernetes cluster (Local Mode)
    • Environments and namespaces
    • Using Garden in CircleCI
  • 🪷Advanced
    • Using Remote Sources
    • Custom Commands
  • 🎋Reference
    • Providers
      • conftest-container
      • conftest-kubernetes
      • conftest
      • container
      • ephemeral-kubernetes
      • exec
      • hadolint
      • jib
      • kubernetes
      • local-kubernetes
      • octant
      • otel-collector
      • pulumi
      • terraform
    • Action Types
      • Build
        • container Build
        • exec Build
        • jib-container Build
      • Deploy
        • configmap Deploy
        • container Deploy
        • exec Deploy
        • helm Deploy
        • kubernetes Deploy
        • persistentvolumeclaim Deploy
        • pulumi Deploy
        • terraform Deploy
      • Run
        • container Run
        • exec Run
        • helm-pod Run
        • kubernetes-exec Run
        • kubernetes-pod Run
      • Test
        • conftest-helm Test
        • conftest Test
        • container Test
        • exec Test
        • hadolint Test
        • helm-pod Test
        • kubernetes-exec Test
        • kubernetes-pod Test
    • Template Strings
      • Project template context
      • Environment template context
      • Provider template context
      • Action (all fields) template context
      • Action spec template context
      • Module template context
      • Remote Source template context
      • Project Output template context
      • Custom Command template context
      • Workflow template context
      • Template Helper Functions
    • Commands
    • Project Configuration
    • ConfigTemplate Reference
    • RenderTemplate Reference
    • Workflow Configuration
    • Garden Containers on Docker Hub
    • Module Template Configuration
    • Module Types
      • configmap
      • conftest
      • container
      • exec
      • hadolint
      • helm
      • jib-container
      • kubernetes
      • persistentvolumeclaim
      • pulumi
      • templated
      • terraform
  • 🌸Misc
    • FAQ
    • Troubleshooting
    • Telemetry
    • New Garden Cloud Version
  • Contributing to Garden
    • Contributor Covenant Code of Conduct
    • Contributing to the Docs
    • Setting up your developer environment
    • Developing Garden
    • Config resolution
    • Graph execution
Powered by GitBook
On this page
  • Option 1 (easiest) — Garden managed ephemeral cluster
  • Option 2 (simplest) — Local Kubernetes
  • Step 1 — Install Kuberneters locally
  • Step 2 — Update the default environment
  • Option 3 (most powerful) — Your own remote Kubernetes cluster
  • Step 1 — Setup remote Kubernetes
  • Step 2 — Update the default environment
  • Step 3 — Set the remote hostname
  • Next Step

Was this helpful?

  1. Tutorials
  2. Your First Project

2. Pick a Kubernetes Plugin

Previous1. Create a Garden ProjectNext3. Add Actions

Last updated 2 months ago

Was this helpful?

In order to deploy our project, we (perhaps obviously) need somewhere to deploy it to.

Here we hit a bit of a fork in the road since we have a choice between:

  1. Using Garden managed ephemeral clusters

  2. Setting up a local Kubernetes cluster on our dev machine

  3. Using our own remote cluster.

Option 1 (easiest) — Garden managed ephemeral cluster

This is the easiest way to get started and you don't need to do anything. Instead you can head directly to the next page and start .

To learn more about Garden managed ephemeral clusters, .

Option 2 (simplest) — Local Kubernetes

You can also use a local installation of Kubernetes (e.g. K3s, Minikube or Docker for Desktop). It's great for getting started quickly but you'll miss out on all the collaboration and team features you get with a remote Kubernetes environment.

To use this option follow the steps below.

Step 1 — Install Kuberneters locally

Follow our to set up this plugin.

Step 2 — Update the default environment

Open the project.garden.yml file we created earlier and update the defaultEnvironment field like so:

defaultEnvironment: local

Option 3 (most powerful) — Your own remote Kubernetes cluster

This option requires more upfront work but is highly recommended for teams using Garden. It allows you to build, test, and develop in a remote production-like environment that scales with your stack, caches your results, and allows you to easily share work with your team.

If you want to get started quickly we recommend first going for Option 1 above and then coming back to this one once you've kicked the tires.

Otherwise follow the steps below.

Step 1 — Setup remote Kubernetes

In particular you'll need to update the values under the kubernetes provider in the project.garden.yml file we created earlier.

Step 2 — Update the default environment

Open the project.garden.yml file we created earlier and update the defaultEnvironment field like so:

defaultEnvironment: remote-dev

Step 3 — Set the remote hostname

The example application expects a hostname to be set for remote environments. Update the hostname under the variables field of the remote-dev environment with the hostname to your Kubernetes cluster:

environments:
  # ...
  - name: remote-dev
    defaultNamespace: ${var.userNamespace}
    hostname: <add-your-hostname-here> # <--- Update this value

If you don't have a hostname configured you can set some pseudo value and use port forwards instead. Garden will create those for you when you run the deploy --sync or deploy --forward commands.

Next Step

Follow our to set up this plugin.

Once you've set up your Kubernetes plugin and updated your project configuration accordingly, you can move on to .

💐
adding Garden actions to the project
see here
local Kubernetes guide
remote Kubernetes guide
adding Garden actions to the project