diff --git a/api/internal/target/kusttarget.go b/api/internal/target/kusttarget.go index ba3f700fb..140c97a9f 100644 --- a/api/internal/target/kusttarget.go +++ b/api/internal/target/kusttarget.go @@ -19,6 +19,7 @@ import ( "sigs.k8s.io/kustomize/api/internal/plugins/loader" "sigs.k8s.io/kustomize/api/internal/utils" "sigs.k8s.io/kustomize/api/konfig" + load "sigs.k8s.io/kustomize/api/loader" "sigs.k8s.io/kustomize/api/resmap" "sigs.k8s.io/kustomize/api/resource" "sigs.k8s.io/kustomize/api/types" @@ -366,7 +367,8 @@ func (kt *KustTarget) accumulateResources( for _, path := range paths { // try loading resource as file then as base (directory or git repository) if errF := kt.accumulateFile(ra, path, origin); errF != nil { - if strings.HasPrefix(path, "https://") || strings.HasPrefix(path, "http://") { + // not much we can do if the error is an HTTP error so we bail out + if errors.Is(errF, load.ErrorHTTP) { return nil, errF } ldr, err := kt.ldr.New(path) diff --git a/api/loader/errors.go b/api/loader/errors.go new file mode 100644 index 000000000..5281a1cd7 --- /dev/null +++ b/api/loader/errors.go @@ -0,0 +1,5 @@ +package loader + +import "fmt" + +var ErrorHTTP = fmt.Errorf("HTTP Error") diff --git a/api/loader/fileloader.go b/api/loader/fileloader.go index c2e7bb9e2..4426097cf 100644 --- a/api/loader/fileloader.go +++ b/api/loader/fileloader.go @@ -314,7 +314,7 @@ func (fl *fileLoader) Load(path string) ([]byte, error) { } defer resp.Body.Close() if resp.StatusCode < 200 || resp.StatusCode > 299 { - return nil, fmt.Errorf("URL returned error %d (%s)", resp.StatusCode, http.StatusText(resp.StatusCode)) + return nil, fmt.Errorf("%w: status code %d (%s)", ErrorHTTP, resp.StatusCode, http.StatusText(resp.StatusCode)) } body, err := ioutil.ReadAll(resp.Body) if err != nil {