diff --git a/api/internal/git/cloner.go b/api/internal/git/cloner.go index d15fa75903..2098cdd31e 100644 --- a/api/internal/git/cloner.go +++ b/api/internal/git/cloner.go @@ -22,10 +22,16 @@ func ClonerUsingGitExec(repoSpec *RepoSpec) error { if err = r.run("init"); err != nil { return err } + // git relative submodule need origin, see https://github.com/kubernetes-sigs/kustomize/issues/5131 + if err = r.run("remote", "add", "origin", repoSpec.CloneSpec()); err != nil { + return err + } ref := "HEAD" if repoSpec.Ref != "" { ref = repoSpec.Ref } + // we use repoSpec.CloneSpec() instead of origin because on error, + // the prior prints the actual repo url for the user. if err = r.run("fetch", "--depth=1", repoSpec.CloneSpec(), ref); err != nil { return err } diff --git a/api/krusty/remoteloader_test.go b/api/krusty/remoteloader_test.go index 58ffa30085..b38b578980 100644 --- a/api/krusty/remoteloader_test.go +++ b/api/krusty/remoteloader_test.go @@ -205,8 +205,8 @@ resources: resources: - file://$ROOT/with-submodule.git/submodule?ref=relative-submodule `, - // TODO(annasong): Replace with simpleBuild once #5131 is fixed. - err: `failed to run '\S+/git submodule update --init --recursive'`, + + expected: simpleBuild, }, { name: "has timeout",