stale-issue-message:'This issue has been marked as stale because it has been open for 90 days with no activity. This thread will be automatically closed in 30 days if no further activity occurs.'
stale-issue-message:'This issue has been marked as stale because it has been open for 90 days with no activity. This thread will be automatically closed in 30 days if no further activity occurs.'
@ -47,6 +47,7 @@ func addValueOptionsFlags(f *pflag.FlagSet, v *values.Options) {
f.StringArrayVar(&v.Values,"set",[]string{},"set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&v.Values,"set",[]string{},"set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&v.StringValues,"set-string",[]string{},"set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&v.StringValues,"set-string",[]string{},"set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
f.StringArrayVar(&v.FileValues,"set-file",[]string{},"set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)")
f.StringArrayVar(&v.FileValues,"set-file",[]string{},"set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)")
f.StringArrayVar(&v.JSONValues,"set-json",[]string{},"set JSON values on the command line (can specify multiple or separate values with commas: key1=jsonval1,key2=jsonval2)")
f.BoolVar(&client.CreateNamespace,"create-namespace",false,"create the release namespace if not present")
f.BoolVar(&client.CreateNamespace,"create-namespace",false,"create the release namespace if not present")
f.BoolVar(&client.DryRun,"dry-run",false,"simulate an install")
f.BoolVar(&client.DryRun,"dry-run",false,"simulate an install")
f.BoolVar(&client.Force,"force",false,"force resource updates through a replacement strategy")
f.BoolVar(&client.DisableHooks,"no-hooks",false,"prevent hooks from running during install")
f.BoolVar(&client.DisableHooks,"no-hooks",false,"prevent hooks from running during install")
f.BoolVar(&client.Replace,"replace",false,"re-use the given name, only if that name is a deleted release which remains in the history. This is unsafe in production")
f.BoolVar(&client.Replace,"replace",false,"re-use the given name, only if that name is a deleted release which remains in the history. This is unsafe in production")
f.DurationVar(&client.Timeout,"timeout",300*time.Second,"time to wait for any individual Kubernetes operation (like Jobs for hooks)")
f.DurationVar(&client.Timeout,"timeout",300*time.Second,"time to wait for any individual Kubernetes operation (like Jobs for hooks)")
expectedErr:"failed to download \"test/pre-release-chart\"",
expectedErr:"chart \"pre-release-chart\" matching not found in test index. (try 'helm repo update'): no chart version found for pre-release-chart-",
},
},
{
{
name:"show pre-release chart",
name:"show pre-release chart",
args:"test/pre-release-chart",
args:"test/pre-release-chart",
fail:true,
fail:true,
flags:"--version 1.0.0",
flags:"--version 1.0.0",
expectedErr:"failed to download \"test/pre-release-chart\" at version \"1.0.0\"",
expectedErr:"chart \"pre-release-chart\" matching 1.0.0 not found in test index. (try 'helm repo update'): no chart version found for pre-release-chart-1.0.0",
f.StringToStringVarP(&client.Labels,"labels","l",nil,"Labels that would be added to release metadata. Should be separated by comma. Original release labels will be merged with upgrade labels. You can unset label using null.")
f.StringToStringVarP(&client.Labels,"labels","l",nil,"Labels that would be added to release metadata. Should be separated by comma. Original release labels will be merged with upgrade labels. You can unset label using null.")
f.StringVar(&client.Description,"description","","add a custom description")
f.StringVar(&client.Description,"description","","add a custom description")
f.BoolVar(&client.DependencyUpdate,"dependency-update",false,"update dependencies if they are missing before installing the chart")
f.BoolVar(&client.DependencyUpdate,"dependency-update",false,"update dependencies if they are missing before installing the chart")
f.BoolVar(&client.EnableDNS,"enable-dns",false,"enable DNS lookups when rendering templates")
@ -122,6 +139,8 @@ func (s *EnvSettings) AddFlags(fs *pflag.FlagSet) {
fs.StringArrayVar(&s.KubeAsGroups,"kube-as-group",s.KubeAsGroups,"group to impersonate for the operation, this flag can be repeated to specify multiple groups.")
fs.StringArrayVar(&s.KubeAsGroups,"kube-as-group",s.KubeAsGroups,"group to impersonate for the operation, this flag can be repeated to specify multiple groups.")
fs.StringVar(&s.KubeAPIServer,"kube-apiserver",s.KubeAPIServer,"the address and the port for the Kubernetes API server")
fs.StringVar(&s.KubeAPIServer,"kube-apiserver",s.KubeAPIServer,"the address and the port for the Kubernetes API server")
fs.StringVar(&s.KubeCaFile,"kube-ca-file",s.KubeCaFile,"the certificate authority file for the Kubernetes API server connection")
fs.StringVar(&s.KubeCaFile,"kube-ca-file",s.KubeCaFile,"the certificate authority file for the Kubernetes API server connection")
fs.StringVar(&s.KubeTLSServerName,"kube-tls-server-name",s.KubeTLSServerName,"server name to use for Kubernetes API server certificate validation. If it is not provided, the hostname used to contact the server is used")
fs.BoolVar(&s.KubeInsecureSkipTLSVerify,"kube-insecure-skip-tls-verify",s.KubeInsecureSkipTLSVerify,"if true, the Kubernetes API server's certificate will not be checked for validity. This will make your HTTPS connections insecure")
c.log("DaemonSet is not ready: %s/%s. %d out of %d expected pods have been scheduled",ds.Namespace,ds.Name,ds.Status.UpdatedNumberScheduled,ds.Status.DesiredNumberScheduled)
c.log("DaemonSet is not ready: %s/%s. %d out of %d expected pods have been scheduled",ds.Namespace,ds.Name,ds.Status.UpdatedNumberScheduled,ds.Status.DesiredNumberScheduled)
c.log("StatefulSet is not ready: %s/%s. currentRevision %s does not yet match updateRevision %s",sts.Namespace,sts.Name,sts.Status.CurrentRevision,sts.Status.UpdateRevision)
returnfalse
}
c.log("StatefulSet is ready: %s/%s. %d out of %d expected pods are ready",sts.Namespace,sts.Name,sts.Status.ReadyReplicas,replicas)
// Go communicates with the platform and different platforms return different messages. Go itself tests darwin
if!strings.Contains(err.Error(),"x509: certificate signed by unknown authority"){
// differently for its message. On newer versions of Darwin the message includes the "Acme Co" portion while older
// versions of Darwin do not. As there are people developing Helm using both old and new versions of Darwin we test
// for both messages.
ifruntime.GOOS=="darwin"{
if!strings.Contains(err.Error(),"x509: “Acme Co” certificate is not trusted")&&!strings.Contains(err.Error(),"x509: certificate signed by unknown authority"){
t.Errorf("Expected TLS error for function FindChartInAuthAndTLSAndPassRepoURL not found, but got a different error (%v)",err)
}
}elseif!strings.Contains(err.Error(),"x509: certificate signed by unknown authority"){
t.Errorf("Expected TLS error for function FindChartInAuthAndTLSAndPassRepoURL not found, but got a different error (%v)",err)
t.Errorf("Expected TLS error for function FindChartInAuthAndTLSAndPassRepoURL not found, but got a different error (%v)",err)
{// set json objects and arrays, and replace one existing key
input:"outer.inner1={\"a\":\"1\",\"b\":2,\"c\":[1,2,3]},outer.inner3=[\"new value 1\",\"new value 2\"],outer.inner4={\"aa\":\"1\",\"bb\":2,\"cc\":[1,2,3]},outer.inner5=[{\"A\":\"1\",\"B\":2,\"C\":[1,2,3]}]",
input:"outer.inner1={\"a\":\"1\",\"b\":2,\"c\":[1,2,3]},outer.inner3=[\"new value 1\",\"new value 2\"],outer.inner4={\"aa\":\"1\",\"bb\":2,\"cc\":[1,2,3]},outer.inner5={\"A\":\"1\",\"B\":2,\"C\":[1,2,3]}]",