Remove unnecessary details from sync errors (#1951)

This commit is contained in:
Alexander Matyushentsev 2019-07-18 17:28:28 -07:00 committed by GitHub
parent 8f3a6047b2
commit cd3ff90e0d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 4 deletions

4
Gopkg.lock generated
View file

@ -62,7 +62,7 @@
[[projects]]
branch = "master"
digest = "1:fb48d4018740c1be15980ba42d2db10af1b5aa42251e7c0f97d4c32ecb24e4f9"
digest = "1:4f6afcf4ebe041b3d4aa7926d09344b48d2f588e1f957526bbbe54f9cbb366a1"
name = "github.com/argoproj/pkg"
packages = [
"errors",
@ -71,7 +71,7 @@
"time",
]
pruneopts = ""
revision = "fb13aebbef1cc580a9f5bafa65bdad07fc89d803"
revision = "38dba6e98495680ff1f8225642b63db10a96bb06"
[[projects]]
digest = "1:d8a2bb36a048d1571bcc1aee208b61f39dc16c6c53823feffd37449dde162507"

View file

@ -239,6 +239,18 @@ func (k KubectlCmd) ApplyResource(config *rest.Config, obj *unstructured.Unstruc
return strings.Join(out, ". "), nil
}
func convertKubectlError(err error) error {
errorStr := err.Error()
if cmdErr, ok := err.(*argoexec.CmdError); ok {
parts := []string{fmt.Sprintf("kubectl failed %s", cmdErr.Cause.Error())}
if cmdErr.Stderr != "" {
parts = append(parts, cleanKubectlOutput(cmdErr.Stderr))
}
errorStr = strings.Join(parts, ": ")
}
return fmt.Errorf(errorStr)
}
func runKubectl(kubeconfigPath string, namespace string, args []string, manifestBytes []byte, dryRun bool) (string, error) {
cmdArgs := append([]string{"--kubeconfig", kubeconfigPath, "-f", "-"}, args...)
if namespace != "" {
@ -267,7 +279,7 @@ func runKubectl(kubeconfigPath string, namespace string, args []string, manifest
cmd.Stdin = bytes.NewReader(manifestBytes)
out, err := argoexec.RunCommandExt(cmd, config.CmdOpts())
if err != nil {
return "", fmt.Errorf(cleanKubectlOutput(err.Error()))
return "", convertKubectlError(err)
}
return out, nil
}
@ -297,7 +309,7 @@ func (k KubectlCmd) ConvertToVersion(obj *unstructured.Unstructured, group strin
cmd.Stdin = bytes.NewReader(manifestBytes)
out, err := argoexec.RunCommandExt(cmd, config.CmdOpts())
if err != nil {
return nil, fmt.Errorf(cleanKubectlOutput(err.Error()))
return nil, convertKubectlError(err)
}
// NOTE: when kubectl convert runs against stdin (i.e. kubectl convert -f -), the output is
// a unstructured list instead of an unstructured object