GoogleContainerTools / GoogleContainerTools/skaffold

Question: what is the recommended approach to work with multi-module Gradle+Jib project

Open
#9,491 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.