GoogleContainerTools / GoogleContainerTools/skaffold
Question: what is the recommended approach to work with multi-module Gradle+Jib project
- Dominant language
- Go
- Stars
- 15.9k
- Forks
- 1.7k
- Avg merge
- 3d 9h
- Merged PRs (30d)
- 10
Description
### Expected behavior
An easy way to work with individual modules/services in a multi-module Gradle+Jib project. For example a separate `skaffold.yaml` for each service with an easy way to share common configurations like namespace and Helm repo URL.
### Actual behavior
Skaffold fails with ` "gradle": executable file not found in $PATH` if executed from a module/service directory.
It works only if I execute Skaffold from the project's root directory with the full path to the configuration: `skaffold run -f service1/skaffold.yaml`. Helm release `valuesFiles` path resolved relative to the current directory and not `skaffold.yaml` file location requiring to configure it like this:
```yaml
deploy:
helm:
releases:
- name: services
valuesFiles:
- service1/values.yaml
```
Running `skaffold run -m service1` from the root project directory for a service configured in a Gradle module also results in `"gradle": executable file not found in $PATH` error.
The additional option to deploy separate services in a multi-module Gradle+Jib project is by creating a profile for each service which probably is not their intended purpose.
### Information
- Skaffold version: 2.12.0
- Operating system: Ubuntu 22.04.4
- Installed via: curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/latest/skaffold-linux-amd64 && \ sudo install skaffold /usr/local/bin/
Contributor guide
Assessment
This issue has not been assessed yet.