commit | 549b72b2d65051403301f53111509f77e88b379b | [log] [tgz] |
---|---|---|
author | Serge Bazanski <serge@nexantic.com> | Thu Jan 07 14:54:19 2021 +0100 |
committer | Serge Bazanski <serge@nexantic.com> | Thu Jan 07 14:54:19 2021 +0100 |
tree | b4e523d5d17e8130545e58b58870b4a18118a780 | |
parent | 696f39abb19ffcca03e9fc5a98681338216b1e7f [diff] |
metropolis: unify utility packages One last sweeping rename / reshuffle. We get rid of //metropolis/node/common and //golibs, unifying them into a single //metropolis/pkg meta-package. This is to be documented somwhere properly, but here's the new logic behind selecting where to place a new library package: - if it's specific to k8s-on-metropolis, put it in //metropolis/node/kubernetes/*. This is a self-contained tree that other paths cannot import from. - if it's a big new subsystem of the metropolis core, put it in //metropolis/node/core. This can be imported by anything in //m/n (eg the Kubernetes code at //m/n/kubernetes - otherwise, treat it as generic library that's part of the metropolis project, and put it in //metropolis/pkg. This can be imported by anything within //metropolis. This will be followed up by a diff that updates visibility rules. Test Plan: Pure refactor, CI only. X-Origin-Diff: phab/D683 GitOrigin-RevId: 883e7f09a7d22d64e966d07bbe839454ed081c79
This is the monorepo storing all of nexantic's internal projects and libraries.
We assume a Fedora host system provisioned using rW, and IntelliJ as the IDE.
For better reproducibility, all builds are executed in containers.
Spinning up: scripts/create_container.sh
Spinning down: scripts/destroy_container.sh
Running commands: scripts/run_in_container.sh <...>
Using bazel using a wrapper script: scripts/bin/bazel <...>
(add to your local $PATH for convenience)
Launch the node:
bazel run //:launch
Run a kubectl command:
bazel run //metropolis/cli/dbg -- kubectl describe
This repository is compatible with the IntelliJ Bazel plugin. All commands run inside the container, and necessary paths are mapped into the container.
The following steps are necessary:
Install Google's Bazel plugin in IntelliJ.
Add the absolute path to your ~/.cache/bazel-nxt
folder to your idea64.vmoptions
(Help → Edit Custom VM Options) and restart IntelliJ:
-Dbazel.bep.path=/home/leopold/.cache/bazel-nxt
Set "Bazel Binary Location" in Other Settings → Bazel Settings to the absolute path of scripts/bin/bazel
. This is a wrapper that will execute Bazel inside the container.
Use File → Import Bazel project... to create a new project from .bazelproject
.
After running the first sync, everything should now resolve in the IDE, including generated code.
It's strongly recommend to use our project presets for file watchers and other IDE features. Run this command and re-open the project in order to install them:
bazel run intellij/localconfig $(pwd)