Skip to content
This repository was archived by the owner on Jun 3, 2025. It is now read-only.

fix: install tools using go.mod for versioning#2562

Merged
aaron-prindle merged 7 commits intoGoogleContainerTools:mainfrom
VertaAI:ln/verta/tools-versioning
Jun 14, 2023
Merged

fix: install tools using go.mod for versioning#2562
aaron-prindle merged 7 commits intoGoogleContainerTools:mainfrom
VertaAI:ln/verta/tools-versioning

Conversation

@liam-verta
Copy link
Copy Markdown
Contributor

@liam-verta liam-verta commented Jun 12, 2023

Description

Fixes #2561

Instead of hacking wildly to side step issues created by go install <tool>@<version>, switch to go install <tool> with placeholder imports to make go mod include the tools in the dependency graph.

Already being used in https://github.com/vertaai/kaniko . Works great.

Submitter Checklist

These are the criteria that every PR should meet, please check them off as you
review them:

  • Includes unit tests - N/A dependencies should be unchanged.
  • Adds integration tests if needed. - N/A dependencies should be unchanged.

See the contribution guide for more details.

Reviewer Notes

  • The code flow looks good.
  • Unit tests and or integration tests added.

Release Notes

Describe any changes here so maintainer can include it in the release notes, or delete this block.

Examples of user facing changes:
- kaniko adds a new flag `--registry-repo` to override registry

@google-cla
Copy link
Copy Markdown

google-cla Bot commented Jun 12, 2023

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

Comment thread deploy/Dockerfile
Comment on lines +25 to +31
# Add .docker config dir
RUN mkdir -p /kaniko/.docker

# Checksums can be obtained from https://github.com/GoogleCloudPlatform/docker-credential-gcr/releases/download/v2.1.8/checksums.txt
ARG GCR_HELPER_SHA_linux_amd64="0da9a0878d34dc8b38ae76519b7137f3179f573cf9c84fec1b81e973b565e2f9"
ARG GCR_HELPER_SHA_linux_386="2421d3242beb239eb640daf9dbfa4582416049a92ed93a207a0a3102fde4ea11"
ARG GCR_HELPER_SHA_linux_s390x="5d18e62c5952d43993b7ee292f87d812ccd161d4e9d932fbc1567eb5d5013632"
ARG GCR_HELPER_SHA_linux_arm64="9d0e67c18fb3e1e048120d06edb9e54e1c11f88139ec77dbc9830e8a8b31745c"
COPY . .
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move this step before the go install calls so that go.mod, go.sum and vendor are present when go install is called.

Comment thread deploy/Dockerfile
# Get GCR credential helper
# Until https://github.com/GoogleCloudPlatform/docker-credential-gcr/issues/128 is addressed, we need to use
# the existing compiled versions distributed in GitHub releases
ARG GCR_HELPER_VERSION="2.1.8"
Copy link
Copy Markdown
Contributor Author

@liam-verta liam-verta Jun 12, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All this hackery is no longer needed. go install github.com/GoogleCloudPlatform/docker-credential-gcr will install the local vendor version of the tool. That version is controlled via go.mod and go.sum.

@liam-verta liam-verta force-pushed the ln/verta/tools-versioning branch from bbfdf9c to 11cf53b Compare June 12, 2023 21:43
"europe-west8-docker.pkg.dev",
"europe-west9-docker.pkg.dev",
"europe-west12-docker.pkg.dev",
"me-central1-docker.pkg.dev",
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line is the same as the change in GoogleCloudPlatform/docker-credential-gcr@62afb27

Showing that the vendoring is getting the right tool version.

