Support various target and resource with go-getter

This commit is contained in:
Kubernetes Prow Robot
2020-03-06 15:45:34 -08:00
committed by Yujun Zhang
parent 3a2635bd2d
commit 51b29d7023
9 changed files with 228 additions and 45 deletions

View File

@@ -5,6 +5,8 @@
package loader
import (
"fmt"
"sigs.k8s.io/kustomize/api/filesys"
"sigs.k8s.io/kustomize/api/ifc"
"sigs.k8s.io/kustomize/api/internal/git"
@@ -19,16 +21,23 @@ import (
func NewLoader(
lr LoadRestrictorFunc,
target string, fSys filesys.FileSystem) (ifc.Loader, error) {
repoSpec, err := git.NewRepoSpecFromUrl(target)
if err == nil {
ldr, errGet := newResourceGetter(target, fSys, nil, git.ClonerUsingGitExec, getResource)
if errGet == nil {
return ldr, nil
}
repoSpec, errGit := git.NewRepoSpecFromUrl(target)
if errGit == nil {
// The target qualifies as a remote git target.
return newLoaderAtGitClone(
repoSpec, fSys, nil, git.ClonerUsingGitExec)
repoSpec, fSys, nil, git.ClonerUsingGitExec, getResource)
}
root, err := demandDirectoryRoot(fSys, target)
if err != nil {
return nil, err
root, errDir := demandDirectoryRoot(fSys, target)
if errDir == nil {
return newLoaderAtConfirmedDir(lr, root, fSys, nil, git.ClonerUsingGitExec, getResource), nil
}
return newLoaderAtConfirmedDir(
lr, root, fSys, nil, git.ClonerUsingGitExec), nil
return nil, fmt.Errorf("Error creating new loader with git: %v, dir: %v, get: %v", errGit, errDir, errGet)
}