Avoid --skip-refresh on local charts (#541)

All the dependencies get correctly installed when dealing with remote
charts.

If there's a local chart that depends on remote dependencies then those
don't get automatically installed. See #526. They end up with this
error:

```
Error: no cached repository for helm-manager-b6cf96b91af4f01317d185adfbe32610179e5246214be9646a52cb0b86032272 found. (try 'helm repo update'): open /root/.cache/helm/repository/helm-manager-b6cf96b91af4f01317d185adfbe32610179e5246214be9646a52cb0b86032272-index.yaml: no such file or directory
```

One workaround for that would be to add the repositories from the local
charts. Something like this:

```
cd local-chart/ && helm dependency list $dir 2> /dev/null | tail +2 | head -n -1 | awk '{ print "helm repo add " $1 " " $3 }' | while read cmd; do $cmd; done
```

This however is not trivial to parse and implement.

An easier fix which I did here is just to not allow doing
`--skip-refresh` for local repositories.

Fixes #526

Signed-off-by: Indrek Juhkam <indrek@urgas.eu>

Signed-off-by: Indrek Juhkam <indrek@urgas.eu>
Signed-off-by: yxxhero <aiopsclub@163.com>
This commit is contained in:
Indrek Juhkam
2022-12-13 13:12:07 +08:00
committed by yxxhero
parent 197fdcdabd
commit 608bb0b525
18 changed files with 91 additions and 41 deletions
+1 -1
View File
@@ -78,7 +78,7 @@ func (helm *Helm) UpdateDeps(chart string) error {
return nil
}
func (helm *Helm) BuildDeps(name, chart string) error {
func (helm *Helm) BuildDeps(name, chart string, flags ...string) error {
if strings.Contains(chart, "error") {
return errors.New("error")
}