Comment thread go.mod
Comment on lines +160 to +182
github.com/aws/aws-sdk-go-v2/service/ecr v1.18.10 // indirect
github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.16.1 // indirect
github.com/cloudflare/circl v1.3.3 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/google/go-querystring v1.1.0 // indirect
github.com/google/s2a-go v0.1.4 // indirect
github.com/google/subcommands v1.2.0 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/magiconair/properties v1.8.5 // indirect
github.com/mitchellh/mapstructure v1.4.1 // indirect
github.com/moby/swarmkit/v2 v2.0.0-20230315203717-e28e8ba9bc83 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pjbgf/sha1cd v0.3.0 // indirect
github.com/skeema/knownhosts v1.1.1 // indirect
github.com/spf13/cast v1.3.1 // indirect
github.com/spf13/jwalterweatherman v1.1.0 // indirect
github.com/spf13/viper v1.8.1 // indirect
github.com/subosito/gotenv v1.2.0 // indirect
github.com/toqueteos/webbrowser v1.2.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect
gopkg.in/ini.v1 v1.62.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are transitive dependencies that were being pulled dynamically, bypassing the local go.mod, go.sum, and vendor.

Comment thread go.mod
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.67
github.com/aws/aws-sdk-go-v2/service/s3 v1.33.1
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20220228164355-396b2034c795
github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20230522190001-adf1bafd791a
Copy link
Copy Markdown
Contributor Author

@liam-verta liam-verta Jun 12, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can verify the versions of the tools by comparing the commits strings on the ends here with the commit sha's that were in the docker file.

Comment thread go.mod
@liam-verta liam-verta force-pushed the ln/verta/tools-versioning branch from c80fbdd to ef2d626 Compare June 13, 2023 17:26
@aaron-prindle
Copy link
Copy Markdown
Collaborator

aaron-prindle commented Jun 13, 2023

Thank you very much for the PR @liam-verta! +1 to the idea here, in attempting to build kaniko images (via make images )from this PR though I am seeing that the version of docker-credential-gcr is v1.5.1 which is a downgrade from the v2.1.8 it currently is at HEAD. Any ideas as to why this version might be being downgraded?

Logs showing docker-credential-gcr is downgraded to v1.5.1 at this PR:

