From 7dcee163a221637c67e00a56f48c5f1e9338ceb9 Mon Sep 17 00:00:00 2001 From: kzadorozhny Date: Mon, 29 Sep 2025 16:36:55 -0700 Subject: [PATCH 1/4] make tests ron on macs where port 5000 is taken --- create_kind_cluster.sh | 13 +++++++++---- e2e_test.sh | 4 +--- examples/helloworld/BUILD | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/create_kind_cluster.sh b/create_kind_cluster.sh index 3ec944fa..64411c66 100755 --- a/create_kind_cluster.sh +++ b/create_kind_cluster.sh @@ -13,19 +13,24 @@ set -o errexit # desired cluster name; default is "kind" KIND_CLUSTER_NAME="${KIND_CLUSTER_NAME:-kind}" +# kind executable +go install sigs.k8s.io/kind@v0.29.0 +kind="$(go env GOPATH)/bin/kind" +which "${kind}" + # create registry container unless it already exists reg_name='kind-registry' -reg_port='5000' +reg_port='15000' running="$(docker inspect -f '{{.State.Running}}' "${reg_name}" 2>/dev/null || true)" if [ "${running}" != 'true' ]; then docker container rm "${reg_name}" 2>/dev/null || true docker run \ - -d --restart=always -p "${reg_port}:5000" --name "${reg_name}" \ - registry:2 + -d --restart=always -e "REGISTRY_HTTP_ADDR=0.0.0.0:${reg_port}" -p "${reg_port}:${reg_port}" --name "${reg_name}" \ + registry:3 fi # create a cluster with the local registry enabled in containerd -cat < Date: Mon, 29 Sep 2025 17:21:43 -0700 Subject: [PATCH 2/4] fix deploy tests --- examples/helloworld/k8s_deploy_test.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/helloworld/k8s_deploy_test.sh b/examples/helloworld/k8s_deploy_test.sh index c30c3101..40c82001 100755 --- a/examples/helloworld/k8s_deploy_test.sh +++ b/examples/helloworld/k8s_deploy_test.sh @@ -31,7 +31,7 @@ cat mynamespace.show grep -F "kind: Deployment" mynamespace.show grep -F "kind: Service" mynamespace.show grep -F "name: helloworld" mynamespace.show -grep -E "image: localhost:5000/.*/helloworld/image@sha256" mynamespace.show +grep -E "image: localhost:15000/.*/helloworld/image@sha256" mynamespace.show grep -E "app_label_image_short_digest" mynamespace.show | grep -v -F 'image.short-digest' $(rlocation examples/helloworld/canary.show) > canary.show @@ -42,7 +42,7 @@ grep -F "kind: Deployment" canary.show grep -F "kind: Service" canary.show grep -F "namespace: $NAMESPACE" canary.show grep -F "name: helloworld-canary" canary.show -grep -E "image: localhost:5000/k8s/helloworld/image@sha256" canary.show +grep -E "image: localhost:15000/k8s/helloworld/image@sha256" canary.show $(rlocation examples/helloworld/release.show) > release.show echo "DEBUG: release.show:" @@ -52,4 +52,4 @@ grep -F "kind: Deployment" release.show grep -F "kind: Service" release.show grep -F "namespace: $NAMESPACE" canary.show grep -F "name: helloworld" mynamespace.show -grep -E "image: localhost:5000/k8s/helloworld/image@sha256" release.show +grep -E "image: localhost:15000/k8s/helloworld/image@sha256" release.show From e8ba3ae5704d11e0933a6292436fd5faa343802f Mon Sep 17 00:00:00 2001 From: csinghal Date: Tue, 30 Sep 2025 09:39:59 -0700 Subject: [PATCH 3/4] gitops path root support --- gitops/git/git.go | 22 +++++++++++++++++----- gitops/prer/create_gitops_prs.go | 2 +- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/gitops/git/git.go b/gitops/git/git.go index 190ca0d0..e8b8cfab 100644 --- a/gitops/git/git.go +++ b/gitops/git/git.go @@ -45,10 +45,13 @@ func Clone(repo, dir, mirrorDir, primaryBranch, gitopsPath string) (*Repo, error } args = append(args, repo, dir) exec.Mustex("", "git", args...) - exec.Mustex(dir, "git", "config", "--local", "core.sparsecheckout", "true") - genPath := fmt.Sprintf("%s/\n", gitopsPath) - if err := ioutil.WriteFile(filepath.Join(dir, ".git/info/sparse-checkout"), []byte(genPath), 0644); err != nil { - return nil, fmt.Errorf("Unable to create .git/info/sparse-checkout: %w", err) + // Enable sparse-checkout when restricting to a subdir + if !isRootPath(gitopsPath) { + exec.Mustex(dir, "git", "config", "--local", "core.sparsecheckout", "true") + genPath := fmt.Sprintf("%s/\n", gitopsPath) + if err := ioutil.WriteFile(filepath.Join(dir, ".git/info/sparse-checkout"), []byte(genPath), 0644); err != nil { + return nil, fmt.Errorf("Unable to create .git/info/sparse-checkout: %w", err) + } } exec.Mustex(dir, "git", "checkout", primaryBranch) return &Repo{ @@ -108,7 +111,11 @@ func (r *Repo) GetLastCommitMessage() (msg string) { // Commit all changes to the current branch. returns true if there were any changes func (r *Repo) Commit(message, gitopsPath string) bool { - exec.Mustex(r.Dir, "git", "add", gitopsPath) + if isRootPath(gitopsPath) { + exec.Mustex(r.Dir, "git", "add", ".") + } else { + exec.Mustex(r.Dir, "git", "add", gitopsPath) + } if r.IsClean() { return false } @@ -155,3 +162,8 @@ func (r *Repo) Push(branches []string) { args := append([]string{"push", r.RemoteName, "-f", "--set-upstream"}, branches...) exec.Mustex(r.Dir, "git", args...) } + +// isRootPath is an internal helper to detect "full repo" case. +func isRootPath(gitopsPath string) bool { + return gitopsPath == "" || gitopsPath == "." +} \ No newline at end of file diff --git a/gitops/prer/create_gitops_prs.go b/gitops/prer/create_gitops_prs.go index 0d53e004..6a2d0ae1 100644 --- a/gitops/prer/create_gitops_prs.go +++ b/gitops/prer/create_gitops_prs.go @@ -58,7 +58,7 @@ var ( workspace = flag.String("workspace", "", "path to workspace root") repo = flag.String("git_repo", "", "git repo location") gitMirror = flag.String("git_mirror", "", "git mirror location, like /mnt/mirror/bitbucket.tubemogul.info/tm/repo.git for jenkins") - gitopsPath = flag.String("gitops_path", "cloud", "location to store files in repo.") + gitopsPath = flag.String("gitops_path", "", "location to store files in repo (default: full repo).") gitopsTmpDir = flag.String("gitops_tmpdir", os.TempDir(), "location to check out git tree with /cloud.") target = flag.String("target", "//... except //experimental/...", "target to scan. Useful for debugging only") pushParallelism = flag.Int("push_parallelism", 5, "Number of image pushes to perform concurrently") From 62d50e1abcf2323d79c66fb83ef02b8920c6bffb Mon Sep 17 00:00:00 2001 From: csinghal Date: Tue, 30 Sep 2025 10:36:43 -0700 Subject: [PATCH 4/4] keep gitopsPath to cloud for backward compatibility --- gitops/prer/create_gitops_prs.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitops/prer/create_gitops_prs.go b/gitops/prer/create_gitops_prs.go index 6a2d0ae1..0d53e004 100644 --- a/gitops/prer/create_gitops_prs.go +++ b/gitops/prer/create_gitops_prs.go @@ -58,7 +58,7 @@ var ( workspace = flag.String("workspace", "", "path to workspace root") repo = flag.String("git_repo", "", "git repo location") gitMirror = flag.String("git_mirror", "", "git mirror location, like /mnt/mirror/bitbucket.tubemogul.info/tm/repo.git for jenkins") - gitopsPath = flag.String("gitops_path", "", "location to store files in repo (default: full repo).") + gitopsPath = flag.String("gitops_path", "cloud", "location to store files in repo.") gitopsTmpDir = flag.String("gitops_tmpdir", os.TempDir(), "location to check out git tree with /cloud.") target = flag.String("target", "//... except //experimental/...", "target to scan. Useful for debugging only") pushParallelism = flag.Int("push_parallelism", 5, "Number of image pushes to perform concurrently")