| # Monogon Monorepo |
| |
| This is the main repository containing the source code for the [Monogon Project](https://monogon.tech). |
| |
| *This is pre-release software - feel free to look around, and check back later for our first release!* |
| |
| ## Environment |
| |
| Our build environment requires a working Podman binary (your distribution should have one). |
| |
| #### Usage |
| |
| 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) |
| |
| #### IntelliJ |
| |
| This repository is compatible with the IntelliJ Bazel plugin, which enables |
| full autocompletion for external dependencies and generated code. All commands |
| run inside the container, and necessary paths are mapped into the container. |
| |
| The following steps are necessary: |
| |
| - Install Google's [Bazel plugin](https://plugins.jetbrains.com/plugin/8609-bazel) in IntelliJ. On IntelliJ 2020.3 or later, |
| you need to install a [beta release](https://github.com/bazelbuild/intellij/issues/2102#issuecomment-801242977) of the plugin. |
| |
| - Add the absolute path to your `~/.cache/bazel-monogon` folder to your `idea64.vmoptions` (Help → Edit Custom VM Options) |
| and restart IntelliJ: |
| |
| `-Dbazel.bep.path=/home/leopold/.cache/bazel-monogon` |
| |
| - 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. |
| |
| ## Metropolis |
| |
| ### Run a single node cluster |
| |
| Launch the node: |
| |
| scripts/bin/bazel run //:launch |
| |
| Run a kubectl command: |
| |
| scripts/bin/bazel run //metropolis/cli/dbg -- kubectl describe |
| |
| Run tests: |
| |
| scripts/bin/bazel test //... |