aprindle@aprindle-ssd ~/kaniko  [main]gh pr checkout 2562
Switched to branch 'ln/verta/tools-versioning'
aprindle@aprindle-ssd ~/kaniko  [ln/verta/tools-versioning]make images
docker build  --build-arg=TARGETARCH=amd64 --build-arg=TARGETOS=linux -t gcr.io/kaniko-project/executor:latest -f deploy/Dockerfile --target kaniko-executor .
[+] Building 16.3s (27/27) FINISHED                                                                                   
 => [internal] load build definition from Dockerfile                                                             0.0s
 => => transferring dockerfile: 3.72kB                                                                           0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 34B                                                                                 0.0s
 => [internal] load metadata for docker.io/library/busybox:musl                                                  0.3s
 => [internal] load metadata for docker.io/library/golang:1.20                                                   0.0s
 => [internal] load metadata for docker.io/library/debian:bullseye-slim                                          0.2s
 => [certs 1/2] FROM docker.io/library/debian:bullseye-slim@sha256:924df86f8aad741a0134b2de7d8e70c5c6863f839caa  0.0s
 => [builder 1/8] FROM docker.io/library/golang:1.20                                                             0.0s
 => [busybox 1/1] FROM docker.io/library/busybox:musl@sha256:2ab985cfbe36bed1ca11c4520ccd8ea5701b792234029c34e0  0.0s
 => [internal] load build context                                                                                0.2s
 => => transferring context: 3.64MB                                                                              0.2s
 => CACHED [builder 2/8] WORKDIR /src                                                                            0.0s
 => CACHED [builder 3/8] RUN mkdir -p /kaniko/.docker                                                            0.0s
 => [builder 4/8] COPY . .                                                                                       1.0s
 => [builder 5/8] RUN go install github.com/GoogleCloudPlatform/docker-credential-gcr                            6.5s
 => [builder 6/8] RUN go install github.com/awslabs/amazon-ecr-credential-helper/ecr-login/cli/docker-credentia  2.8s
 => [builder 7/8] RUN go install github.com/chrismellard/docker-credential-acr-env                               2.1s
 => [builder 8/8] RUN   --mount=type=cache,target=/root/.cache/go-build   --mount=type=cache,target=/go/pkg   m  3.1s
 => CACHED [kaniko-base-slim 1/3] RUN --mount=from=busybox,dst=/usr/ ["busybox", "sh", "-c", "mkdir -p /kaniko   0.0s 
 => CACHED [certs 2/2] RUN apt update && apt install -y ca-certificates                                          0.0s
 => CACHED [kaniko-base-slim 2/3] COPY --from=certs /etc/ssl/certs/ca-certificates.crt /kaniko/ssl/certs/        0.0s
 => CACHED [kaniko-base-slim 3/3] COPY files/nsswitch.conf /etc/nsswitch.conf                                    0.0s
 => CACHED [kaniko-base 1/5] COPY --from=builder --chown=0:0 /usr/local/bin/docker-credential-gcr /kaniko/docke  0.0s
 => CACHED [kaniko-base 2/5] COPY --from=builder --chown=0:0 /usr/local/bin/docker-credential-ecr-login /kaniko  0.0s
 => CACHED [kaniko-base 3/5] COPY --from=builder --chown=0:0 /usr/local/bin/docker-credential-acr-env /kaniko/d  0.0s
 => CACHED [kaniko-base 4/5] COPY --from=builder /kaniko/.docker /kaniko/.docker                                 0.0s
 => CACHED [kaniko-base 5/5] WORKDIR /workspace                                                                  0.0s
 => CACHED [kaniko-executor 1/1] COPY --from=builder /src/out/executor /kaniko/executor                          0.0s
 => exporting to image                                                                                           0.0s
 => => exporting layers                                                                                          0.0s
 => => writing image sha256:c8ca7aaf84e4e744131fb15a331e0d901059d0a5966782ce9717f1e4957df3e6                     0.0s
 => => naming to gcr.io/kaniko-project/executor:latest                                                           0.0s
docker build  --build-arg=TARGETARCH=amd64 --build-arg=TARGETOS=linux -t gcr.io/kaniko-project/executor:debug -f deploy/Dockerfile --target kaniko-debug .
[+] Building 0.6s (31/31) FINISHED                                                                                    
 => [internal] load build definition from Dockerfile                                                             0.0s
 => => transferring dockerfile: 40B                                                                              0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 34B                                                                                 0.0s
 => [internal] load metadata for docker.io/library/busybox:musl                                                  0.3s
 => [internal] load metadata for docker.io/library/golang:1.20                                                   0.0s
 => [internal] load metadata for docker.io/library/debian:bullseye-slim                                          0.3s
 => [builder 1/8] FROM docker.io/library/golang:1.20                                                             0.0s
 => [internal] load build context                                                                                0.2s
 => => transferring context: 519.81kB                                                                            0.2s
 => [certs 1/2] FROM docker.io/library/debian:bullseye-slim@sha256:924df86f8aad741a0134b2de7d8e70c5c6863f839caa  0.0s
 => [busybox 1/1] FROM docker.io/library/busybox:musl@sha256:2ab985cfbe36bed1ca11c4520ccd8ea5701b792234029c34e0  0.0s
 => CACHED [builder 2/8] WORKDIR /src                                                                            0.0s
 => CACHED [builder 3/8] RUN mkdir -p /kaniko/.docker                                                            0.0s
 => CACHED [builder 4/8] COPY . .                                                                                0.0s
 => CACHED [builder 5/8] RUN go install github.com/GoogleCloudPlatform/docker-credential-gcr                     0.0s
 => CACHED [builder 6/8] RUN go install github.com/awslabs/amazon-ecr-credential-helper/ecr-login/cli/docker-cr  0.0s
 => CACHED [builder 7/8] RUN go install github.com/chrismellard/docker-credential-acr-env                        0.0s
 => CACHED [builder 8/8] RUN   --mount=type=cache,target=/root/.cache/go-build   --mount=type=cache,target=/go/  0.0s
 => CACHED [kaniko-base-slim 1/3] RUN --mount=from=busybox,dst=/usr/ ["busybox", "sh", "-c", "mkdir -p /kaniko   0.0s
 => CACHED [certs 2/2] RUN apt update && apt install -y ca-certificates                                          0.0s
 => CACHED [kaniko-base-slim 2/3] COPY --from=certs /etc/ssl/certs/ca-certificates.crt /kaniko/ssl/certs/        0.0s
 => CACHED [kaniko-base-slim 3/3] COPY files/nsswitch.conf /etc/nsswitch.conf                                    0.0s
 => CACHED [kaniko-base 1/5] COPY --from=builder --chown=0:0 /usr/local/bin/docker-credential-gcr /kaniko/docke  0.0s
 => CACHED [kaniko-base 2/5] COPY --from=builder --chown=0:0 /usr/local/bin/docker-credential-ecr-login /kaniko  0.0s
 => CACHED [kaniko-base 3/5] COPY --from=builder --chown=0:0 /usr/local/bin/docker-credential-acr-env /kaniko/d  0.0s
 => CACHED [kaniko-base 4/5] COPY --from=builder /kaniko/.docker /kaniko/.docker                                 0.0s
 => CACHED [kaniko-base 5/5] WORKDIR /workspace                                                                  0.0s
 => CACHED [kaniko-executor 1/1] COPY --from=builder /src/out/executor /kaniko/executor                          0.0s
 => CACHED [kaniko-debug 1/4] COPY --from=builder /src/out/warmer /kaniko/warmer                                 0.0s
 => CACHED [kaniko-debug 2/4] COPY --from=busybox /bin /busybox                                                  0.0s
 => CACHED [kaniko-debug 3/4] RUN ["/busybox/mkdir", "-p", "/bin"]                                               0.0s
 => CACHED [kaniko-debug 4/4] RUN ["/busybox/ln", "-s", "/busybox/sh", "/bin/sh"]                                0.0s
 => exporting to image                                                                                           0.0s
 => => exporting layers                                                                                          0.0s
 => => writing image sha256:125bc7bf427e2a4d7cc55100bba21169edad6e0265c74dfc0aac24672af58db8                     0.0s
 => => naming to gcr.io/kaniko-project/executor:debug                                                            0.0s
docker build  --build-arg=TARGETARCH=amd64 --build-arg=TARGETOS=linux -t gcr.io/kaniko-project/executor:slim -f deploy/Dockerfile --target kaniko-slim .
[+] Building 0.9s (22/22) FINISHED                                                                                    
 => [internal] load build definition from Dockerfile                                                             0.0s
 => => transferring dockerfile: 40B                                                                              0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 34B                                                                                 0.0s
 => [internal] load metadata for docker.io/library/busybox:musl                                                  0.3s
 => [internal] load metadata for docker.io/library/golang:1.20                                                   0.0s
 => [internal] load metadata for docker.io/library/debian:bullseye-slim                                          0.6s
 => [builder 1/8] FROM docker.io/library/golang:1.20                                                             0.0s
 => [internal] load build context                                                                                0.2s
 => => transferring context: 519.81kB                                                                            0.2s
 => [busybox 1/1] FROM docker.io/library/busybox:musl@sha256:2ab985cfbe36bed1ca11c4520ccd8ea5701b792234029c34e0  0.0s
 => [certs 1/2] FROM docker.io/library/debian:bullseye-slim@sha256:924df86f8aad741a0134b2de7d8e70c5c6863f839caa  0.0s
 => CACHED [kaniko-base-slim 1/3] RUN --mount=from=busybox,dst=/usr/ ["busybox", "sh", "-c", "mkdir -p /kaniko   0.0s
 => CACHED [certs 2/2] RUN apt update && apt install -y ca-certificates                                          0.0s
 => CACHED [kaniko-base-slim 2/3] COPY --from=certs /etc/ssl/certs/ca-certificates.crt /kaniko/ssl/certs/        0.0s
 => CACHED [kaniko-base-slim 3/3] COPY files/nsswitch.conf /etc/nsswitch.conf                                    0.0s
 => CACHED [builder 2/8] WORKDIR /src                                                                            0.0s
 => CACHED [builder 3/8] RUN mkdir -p /kaniko/.docker                                                            0.0s
 => CACHED [builder 4/8] COPY . .                                                                                0.0s
 => CACHED [builder 5/8] RUN go install github.com/GoogleCloudPlatform/docker-credential-gcr                     0.0s
 => CACHED [builder 6/8] RUN go install github.com/awslabs/amazon-ecr-credential-helper/ecr-login/cli/docker-cr  0.0s
 => CACHED [builder 7/8] RUN go install github.com/chrismellard/docker-credential-acr-env                        0.0s
 => CACHED [builder 8/8] RUN   --mount=type=cache,target=/root/.cache/go-build   --mount=type=cache,target=/go/  0.0s
 => CACHED [kaniko-slim 1/1] COPY --from=builder /src/out/executor /kaniko/executor                              0.0s
 => exporting to image                                                                                           0.0s
 => => exporting layers                                                                                          0.0s
 => => writing image sha256:04a6aad6a74bc2fd2f5f9b37324a6d5384686d94c58a4c916c797eb727281eda                     0.0s
 => => naming to gcr.io/kaniko-project/executor:slim                                                             0.0s
docker build  --build-arg=TARGETARCH=amd64 --build-arg=TARGETOS=linux -t gcr.io/kaniko-project/warmer:latest -f deploy/Dockerfile --target kaniko-warmer .
[+] Building 0.6s (27/27) FINISHED                                                                                    
 => [internal] load build definition from Dockerfile                                                             0.0s
 => => transferring dockerfile: 40B                                                                              0.0s
 => [internal] load .dockerignore                                                                                0.0s
 => => transferring context: 34B                                                                                 0.0s
 => [internal] load metadata for docker.io/library/busybox:musl                                                  0.2s
 => [internal] load metadata for docker.io/library/debian:bullseye-slim                                          0.3s
 => [internal] load metadata for docker.io/library/golang:1.20                                                   0.0s
 => [builder 1/8] FROM docker.io/library/golang:1.20                                                             0.0s
 => [certs 1/2] FROM docker.io/library/debian:bullseye-slim@sha256:924df86f8aad741a0134b2de7d8e70c5c6863f839caa  0.0s
 => [internal] load build context                                                                                0.2s
 => => transferring context: 519.81kB                                                                            0.2s
 => [busybox 1/1] FROM docker.io/library/busybox:musl@sha256:2ab985cfbe36bed1ca11c4520ccd8ea5701b792234029c34e0  0.0s
 => CACHED [kaniko-base-slim 1/3] RUN --mount=from=busybox,dst=/usr/ ["busybox", "sh", "-c", "mkdir -p /kaniko   0.0s
 => CACHED [certs 2/2] RUN apt update && apt install -y ca-certificates                                          0.0s
 => CACHED [kaniko-base-slim 2/3] COPY --from=certs /etc/ssl/certs/ca-certificates.crt /kaniko/ssl/certs/        0.0s
 => CACHED [kaniko-base-slim 3/3] COPY files/nsswitch.conf /etc/nsswitch.conf                                    0.0s
 => CACHED [builder 2/8] WORKDIR /src                                                                            0.0s
 => CACHED [builder 3/8] RUN mkdir -p /kaniko/.docker                                                            0.0s
 => CACHED [builder 4/8] COPY . .                                                                                0.0s
 => CACHED [builder 5/8] RUN go install github.com/GoogleCloudPlatform/docker-credential-gcr                     0.0s
 => CACHED [builder 6/8] RUN go install github.com/awslabs/amazon-ecr-credential-helper/ecr-login/cli/docker-cr  0.0s
 => CACHED [builder 7/8] RUN go install github.com/chrismellard/docker-credential-acr-env                        0.0s
 => CACHED [builder 8/8] RUN   --mount=type=cache,target=/root/.cache/go-build   --mount=type=cache,target=/go/  0.0s
 => CACHED [kaniko-base 1/5] COPY --from=builder --chown=0:0 /usr/local/bin/docker-credential-gcr /kaniko/docke  0.0s
 => CACHED [kaniko-base 2/5] COPY --from=builder --chown=0:0 /usr/local/bin/docker-credential-ecr-login /kaniko  0.0s
 => CACHED [kaniko-base 3/5] COPY --from=builder --chown=0:0 /usr/local/bin/docker-credential-acr-env /kaniko/d  0.0s
 => CACHED [kaniko-base 4/5] COPY --from=builder /kaniko/.docker /kaniko/.docker                                 0.0s
 => CACHED [kaniko-base 5/5] WORKDIR /workspace                                                                  0.0s
 => CACHED [kaniko-warmer 1/1] COPY --from=builder /src/out/warmer /kaniko/warmer                                0.0s
 => exporting to image                                                                                           0.0s
 => => exporting layers                                                                                          0.0s
 => => writing image sha256:27b44f226f54940da3876ae96107b0ba8cd08020ed5444d89af9382a54a50d8e                     0.0s
 => => naming to gcr.io/kaniko-project/warmer:latest                                                             0.0s
aprindle@aprindle-ssd ~/kaniko  [ln/verta/tools-versioning]docker run -it --entrypoint=/bin/sh gcr.io/kaniko-project/executor:debug
/workspace # 
/workspace # cd /kaniko
/kaniko # ./docker-credential-gcr version
Google Container Registry Docker credential helper v1.5.1-0.20230328182921-62afb2723512

Same command from the debug image @ HEAD:

/kaniko # ./docker-credential-gcr version
Google Container Registry Docker credential helper 2.1.8
/kaniko # 

@liam-verta
Copy link
Copy Markdown
Contributor Author

liam-verta commented Jun 13, 2023

@aaron-prindle
We can't use v2.1.8 because then the Go module system bails because the major version is not in the package as noted in GoogleCloudPlatform/docker-credential-gcr#128 .

However, the commit being used for v1.5.1-0.20230328182921-62afb2723512 is 62afb2723512 which matches the tag v2.1.8.

I've diffed the vendor folder from this PR with the docker-credential-gcr source at v2.1.8 and they match (only diffs are tests and other non-product files):

It looks like the v.1.5.1 in the version string is an artifact of calling go get github.com/GoogleCloudPlatform/docker-credential-gcr@62afb2723512fd6572c6300024e0c94f734b0ae3, caused by the same major version requirement as above: since github.com/GoogleCloudPlatform/docker-credential-gcr doesn't have /v2/ in it, the Go module system forces it the next reasonable v1 increment. There's already a v1.5.0, so commits after that tag the aren't must be at least v1.5.1-<something>.

@aaron-prindle
Copy link
Copy Markdown
Collaborator

Ah I see, thank you for explaining what was occuring @liam-verta. I think this should good to merge then as an improvement over our current setup once we get CI/CD green. Currently this PR has a gofmt lint error that our unit tests are flagging:

link to full logs:
https://github.com/GoogleContainerTools/kaniko/actions/runs/5260264095/jobs/9508257115?pr=2562#step:4:1375

relevant log snippet:

Gofmt errors in files:
./tools/tools.go
diff ./tools/tools.go.orig ./tools/tools.go
--- ./tools/tools.go.orig
+++ ./tools/tools.go
@@ -1,3 +1,4 @@
+//go:build tools
 // +build tools
 
 /*

@liam-verta
Copy link
Copy Markdown
Contributor Author

@aaron-prindle
Great! This should be good now.

Copy link
Copy Markdown
Collaborator

@aaron-prindle aaron-prindle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for the PR here @liam-verta!

@aaron-prindle aaron-prindle merged commit 5cbc063 into GoogleContainerTools:main Jun 14, 2023
@liam-verta liam-verta deleted the ln/verta/tools-versioning branch June 14, 2023 17:27
kylecarbs pushed a commit to coder/kaniko that referenced this pull request Jul 12, 2023
…2562)

* fix: install tools using go.mod for versioning

* Add helpful instructions for tool updates.

* Add comment

* Add boilerplate

* Update go.mod

* Gofmt feedback
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Installing tools using commit specification bypassing go.mod and vendoring

2 participants