-
Notifications
You must be signed in to change notification settings - Fork 122
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Introduce the native
CLI
#851
Conversation
f9d3d96
to
52ff5d2
Compare
This command line tool overhauls the initial setup for Kubernetes deployments. The new tool gives us more information when something doesn't work out as intended and brings the the cluster setup considerably closer to what one would expect in a production grade system. The nativelink image and worker containers are now fully built in the cluster via Tekton Pipelines. Rebuilds may be triggered with curl requests instead of the old `nix run .#xxx.copyTo` workflow. This makes the setup more generic and provides clearer pointers on how to bring the system into continuously updating production workflows. The `native` tool is technically fully self-contained. The examples still make use of some local paths, but it's now possible to set up the cluster and deploy NativeLink in it without cloning the nativelink repository. This requires slightly modified `01_operations.sh` scripts which we'll add as a new example.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kubevalet +@adam-singer +@allada +@blakehatch +@MarcusSorealheis +@nfarah86 +@zbirenbaum
(Make sure to click "combine commits for review" in reviewable, as this has gone through a few iterations and might be confusing to review otherwise)
Example usage of the new curl commands is here: https://github.com/aaronmondal/nativelink/blob/native-cli/deployment-examples/kubernetes/01_operations.sh
A preview of the logs that you'll now see when invoking native up
in the development environment is here: https://github.com/TraceMachina/nativelink/actions/runs/8697038997/job/23851493633?pr=851#step:5:246
The changed behavior for the K8s examples is here: https://github.com/aaronmondal/nativelink/tree/native-cli/deployment-examples/kubernetes
Reviewable status: 0 of 6 LGTMs obtained, and pending CI: Analyze (javascript-typescript), Analyze (python), Bazel Dev / ubuntu-22.04, Cargo Dev / macos-13, Cargo Dev / ubuntu-22.04, Local / ubuntu-22.04, Publish image, Publish nativelink-worker-lre-cc, Remote / large-ubuntu-22.04, Vercel, asan / ubuntu-22.04, docker-compose-compiles-nativelink (20.04), docker-compose-compiles-nativelink (22.04), integration-tests (20.04), integration-tests (22.04), macos-13, pre-commit-checks, ubuntu-20.04 / stable, ubuntu-22.04, ubuntu-22.04 / stable, vale, windows-2022 / stable, zig-cc ubuntu-20.04, zig-cc ubuntu-22.04 (waiting on @adam-singer, @allada, @blakehatch, @MarcusSorealheis, @nfarah86, and @zbirenbaum)
The chromium deployment example has an error with If the error can't be resolved soonish- we should include in the readme that this error will happen and they won't be able to run the example. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nfarah86 if you are seeing this locally it is a bug with depot tools, needs to be re checked out from source. If this is being seen in one of our local images then they have been updated, I'd give it another try or ping me offline.
Reviewable status: 0 of 6 LGTMs obtained (waiting on @allada, @blakehatch, @MarcusSorealheis, @nfarah86, and @zbirenbaum)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed 33 of 33 files at r1, all commit messages.
Reviewable status: 0 of 6 LGTMs obtained (waiting on @adam-singer, @allada, @blakehatch, @MarcusSorealheis, @nfarah86, and @zbirenbaum)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed all commit messages.
Reviewable status: 0 of 6 LGTMs obtained (waiting on @adam-singer, @allada, @blakehatch, @nfarah86, and @zbirenbaum)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-@allada -@nfarah86 -@zbirenbaum -@blakehatch
Reviewable status: 0 of 2 LGTMs obtained (waiting on @adam-singer and @MarcusSorealheis)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewable status: 1 of 2 LGTMs obtained (waiting on @adam-singer)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewable status: complete! 1 of 1 LGTMs obtained
This command line tool overhauls the initial setup for Kubernetes deployments. The new tool gives us more information when something doesn't work out as intended and brings the the cluster setup considerably closer to what one would expect in a production grade system. The nativelink image and worker containers are now fully built in the cluster via Tekton Pipelines. Rebuilds may be triggered with curl requests instead of the old `nix run .#xxx.copyTo` workflow. This makes the setup more generic and provides clearer pointers on how to bring the system into continuously updating production workflows. The `native` tool is technically fully self-contained. The examples still make use of some local paths, but it's now possible to set up the cluster and deploy NativeLink in it without cloning the nativelink repository. This requires slightly modified `01_operations.sh` scripts which we'll add as a new example.
This command line tool overhauls the initial setup for Kubernetes
deployments.
The new tool gives us more information when something doesn't work out
as intended and brings the the cluster setup considerably closer to what
one would expect in a production grade system.
The nativelink image and worker containers are now fully built
in the cluster via Tekton Pipelines. Rebuilds may be triggered with curl
requests instead of the old
nix run .#xxx.copyTo
workflow. This makesthe setup more generic and provides clearer pointers on how to bring the
system into continuously updating production workflows.
The
native
tool is technically fully self-contained. The examplesstill make use of some local paths, but it's now possible to set up the
cluster and deploy NativeLink in it without cloning the nativelink
repository. This requires slightly modified
01_operations.sh
scriptswhich we'll add as a new example.
This change is