Implements --repo flag to commands fetch, install, inspect, upgrade

pull/2300/head
Sushil Kumar 8 years ago
parent 0c91d41221
commit d13b134ffb

@ -27,6 +27,7 @@ import (
"k8s.io/helm/pkg/chartutil" "k8s.io/helm/pkg/chartutil"
"k8s.io/helm/pkg/downloader" "k8s.io/helm/pkg/downloader"
"k8s.io/helm/pkg/getter" "k8s.io/helm/pkg/getter"
"k8s.io/helm/pkg/repo"
) )
const fetchDesc = ` const fetchDesc = `
@ -50,11 +51,16 @@ type fetchCmd struct {
chartRef string chartRef string
destdir string destdir string
version string version string
repoURL string
verify bool verify bool
verifyLater bool verifyLater bool
keyring string keyring string
certFile string
keyFile string
caFile string
out io.Writer out io.Writer
} }
@ -87,6 +93,10 @@ func newFetchCmd(out io.Writer) *cobra.Command {
f.StringVar(&fch.version, "version", "", "specific version of a chart. Without this, the latest version is fetched") f.StringVar(&fch.version, "version", "", "specific version of a chart. Without this, the latest version is fetched")
f.StringVar(&fch.keyring, "keyring", defaultKeyring(), "keyring containing public keys") f.StringVar(&fch.keyring, "keyring", defaultKeyring(), "keyring containing public keys")
f.StringVarP(&fch.destdir, "destination", "d", ".", "location to write the chart. If this and tardir are specified, tardir is appended to this") f.StringVarP(&fch.destdir, "destination", "d", ".", "location to write the chart. If this and tardir are specified, tardir is appended to this")
f.StringVar(&fch.repoURL, "repo", "", "chart repository url where to locate the requested chart")
f.StringVar(&fch.certFile, "cert-file", "", "identify HTTPS client using this SSL certificate file")
f.StringVar(&fch.keyFile, "key-file", "", "identify HTTPS client using this SSL key file")
f.StringVar(&fch.caFile, "ca-file", "", "verify certificates of HTTPS-enabled servers using this CA bundle")
return cmd return cmd
} }
@ -118,6 +128,14 @@ func (f *fetchCmd) run() error {
defer os.RemoveAll(dest) defer os.RemoveAll(dest)
} }
if f.repoURL != "" {
chartURL, err := repo.FindChartInRepoURL(f.repoURL, f.chartRef, f.version, f.certFile, f.keyFile, f.caFile, getter.All(settings))
if err != nil {
return err
}
f.chartRef = chartURL
}
saved, v, err := c.DownloadTo(f.chartRef, f.version, dest) saved, v, err := c.DownloadTo(f.chartRef, f.version, dest)
if err != nil { if err != nil {
return err return err

@ -50,6 +50,11 @@ type inspectCmd struct {
keyring string keyring string
out io.Writer out io.Writer
version string version string
repoURL string
certFile string
keyFile string
caFile string
} }
const ( const (
@ -72,7 +77,8 @@ func newInspectCmd(out io.Writer) *cobra.Command {
if err := checkArgsLength(len(args), "chart name"); err != nil { if err := checkArgsLength(len(args), "chart name"); err != nil {
return err return err
} }
cp, err := locateChartPath(args[0], insp.version, insp.verify, insp.keyring) cp, err := locateChartPath(insp.repoURL, args[0], insp.version, insp.verify, insp.keyring,
insp.certFile, insp.keyFile, insp.caFile)
if err != nil { if err != nil {
return err return err
} }
@ -90,7 +96,8 @@ func newInspectCmd(out io.Writer) *cobra.Command {
if err := checkArgsLength(len(args), "chart name"); err != nil { if err := checkArgsLength(len(args), "chart name"); err != nil {
return err return err
} }
cp, err := locateChartPath(args[0], insp.version, insp.verify, insp.keyring) cp, err := locateChartPath(insp.repoURL, args[0], insp.version, insp.verify, insp.keyring,
insp.certFile, insp.keyFile, insp.caFile)
if err != nil { if err != nil {
return err return err
} }
@ -108,7 +115,8 @@ func newInspectCmd(out io.Writer) *cobra.Command {
if err := checkArgsLength(len(args), "chart name"); err != nil { if err := checkArgsLength(len(args), "chart name"); err != nil {
return err return err
} }
cp, err := locateChartPath(args[0], insp.version, insp.verify, insp.keyring) cp, err := locateChartPath(insp.repoURL, args[0], insp.version, insp.verify, insp.keyring,
insp.certFile, insp.keyFile, insp.caFile)
if err != nil { if err != nil {
return err return err
} }
@ -136,6 +144,30 @@ func newInspectCmd(out io.Writer) *cobra.Command {
valuesSubCmd.Flags().StringVar(&insp.version, verflag, "", verdesc) valuesSubCmd.Flags().StringVar(&insp.version, verflag, "", verdesc)
chartSubCmd.Flags().StringVar(&insp.version, verflag, "", verdesc) chartSubCmd.Flags().StringVar(&insp.version, verflag, "", verdesc)
repoURL := "repo"
repoURLdesc := "chart repository url where to locate the requested chart"
inspectCommand.Flags().StringVar(&insp.repoURL, repoURL, "", repoURLdesc)
valuesSubCmd.Flags().StringVar(&insp.repoURL, repoURL, "", repoURLdesc)
chartSubCmd.Flags().StringVar(&insp.repoURL, repoURL, "", repoURLdesc)
certFile := "cert-file"
certFiledesc := "verify certificates of HTTPS-enabled servers using this CA bundle"
inspectCommand.Flags().StringVar(&insp.certFile, certFile, "", certFiledesc)
valuesSubCmd.Flags().StringVar(&insp.certFile, certFile, "", certFiledesc)
chartSubCmd.Flags().StringVar(&insp.certFile, certFile, "", certFiledesc)
keyFile := "key-file"
keyFiledesc := "identify HTTPS client using this SSL key file"
inspectCommand.Flags().StringVar(&insp.keyFile, keyFile, "", keyFiledesc)
valuesSubCmd.Flags().StringVar(&insp.keyFile, keyFile, "", keyFiledesc)
chartSubCmd.Flags().StringVar(&insp.keyFile, keyFile, "", keyFiledesc)
caFile := "ca-file"
caFiledesc := "chart repository url where to locate the requested chart"
inspectCommand.Flags().StringVar(&insp.caFile, caFile, "", caFiledesc)
valuesSubCmd.Flags().StringVar(&insp.caFile, caFile, "", caFiledesc)
chartSubCmd.Flags().StringVar(&insp.caFile, caFile, "", caFiledesc)
inspectCommand.AddCommand(valuesSubCmd) inspectCommand.AddCommand(valuesSubCmd)
inspectCommand.AddCommand(chartSubCmd) inspectCommand.AddCommand(chartSubCmd)

@ -39,6 +39,7 @@ import (
"k8s.io/helm/pkg/kube" "k8s.io/helm/pkg/kube"
"k8s.io/helm/pkg/proto/hapi/chart" "k8s.io/helm/pkg/proto/hapi/chart"
"k8s.io/helm/pkg/proto/hapi/release" "k8s.io/helm/pkg/proto/hapi/release"
"k8s.io/helm/pkg/repo"
"k8s.io/helm/pkg/strvals" "k8s.io/helm/pkg/strvals"
) )
@ -115,6 +116,11 @@ type installCmd struct {
version string version string
timeout int64 timeout int64
wait bool wait bool
repoURL string
certFile string
keyFile string
caFile string
} }
type valueFiles []string type valueFiles []string
@ -149,7 +155,8 @@ func newInstallCmd(c helm.Interface, out io.Writer) *cobra.Command {
if err := checkArgsLength(len(args), "chart name"); err != nil { if err := checkArgsLength(len(args), "chart name"); err != nil {
return err return err
} }
cp, err := locateChartPath(args[0], inst.version, inst.verify, inst.keyring) cp, err := locateChartPath(inst.repoURL, args[0], inst.version, inst.verify, inst.keyring,
inst.certFile, inst.keyFile, inst.caFile)
if err != nil { if err != nil {
return err return err
} }
@ -173,6 +180,10 @@ func newInstallCmd(c helm.Interface, out io.Writer) *cobra.Command {
f.StringVar(&inst.version, "version", "", "specify the exact chart version to install. If this is not specified, the latest version is installed") f.StringVar(&inst.version, "version", "", "specify the exact chart version to install. If this is not specified, the latest version is installed")
f.Int64Var(&inst.timeout, "timeout", 300, "time in seconds to wait for any individual kubernetes operation (like Jobs for hooks)") f.Int64Var(&inst.timeout, "timeout", 300, "time in seconds to wait for any individual kubernetes operation (like Jobs for hooks)")
f.BoolVar(&inst.wait, "wait", false, "if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. It will wait for as long as --timeout") f.BoolVar(&inst.wait, "wait", false, "if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. It will wait for as long as --timeout")
f.StringVar(&inst.repoURL, "repo", "", "chart repository url where to locate the requested chart")
f.StringVar(&inst.certFile, "cert-file", "", "identify HTTPS client using this SSL certificate 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")
return cmd return cmd
} }
@ -331,7 +342,8 @@ func (i *installCmd) printRelease(rel *release.Release) {
// - URL // - URL
// //
// If 'verify' is true, this will attempt to also verify the chart. // If 'verify' is true, this will attempt to also verify the chart.
func locateChartPath(name, version string, verify bool, keyring string) (string, error) { func locateChartPath(repoURL, name, version string, verify bool, keyring,
certFile, keyFile, caFile string) (string, error) {
name = strings.TrimSpace(name) name = strings.TrimSpace(name)
version = strings.TrimSpace(version) version = strings.TrimSpace(version)
if fi, err := os.Stat(name); err == nil { if fi, err := os.Stat(name); err == nil {
@ -367,6 +379,14 @@ func locateChartPath(name, version string, verify bool, keyring string) (string,
if verify { if verify {
dl.Verify = downloader.VerifyAlways dl.Verify = downloader.VerifyAlways
} }
if repoURL != "" {
chartURL, err := repo.FindChartInRepoURL(repoURL, name, version,
certFile, keyFile, caFile, getter.All(settings))
if err != nil {
return "", err
}
name = chartURL
}
filename, _, err := dl.DownloadTo(name, version, ".") filename, _, err := dl.DownloadTo(name, version, ".")
if err == nil { if err == nil {

@ -74,6 +74,11 @@ type upgradeCmd struct {
resetValues bool resetValues bool
reuseValues bool reuseValues bool
wait bool wait bool
repoURL string
certFile string
keyFile string
caFile string
} }
func newUpgradeCmd(client helm.Interface, out io.Writer) *cobra.Command { func newUpgradeCmd(client helm.Interface, out io.Writer) *cobra.Command {
@ -117,6 +122,10 @@ func newUpgradeCmd(client helm.Interface, out io.Writer) *cobra.Command {
f.BoolVar(&upgrade.resetValues, "reset-values", false, "when upgrading, reset the values to the ones built into the chart") f.BoolVar(&upgrade.resetValues, "reset-values", false, "when upgrading, reset the values to the ones built into the chart")
f.BoolVar(&upgrade.reuseValues, "reuse-values", false, "when upgrading, reuse the last release's values, and merge in any new values. If '--reset-values' is specified, this is ignored.") f.BoolVar(&upgrade.reuseValues, "reuse-values", false, "when upgrading, reuse the last release's values, and merge in any new values. If '--reset-values' is specified, this is ignored.")
f.BoolVar(&upgrade.wait, "wait", false, "if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. It will wait for as long as --timeout") f.BoolVar(&upgrade.wait, "wait", false, "if set, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful. It will wait for as long as --timeout")
f.StringVar(&upgrade.repoURL, "repo", "", "chart repository url where to locate the requested chart")
f.StringVar(&upgrade.certFile, "cert-file", "", "identify HTTPS client using this SSL certificate file")
f.StringVar(&upgrade.keyFile, "key-file", "", "identify HTTPS client using this SSL key file")
f.StringVar(&upgrade.caFile, "ca-file", "", "verify certificates of HTTPS-enabled servers using this CA bundle")
f.MarkDeprecated("disable-hooks", "use --no-hooks instead") f.MarkDeprecated("disable-hooks", "use --no-hooks instead")
@ -124,7 +133,7 @@ func newUpgradeCmd(client helm.Interface, out io.Writer) *cobra.Command {
} }
func (u *upgradeCmd) run() error { func (u *upgradeCmd) run() error {
chartPath, err := locateChartPath(u.chart, u.version, u.verify, u.keyring) chartPath, err := locateChartPath(u.repoURL, u.chart, u.version, u.verify, u.keyring, u.certFile, u.keyFile, u.caFile)
if err != nil { if err != nil {
return err return err
} }

@ -27,9 +27,13 @@ helm fetch [flags] [chart URL | repo/chartname] [...]
### Options ### Options
``` ```
--ca-file string verify certificates of HTTPS-enabled servers using this CA bundle
--cert-file string identify HTTPS client using this SSL certificate file
-d, --destination string location to write the chart. If this and tardir are specified, tardir is appended to this (default ".") -d, --destination string location to write the chart. If this and tardir are specified, tardir is appended to this (default ".")
--key-file string identify HTTPS client using this SSL key file
--keyring string keyring containing public keys (default "~/.gnupg/pubring.gpg") --keyring string keyring containing public keys (default "~/.gnupg/pubring.gpg")
--prov fetch the provenance file, but don't perform verification --prov fetch the provenance file, but don't perform verification
--repo string chart repository url where to locate the requested chart
--untar if set to true, will untar the chart after downloading it --untar if set to true, will untar the chart after downloading it
--untardir string if untar is specified, this flag specifies the name of the directory into which the chart is expanded (default ".") --untardir string if untar is specified, this flag specifies the name of the directory into which the chart is expanded (default ".")
--verify verify the package against its signature --verify verify the package against its signature
@ -49,4 +53,4 @@ helm fetch [flags] [chart URL | repo/chartname] [...]
### SEE ALSO ### SEE ALSO
* [helm](helm.md) - The Helm package manager for Kubernetes. * [helm](helm.md) - The Helm package manager for Kubernetes.
###### Auto generated by spf13/cobra on 16-Apr-2017 ###### Auto generated by spf13/cobra on 24-Apr-2017

@ -19,9 +19,13 @@ helm inspect [CHART]
### Options ### Options
``` ```
--keyring string path to the keyring containing public verification keys (default "~/.gnupg/pubring.gpg") --ca-file string chart repository url where to locate the requested chart
--verify verify the provenance data for this chart --cert-file string verify certificates of HTTPS-enabled servers using this CA bundle
--version string version of the chart. By default, the newest chart is shown --key-file string identify HTTPS client using this SSL key file
--keyring string path to the keyring containing public verification keys (default "~/.gnupg/pubring.gpg")
--repo string chart repository url where to locate the requested chart
--verify verify the provenance data for this chart
--version string version of the chart. By default, the newest chart is shown
``` ```
### Options inherited from parent commands ### Options inherited from parent commands
@ -39,4 +43,4 @@ helm inspect [CHART]
* [helm inspect chart](helm_inspect_chart.md) - shows inspect chart * [helm inspect chart](helm_inspect_chart.md) - shows inspect chart
* [helm inspect values](helm_inspect_values.md) - shows inspect values * [helm inspect values](helm_inspect_values.md) - shows inspect values
###### Auto generated by spf13/cobra on 16-Apr-2017 ###### Auto generated by spf13/cobra on 24-Apr-2017

@ -17,9 +17,13 @@ helm inspect chart [CHART]
### Options ### Options
``` ```
--keyring string path to the keyring containing public verification keys (default "~/.gnupg/pubring.gpg") --ca-file string chart repository url where to locate the requested chart
--verify verify the provenance data for this chart --cert-file string verify certificates of HTTPS-enabled servers using this CA bundle
--version string version of the chart. By default, the newest chart is shown --key-file string identify HTTPS client using this SSL key file
--keyring string path to the keyring containing public verification keys (default "~/.gnupg/pubring.gpg")
--repo string chart repository url where to locate the requested chart
--verify verify the provenance data for this chart
--version string version of the chart. By default, the newest chart is shown
``` ```
### Options inherited from parent commands ### Options inherited from parent commands
@ -35,4 +39,4 @@ helm inspect chart [CHART]
### SEE ALSO ### SEE ALSO
* [helm inspect](helm_inspect.md) - inspect a chart * [helm inspect](helm_inspect.md) - inspect a chart
###### Auto generated by spf13/cobra on 16-Apr-2017 ###### Auto generated by spf13/cobra on 24-Apr-2017

@ -17,9 +17,13 @@ helm inspect values [CHART]
### Options ### Options
``` ```
--keyring string path to the keyring containing public verification keys (default "~/.gnupg/pubring.gpg") --ca-file string chart repository url where to locate the requested chart
--verify verify the provenance data for this chart --cert-file string verify certificates of HTTPS-enabled servers using this CA bundle
--version string version of the chart. By default, the newest chart is shown --key-file string identify HTTPS client using this SSL key file
--keyring string path to the keyring containing public verification keys (default "~/.gnupg/pubring.gpg")
--repo string chart repository url where to locate the requested chart
--verify verify the provenance data for this chart
--version string version of the chart. By default, the newest chart is shown
``` ```
### Options inherited from parent commands ### Options inherited from parent commands
@ -35,4 +39,4 @@ helm inspect values [CHART]
### SEE ALSO ### SEE ALSO
* [helm inspect](helm_inspect.md) - inspect a chart * [helm inspect](helm_inspect.md) - inspect a chart
###### Auto generated by spf13/cobra on 16-Apr-2017 ###### Auto generated by spf13/cobra on 24-Apr-2017

@ -68,13 +68,17 @@ helm install [CHART]
### Options ### Options
``` ```
--ca-file string verify certificates of HTTPS-enabled servers using this CA bundle
--cert-file string identify HTTPS client using this SSL certificate file
--dry-run simulate an install --dry-run simulate an install
--key-file string identify HTTPS client using this SSL key file
--keyring string location of public keys used for verification (default "~/.gnupg/pubring.gpg") --keyring string location of public keys used for verification (default "~/.gnupg/pubring.gpg")
-n, --name string release name. If unspecified, it will autogenerate one for you -n, --name string release name. If unspecified, it will autogenerate one for you
--name-template string specify template used to name the release --name-template string specify template used to name the release
--namespace string namespace to install the release into --namespace string namespace to install the release into
--no-hooks prevent hooks from running during install --no-hooks prevent hooks from running during install
--replace re-use the given name, even if that name is already used. This is unsafe in production --replace re-use the given name, even if that name is already used. This is unsafe in production
--repo string chart repository url where to locate the requested chart
--set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2) --set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--timeout int time in seconds to wait for any individual kubernetes operation (like Jobs for hooks) (default 300) --timeout int time in seconds to wait for any individual kubernetes operation (like Jobs for hooks) (default 300)
--tls enable TLS for request --tls enable TLS for request
@ -101,4 +105,4 @@ helm install [CHART]
### SEE ALSO ### SEE ALSO
* [helm](helm.md) - The Helm package manager for Kubernetes. * [helm](helm.md) - The Helm package manager for Kubernetes.
###### Auto generated by spf13/cobra on 16-Apr-2017 ###### Auto generated by spf13/cobra on 24-Apr-2017

@ -36,12 +36,16 @@ helm upgrade [RELEASE] [CHART]
### Options ### Options
``` ```
--ca-file string verify certificates of HTTPS-enabled servers using this CA bundle
--cert-file string identify HTTPS client using this SSL certificate file
--dry-run simulate an upgrade --dry-run simulate an upgrade
-i, --install if a release by this name doesn't already exist, run an install -i, --install if a release by this name doesn't already exist, run an install
--key-file string identify HTTPS client using this SSL key file
--keyring string path to the keyring that contains public signing keys (default "~/.gnupg/pubring.gpg") --keyring string path to the keyring that contains public signing keys (default "~/.gnupg/pubring.gpg")
--namespace string namespace to install the release into (only used if --install is set) (default "default") --namespace string namespace to install the release into (only used if --install is set) (default "default")
--no-hooks disable pre/post upgrade hooks --no-hooks disable pre/post upgrade hooks
--recreate-pods performs pods restart for the resource if applicable --recreate-pods performs pods restart for the resource if applicable
--repo string chart repository url where to locate the requested chart
--reset-values when upgrading, reset the values to the ones built into the chart --reset-values when upgrading, reset the values to the ones built into the chart
--reuse-values when upgrading, reuse the last release's values, and merge in any new values. If '--reset-values' is specified, this is ignored. --reuse-values when upgrading, reuse the last release's values, and merge in any new values. If '--reset-values' is specified, this is ignored.
--set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2) --set stringArray set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
@ -70,4 +74,4 @@ helm upgrade [RELEASE] [CHART]
### SEE ALSO ### SEE ALSO
* [helm](helm.md) - The Helm package manager for Kubernetes. * [helm](helm.md) - The Helm package manager for Kubernetes.
###### Auto generated by spf13/cobra on 16-Apr-2017 ###### Auto generated by spf13/cobra on 24-Apr-2017

@ -33,10 +33,22 @@ result in an error, and the chart will not be saved locally.
.SH OPTIONS .SH OPTIONS
.PP
\fB\-\-ca\-file\fP=""
verify certificates of HTTPS\-enabled servers using this CA bundle
.PP
\fB\-\-cert\-file\fP=""
identify HTTPS client using this SSL certificate file
.PP .PP
\fB\-d\fP, \fB\-\-destination\fP="." \fB\-d\fP, \fB\-\-destination\fP="."
location to write the chart. If this and tardir are specified, tardir is appended to this location to write the chart. If this and tardir are specified, tardir is appended to this
.PP
\fB\-\-key\-file\fP=""
identify HTTPS client using this SSL key file
.PP .PP
\fB\-\-keyring\fP="~/.gnupg/pubring.gpg" \fB\-\-keyring\fP="~/.gnupg/pubring.gpg"
keyring containing public keys keyring containing public keys
@ -45,6 +57,10 @@ result in an error, and the chart will not be saved locally.
\fB\-\-prov\fP[=false] \fB\-\-prov\fP[=false]
fetch the provenance file, but don't perform verification fetch the provenance file, but don't perform verification
.PP
\fB\-\-repo\fP=""
chart repository url where to locate the requested chart
.PP .PP
\fB\-\-untar\fP[=false] \fB\-\-untar\fP[=false]
if set to true, will untar the chart after downloading it if set to true, will untar the chart after downloading it
@ -91,4 +107,4 @@ result in an error, and the chart will not be saved locally.
.SH HISTORY .SH HISTORY
.PP .PP
16\-Apr\-2017 Auto generated by spf13/cobra 24\-Apr\-2017 Auto generated by spf13/cobra

@ -23,10 +23,26 @@ Inspect prints the contents of the Chart.yaml file and the values.yaml file.
.SH OPTIONS .SH OPTIONS
.PP
\fB\-\-ca\-file\fP=""
chart repository url where to locate the requested chart
.PP
\fB\-\-cert\-file\fP=""
verify certificates of HTTPS\-enabled servers using this CA bundle
.PP
\fB\-\-key\-file\fP=""
identify HTTPS client using this SSL key file
.PP .PP
\fB\-\-keyring\fP="~/.gnupg/pubring.gpg" \fB\-\-keyring\fP="~/.gnupg/pubring.gpg"
path to the keyring containing public verification keys path to the keyring containing public verification keys
.PP
\fB\-\-repo\fP=""
chart repository url where to locate the requested chart
.PP .PP
\fB\-\-verify\fP[=false] \fB\-\-verify\fP[=false]
verify the provenance data for this chart verify the provenance data for this chart
@ -65,4 +81,4 @@ Inspect prints the contents of the Chart.yaml file and the values.yaml file.
.SH HISTORY .SH HISTORY
.PP .PP
16\-Apr\-2017 Auto generated by spf13/cobra 24\-Apr\-2017 Auto generated by spf13/cobra

@ -20,10 +20,26 @@ of the Charts.yaml file
.SH OPTIONS .SH OPTIONS
.PP
\fB\-\-ca\-file\fP=""
chart repository url where to locate the requested chart
.PP
\fB\-\-cert\-file\fP=""
verify certificates of HTTPS\-enabled servers using this CA bundle
.PP
\fB\-\-key\-file\fP=""
identify HTTPS client using this SSL key file
.PP .PP
\fB\-\-keyring\fP="~/.gnupg/pubring.gpg" \fB\-\-keyring\fP="~/.gnupg/pubring.gpg"
path to the keyring containing public verification keys path to the keyring containing public verification keys
.PP
\fB\-\-repo\fP=""
chart repository url where to locate the requested chart
.PP .PP
\fB\-\-verify\fP[=false] \fB\-\-verify\fP[=false]
verify the provenance data for this chart verify the provenance data for this chart
@ -62,4 +78,4 @@ of the Charts.yaml file
.SH HISTORY .SH HISTORY
.PP .PP
16\-Apr\-2017 Auto generated by spf13/cobra 24\-Apr\-2017 Auto generated by spf13/cobra

@ -20,10 +20,26 @@ of the values.yaml file
.SH OPTIONS .SH OPTIONS
.PP
\fB\-\-ca\-file\fP=""
chart repository url where to locate the requested chart
.PP
\fB\-\-cert\-file\fP=""
verify certificates of HTTPS\-enabled servers using this CA bundle
.PP
\fB\-\-key\-file\fP=""
identify HTTPS client using this SSL key file
.PP .PP
\fB\-\-keyring\fP="~/.gnupg/pubring.gpg" \fB\-\-keyring\fP="~/.gnupg/pubring.gpg"
path to the keyring containing public verification keys path to the keyring containing public verification keys
.PP
\fB\-\-repo\fP=""
chart repository url where to locate the requested chart
.PP .PP
\fB\-\-verify\fP[=false] \fB\-\-verify\fP[=false]
verify the provenance data for this chart verify the provenance data for this chart
@ -62,4 +78,4 @@ of the values.yaml file
.SH HISTORY .SH HISTORY
.PP .PP
16\-Apr\-2017 Auto generated by spf13/cobra 24\-Apr\-2017 Auto generated by spf13/cobra

@ -114,10 +114,22 @@ charts in a repository, use 'helm search'.
.SH OPTIONS .SH OPTIONS
.PP
\fB\-\-ca\-file\fP=""
verify certificates of HTTPS\-enabled servers using this CA bundle
.PP
\fB\-\-cert\-file\fP=""
identify HTTPS client using this SSL certificate file
.PP .PP
\fB\-\-dry\-run\fP[=false] \fB\-\-dry\-run\fP[=false]
simulate an install simulate an install
.PP
\fB\-\-key\-file\fP=""
identify HTTPS client using this SSL key file
.PP .PP
\fB\-\-keyring\fP="~/.gnupg/pubring.gpg" \fB\-\-keyring\fP="~/.gnupg/pubring.gpg"
location of public keys used for verification location of public keys used for verification
@ -142,6 +154,10 @@ charts in a repository, use 'helm search'.
\fB\-\-replace\fP[=false] \fB\-\-replace\fP[=false]
re\-use the given name, even if that name is already used. This is unsafe in production re\-use the given name, even if that name is already used. This is unsafe in production
.PP
\fB\-\-repo\fP=""
chart repository url where to locate the requested chart
.PP .PP
\fB\-\-set\fP=[] \fB\-\-set\fP=[]
set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2) set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
@ -216,4 +232,4 @@ charts in a repository, use 'helm search'.
.SH HISTORY .SH HISTORY
.PP .PP
16\-Apr\-2017 Auto generated by spf13/cobra 24\-Apr\-2017 Auto generated by spf13/cobra

@ -57,6 +57,14 @@ $ helm upgrade \-\-set foo=bar \-\-set foo=newbar redis ./redis
.SH OPTIONS .SH OPTIONS
.PP
\fB\-\-ca\-file\fP=""
verify certificates of HTTPS\-enabled servers using this CA bundle
.PP
\fB\-\-cert\-file\fP=""
identify HTTPS client using this SSL certificate file
.PP .PP
\fB\-\-dry\-run\fP[=false] \fB\-\-dry\-run\fP[=false]
simulate an upgrade simulate an upgrade
@ -65,6 +73,10 @@ $ helm upgrade \-\-set foo=bar \-\-set foo=newbar redis ./redis
\fB\-i\fP, \fB\-\-install\fP[=false] \fB\-i\fP, \fB\-\-install\fP[=false]
if a release by this name doesn't already exist, run an install if a release by this name doesn't already exist, run an install
.PP
\fB\-\-key\-file\fP=""
identify HTTPS client using this SSL key file
.PP .PP
\fB\-\-keyring\fP="~/.gnupg/pubring.gpg" \fB\-\-keyring\fP="~/.gnupg/pubring.gpg"
path to the keyring that contains public signing keys path to the keyring that contains public signing keys
@ -81,6 +93,10 @@ $ helm upgrade \-\-set foo=bar \-\-set foo=newbar redis ./redis
\fB\-\-recreate\-pods\fP[=false] \fB\-\-recreate\-pods\fP[=false]
performs pods restart for the resource if applicable performs pods restart for the resource if applicable
.PP
\fB\-\-repo\fP=""
chart repository url where to locate the requested chart
.PP .PP
\fB\-\-reset\-values\fP[=false] \fB\-\-reset\-values\fP[=false]
when upgrading, reset the values to the ones built into the chart when upgrading, reset the values to the ones built into the chart
@ -163,4 +179,4 @@ $ helm upgrade \-\-set foo=bar \-\-set foo=newbar redis ./redis
.SH HISTORY .SH HISTORY
.PP .PP
16\-Apr\-2017 Auto generated by spf13/cobra 24\-Apr\-2017 Auto generated by spf13/cobra

@ -177,3 +177,52 @@ func (r *ChartRepository) generateIndex() error {
r.IndexFile.SortEntries() r.IndexFile.SortEntries()
return nil return nil
} }
// FindChartInRepoURL finds chart in chart repository pointed by repoURL
// without adding repo to repostiories
func FindChartInRepoURL(repoURL, chartName, chartVersion, certFile, keyFile, caFile string, getters getter.Providers) (string, error) {
// Download and write the index file to a temporary location
tempIndexFile, err := ioutil.TempFile("", "tmp-repo-file")
if err != nil {
return "", fmt.Errorf("cannot write index file for repository requested")
}
defer func() {
os.Remove(tempIndexFile.Name())
}()
c := Entry{
URL: repoURL,
CertFile: certFile,
KeyFile: keyFile,
CAFile: caFile,
}
r, err := NewChartRepository(&c, getters)
if err != nil {
return "", err
}
if err := r.DownloadIndexFile(tempIndexFile.Name()); err != nil {
return "", fmt.Errorf("Looks like %q is not a valid chart repository or cannot be reached: %s", repoURL, err)
}
// Read the index file for the repository to get chart information and return chart URL
repoIndex, err := LoadIndexFile(tempIndexFile.Name())
if err != nil {
return "", err
}
errMsg := fmt.Sprintf("chart %q", chartName)
if chartVersion != "" {
errMsg = fmt.Sprintf("%s version %q", errMsg, chartVersion)
}
cv, err := repoIndex.Get(chartName, chartVersion)
if err != nil {
return "", fmt.Errorf("%s not found in %s repository", errMsg, repoURL)
}
if len(cv.URLs) == 0 {
return "", fmt.Errorf("%s has no downloadable URLs", errMsg)
}
return cv.URLs[0], nil
}

@ -424,13 +424,21 @@ _helm_fetch()
flags_with_completion=() flags_with_completion=()
flags_completion=() flags_completion=()
flags+=("--ca-file=")
local_nonpersistent_flags+=("--ca-file=")
flags+=("--cert-file=")
local_nonpersistent_flags+=("--cert-file=")
flags+=("--destination=") flags+=("--destination=")
two_word_flags+=("-d") two_word_flags+=("-d")
local_nonpersistent_flags+=("--destination=") local_nonpersistent_flags+=("--destination=")
flags+=("--key-file=")
local_nonpersistent_flags+=("--key-file=")
flags+=("--keyring=") flags+=("--keyring=")
local_nonpersistent_flags+=("--keyring=") local_nonpersistent_flags+=("--keyring=")
flags+=("--prov") flags+=("--prov")
local_nonpersistent_flags+=("--prov") local_nonpersistent_flags+=("--prov")
flags+=("--repo=")
local_nonpersistent_flags+=("--repo=")
flags+=("--untar") flags+=("--untar")
local_nonpersistent_flags+=("--untar") local_nonpersistent_flags+=("--untar")
flags+=("--untardir=") flags+=("--untardir=")
@ -683,8 +691,16 @@ _helm_inspect_chart()
flags_with_completion=() flags_with_completion=()
flags_completion=() flags_completion=()
flags+=("--ca-file=")
local_nonpersistent_flags+=("--ca-file=")
flags+=("--cert-file=")
local_nonpersistent_flags+=("--cert-file=")
flags+=("--key-file=")
local_nonpersistent_flags+=("--key-file=")
flags+=("--keyring=") flags+=("--keyring=")
local_nonpersistent_flags+=("--keyring=") local_nonpersistent_flags+=("--keyring=")
flags+=("--repo=")
local_nonpersistent_flags+=("--repo=")
flags+=("--verify") flags+=("--verify")
local_nonpersistent_flags+=("--verify") local_nonpersistent_flags+=("--verify")
flags+=("--version=") flags+=("--version=")
@ -711,8 +727,16 @@ _helm_inspect_values()
flags_with_completion=() flags_with_completion=()
flags_completion=() flags_completion=()
flags+=("--ca-file=")
local_nonpersistent_flags+=("--ca-file=")
flags+=("--cert-file=")
local_nonpersistent_flags+=("--cert-file=")
flags+=("--key-file=")
local_nonpersistent_flags+=("--key-file=")
flags+=("--keyring=") flags+=("--keyring=")
local_nonpersistent_flags+=("--keyring=") local_nonpersistent_flags+=("--keyring=")
flags+=("--repo=")
local_nonpersistent_flags+=("--repo=")
flags+=("--verify") flags+=("--verify")
local_nonpersistent_flags+=("--verify") local_nonpersistent_flags+=("--verify")
flags+=("--version=") flags+=("--version=")
@ -741,8 +765,16 @@ _helm_inspect()
flags_with_completion=() flags_with_completion=()
flags_completion=() flags_completion=()
flags+=("--ca-file=")
local_nonpersistent_flags+=("--ca-file=")
flags+=("--cert-file=")
local_nonpersistent_flags+=("--cert-file=")
flags+=("--key-file=")
local_nonpersistent_flags+=("--key-file=")
flags+=("--keyring=") flags+=("--keyring=")
local_nonpersistent_flags+=("--keyring=") local_nonpersistent_flags+=("--keyring=")
flags+=("--repo=")
local_nonpersistent_flags+=("--repo=")
flags+=("--verify") flags+=("--verify")
local_nonpersistent_flags+=("--verify") local_nonpersistent_flags+=("--verify")
flags+=("--version=") flags+=("--version=")
@ -769,8 +801,14 @@ _helm_install()
flags_with_completion=() flags_with_completion=()
flags_completion=() flags_completion=()
flags+=("--ca-file=")
local_nonpersistent_flags+=("--ca-file=")
flags+=("--cert-file=")
local_nonpersistent_flags+=("--cert-file=")
flags+=("--dry-run") flags+=("--dry-run")
local_nonpersistent_flags+=("--dry-run") local_nonpersistent_flags+=("--dry-run")
flags+=("--key-file=")
local_nonpersistent_flags+=("--key-file=")
flags+=("--keyring=") flags+=("--keyring=")
local_nonpersistent_flags+=("--keyring=") local_nonpersistent_flags+=("--keyring=")
flags+=("--name=") flags+=("--name=")
@ -784,6 +822,8 @@ _helm_install()
local_nonpersistent_flags+=("--no-hooks") local_nonpersistent_flags+=("--no-hooks")
flags+=("--replace") flags+=("--replace")
local_nonpersistent_flags+=("--replace") local_nonpersistent_flags+=("--replace")
flags+=("--repo=")
local_nonpersistent_flags+=("--repo=")
flags+=("--set=") flags+=("--set=")
local_nonpersistent_flags+=("--set=") local_nonpersistent_flags+=("--set=")
flags+=("--timeout=") flags+=("--timeout=")
@ -1396,6 +1436,10 @@ _helm_upgrade()
flags_with_completion=() flags_with_completion=()
flags_completion=() flags_completion=()
flags+=("--ca-file=")
local_nonpersistent_flags+=("--ca-file=")
flags+=("--cert-file=")
local_nonpersistent_flags+=("--cert-file=")
flags+=("--disable-hooks") flags+=("--disable-hooks")
local_nonpersistent_flags+=("--disable-hooks") local_nonpersistent_flags+=("--disable-hooks")
flags+=("--dry-run") flags+=("--dry-run")
@ -1403,6 +1447,8 @@ _helm_upgrade()
flags+=("--install") flags+=("--install")
flags+=("-i") flags+=("-i")
local_nonpersistent_flags+=("--install") local_nonpersistent_flags+=("--install")
flags+=("--key-file=")
local_nonpersistent_flags+=("--key-file=")
flags+=("--keyring=") flags+=("--keyring=")
local_nonpersistent_flags+=("--keyring=") local_nonpersistent_flags+=("--keyring=")
flags+=("--namespace=") flags+=("--namespace=")
@ -1411,6 +1457,8 @@ _helm_upgrade()
local_nonpersistent_flags+=("--no-hooks") local_nonpersistent_flags+=("--no-hooks")
flags+=("--recreate-pods") flags+=("--recreate-pods")
local_nonpersistent_flags+=("--recreate-pods") local_nonpersistent_flags+=("--recreate-pods")
flags+=("--repo=")
local_nonpersistent_flags+=("--repo=")
flags+=("--reset-values") flags+=("--reset-values")
local_nonpersistent_flags+=("--reset-values") local_nonpersistent_flags+=("--reset-values")
flags+=("--reuse-values") flags+=("--reuse-values")

Loading…
Cancel
Save