Getting "no services to deploy" if project garden.yml is in parent directory

Hi,

I have a number of existing git projects with helm charts that I am trying to deploy to Minikube using garden. Projects reside beside each other under the same parent directory. It works for one project if I place project.garden.yml at the root of this project. I am however trying to deploy multiple charts with a single command, so moved the project.garden.yml to the parent directory - and now garden prints the above message.
Parent directory is not part of git project and I had to run “git init” to make garden run there. I also tried to define module “include” path, and to add a “source” with “repositoryUrl” pointing to local directory. No luck so far, and I am out of ideas. Any advise?

Thanks,
Michael

Hey Michael!

I think what you’re running into is that you have a nested git root which is being ignored. Garden uses git to scan for files, and git doesn’t traverse into nested git roots. However, Garden will scan submodules, so if you add the nested git roots as submodules in the parent, it’ll work nicely.

Another option is to use the remote sources, like you looked into, although many users find standard git submodules to be preferable. Just a matter of taste really, but you can explore the Remote Sources docs to see in more detail how all that works: Remote Sources - Garden

Hope that’s helpful. I’ve just made a note to explicitly warn when a nested git repo root is being ignored, I think that’d avoid this confusion.

Cheers,
Jón

1 Like

Thanks Jon,

so, assuming my remote repo is http://some.remote.repo/myproject, and my helm chart resides under somedir/helm/, and I am working under separate “garden” project and want to deploy this chart from master branch - how should my deployment configuration look like (just a very basic skeleton)?

So if you’re making a new repo for the Garden project config, and then referencing your remote repo there (hope I’m understanding that correctly), you could do it like this with submodules:

  1. Put the project config in the root of your new repo (name it something like project.garden.yml)
  2. Add the remote repo as a submodule in the root of your new repo (git submodule add http://some.remote.repo/myproject)
  3. Add a helm module config next to your project config (name it something like my-module.garden.yml) and configure it roughly like this:
kind: Module
type: helm
name: my-module
include:
  - "myproject/somedir/helm/**/*"
chartPath: myproject/somedir/helm

Hope that helps!

This actually helped, thanks Jon!

2 Likes