Merge pull request #2880 from rocky-nupt/feat-auto-dep-up

feat(helm): Automatically execute helm dep up when charts are in requirements.yaml but not in charts
pull/3079/head
Matthew Fisher 7 years ago committed by GitHub
commit 3dac6a6b9b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -119,6 +119,7 @@ type installCmd struct {
wait bool wait bool
repoURL string repoURL string
devel bool devel bool
depUp bool
certFile string certFile string
keyFile string keyFile string
@ -194,6 +195,7 @@ func newInstallCmd(c helm.Interface, out io.Writer) *cobra.Command {
f.StringVar(&inst.keyFile, "key-file", "", "identify HTTPS client using this SSL key file") f.StringVar(&inst.keyFile, "key-file", "", "identify HTTPS client using this SSL key file")
f.StringVar(&inst.caFile, "ca-file", "", "verify certificates of HTTPS-enabled servers using this CA bundle") f.StringVar(&inst.caFile, "ca-file", "", "verify certificates of HTTPS-enabled servers using this CA bundle")
f.BoolVar(&inst.devel, "devel", false, "use development versions, too. Equivalent to version '>0.0.0-0'. If --version is set, this is ignored.") f.BoolVar(&inst.devel, "devel", false, "use development versions, too. Equivalent to version '>0.0.0-0'. If --version is set, this is ignored.")
f.BoolVar(&inst.depUp, "dep-up", false, "run helm dependency update before installing the chart")
return cmd return cmd
} }
@ -231,8 +233,23 @@ func (i *installCmd) run() error {
// As of Helm 2.4.0, this is treated as a stopping condition: // As of Helm 2.4.0, this is treated as a stopping condition:
// https://github.com/kubernetes/helm/issues/2209 // https://github.com/kubernetes/helm/issues/2209
if err := checkDependencies(chartRequested, req); err != nil { if err := checkDependencies(chartRequested, req); err != nil {
if i.depUp {
man := &downloader.Manager{
Out: i.out,
ChartPath: i.chartPath,
HelmHome: settings.Home,
Keyring: defaultKeyring(),
SkipUpdate: false,
Getters: getter.All(settings),
}
if err := man.Update(); err != nil {
return prettyError(err)
}
} else {
return prettyError(err) return prettyError(err)
} }
}
} else if err != chartutil.ErrRequirementsNotFound { } else if err != chartutil.ErrRequirementsNotFound {
return fmt.Errorf("cannot load requirements: %v", err) return fmt.Errorf("cannot load requirements: %v", err)
} }

@ -70,6 +70,7 @@ helm install [CHART]
``` ```
--ca-file string verify certificates of HTTPS-enabled servers using this CA bundle --ca-file string verify certificates of HTTPS-enabled servers using this CA bundle
--cert-file string identify HTTPS client using this SSL certificate file --cert-file string identify HTTPS client using this SSL certificate file
--dep-up run helm dependency update before installing the chart
--devel use development versions, too. Equivalent to version '>0.0.0-0'. If --version is set, this is ignored. --devel use development versions, too. Equivalent to version '>0.0.0-0'. If --version is set, this is ignored.
--dry-run simulate an install --dry-run simulate an install
--key-file string identify HTTPS client using this SSL key file --key-file string identify HTTPS client using this SSL key file

@ -122,6 +122,10 @@ charts in a repository, use 'helm search'.
\fB\-\-cert\-file\fP="" \fB\-\-cert\-file\fP=""
identify HTTPS client using this SSL certificate file identify HTTPS client using this SSL certificate file
.PP
\fB\-\-dep\-up\fP[=false]
run helm dependency update before installing the chart.
.PP .PP
\fB\-\-devel\fP[=false] \fB\-\-devel\fP[=false]
use development versions, too. Equivalent to version '>0.0.0\-a'. If \-\-version is set, this is ignored. use development versions, too. Equivalent to version '>0.0.0\-a'. If \-\-version is set, this is ignored.
@ -236,4 +240,4 @@ charts in a repository, use 'helm search'.
.SH HISTORY .SH HISTORY
.PP .PP
19\-May\-2017 Auto generated by spf13/cobra 31\-Oct\-2017 Auto generated by spf13/cobra

Loading…
Cancel
Save