Unverified Commit 170cff83 authored by Taylor Thomas's avatar Taylor Thomas Committed by GitHub

Merge pull request #3120 from TimDumol/feat/dep-up-error-msg

feat(helm): add better error message to 'dep up'
parents 1e373043 8fae16fb
...@@ -354,7 +354,7 @@ func (m *Manager) hasAllRepos(deps []*chartutil.Dependency) error { ...@@ -354,7 +354,7 @@ func (m *Manager) hasAllRepos(deps []*chartutil.Dependency) error {
} }
} }
if len(missing) > 0 { if len(missing) > 0 {
return fmt.Errorf("no repository definition for %s. Try 'helm repo add'", strings.Join(missing, ", ")) return fmt.Errorf("no repository definition for %s. Please add the missing repos via 'helm repo add'", strings.Join(missing, ", "))
} }
return nil return nil
} }
...@@ -406,7 +406,24 @@ func (m *Manager) getRepoNames(deps []*chartutil.Dependency) (map[string]string, ...@@ -406,7 +406,24 @@ func (m *Manager) getRepoNames(deps []*chartutil.Dependency) (map[string]string,
} }
} }
if len(missing) > 0 { if len(missing) > 0 {
return nil, fmt.Errorf("no repository definition for %s. Try 'helm repo add'", strings.Join(missing, ", ")) if len(missing) > 0 {
errorMessage := fmt.Sprintf("no repository definition for %s. Please add them via 'helm repo add'", strings.Join(missing, ", "))
// It is common for people to try to enter "stable" as a repository instead of the actual URL.
// For this case, let's give them a suggestion.
containsNonURL := false
for _, repo := range missing {
if !strings.Contains(repo, "//") && !strings.HasPrefix(repo, "@") && !strings.HasPrefix(repo, "alias:") {
containsNonURL = true
}
}
if containsNonURL {
errorMessage += `
Note that repositories must be URLs or aliases. For example, to refer to the stable
repository, use "https://kubernetes-charts.storage.googleapis.com/" or "@stable" instead of
"stable". Don't forget to add the repo, too ('helm repo add').`
}
return nil, errors.New(errorMessage)
}
} }
return reposMap, nil return reposMap, nil
} }
......
...@@ -106,6 +106,13 @@ func TestGetRepoNames(t *testing.T) { ...@@ -106,6 +106,13 @@ func TestGetRepoNames(t *testing.T) {
}, },
err: true, err: true,
}, },
{
name: "no repo definition failure -- stable repo",
req: []*chartutil.Dependency{
{Name: "oedipus-rex", Repository: "stable"},
},
err: true,
},
{ {
name: "no repo definition failure", name: "no repo definition failure",
req: []*chartutil.Dependency{ req: []*chartutil.Dependency{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment