Allow same deps with same name but different repo. Fix #7413

Signed-off-by: Tarek Marcé <tarek.marce@free.fr>
pull/30976/head
Tarek Marcé 11 months ago
parent dd8d409a74
commit 6bd8277e2d

@ -108,6 +108,10 @@ func (r *Resolver) Resolve(reqs []*chart.Dependency, repoNames map[string]string
} }
repoName := repoNames[d.Name] repoName := repoNames[d.Name]
if d.Alias != "" {
repoName = repoNames[d.Alias]
}
// if the repository was not defined, but the dependency defines a repository url, bypass the cache // if the repository was not defined, but the dependency defines a repository url, bypass the cache
if repoName == "" && d.Repository != "" { if repoName == "" && d.Repository != "" {
locked[i] = &chart.Dependency{ locked[i] = &chart.Dependency{

@ -572,6 +572,10 @@ func (m *Manager) resolveRepoNames(deps []*chart.Dependency) (map[string]string,
// by Helm. // by Helm.
missing := []string{} missing := []string{}
for _, dd := range deps { for _, dd := range deps {
chartName := dd.Name
if dd.Alias != "" {
chartName = dd.Alias
}
// Don't map the repository, we don't need to download chart from charts directory // Don't map the repository, we don't need to download chart from charts directory
if dd.Repository == "" { if dd.Repository == "" {
continue continue
@ -585,12 +589,12 @@ func (m *Manager) resolveRepoNames(deps []*chart.Dependency) (map[string]string,
if m.Debug { if m.Debug {
fmt.Fprintf(m.Out, "Repository from local path: %s\n", dd.Repository) fmt.Fprintf(m.Out, "Repository from local path: %s\n", dd.Repository)
} }
reposMap[dd.Name] = dd.Repository reposMap[chartName] = dd.Repository
continue continue
} }
if registry.IsOCI(dd.Repository) { if registry.IsOCI(dd.Repository) {
reposMap[dd.Name] = dd.Repository reposMap[chartName] = dd.Repository
continue continue
} }
@ -601,11 +605,11 @@ func (m *Manager) resolveRepoNames(deps []*chart.Dependency) (map[string]string,
(strings.HasPrefix(dd.Repository, "alias:") && strings.TrimPrefix(dd.Repository, "alias:") == repo.Name) { (strings.HasPrefix(dd.Repository, "alias:") && strings.TrimPrefix(dd.Repository, "alias:") == repo.Name) {
found = true found = true
dd.Repository = repo.URL dd.Repository = repo.URL
reposMap[dd.Name] = repo.Name reposMap[chartName] = repo.Name
break break
} else if urlutil.Equal(repo.URL, dd.Repository) { } else if urlutil.Equal(repo.URL, dd.Repository) {
found = true found = true
reposMap[dd.Name] = repo.Name reposMap[chartName] = repo.Name
break break
} }
} }

Loading…
Cancel
Save