Skip to content
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

Merged
merged 1 commit into from
Apr 17, 2024
Merged

Conversation

aaronmondal
Copy link
Member

@aaronmondal aaronmondal commented Apr 14, 2024

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 change is Reviewable

@aaronmondal aaronmondal force-pushed the native-cli branch 5 times, most recently from f9d3d96 to 52ff5d2 Compare April 15, 2024 22:39
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.
Copy link
Member Author

@aaronmondal aaronmondal left a 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)

@nfarah86
Copy link
Member

The chromium deployment example has an error with line 148: goma_ctl: command not found Subprocess failed with return code 1271

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.

Copy link
Contributor

@adam-singer adam-singer left a 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)

Copy link
Contributor

@adam-singer adam-singer left a 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)

Copy link
Collaborator

@MarcusSorealheis MarcusSorealheis left a 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)

Copy link
Member Author

@aaronmondal aaronmondal left a 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)

Copy link
Collaborator

@MarcusSorealheis MarcusSorealheis left a comment

Choose a reason for hiding this comment

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

:lgtm:

Reviewable status: 1 of 2 LGTMs obtained (waiting on @adam-singer)

Copy link
Member Author

@aaronmondal aaronmondal left a comment

Choose a reason for hiding this comment

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

-@adam-singer

Reviewable status: :shipit: complete! 1 of 1 LGTMs obtained

@aaronmondal aaronmondal merged commit fbe0583 into TraceMachina:main Apr 17, 2024
26 checks passed
chinchaun pushed a commit to chinchaun/nativelink that referenced this pull request May 6, 2024
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants