This is the development documentation for Nexodus. It is intended for developers who want to contribute to Nexodus.
Linux and Mac environments are supported for development.
Development of Nexodus requires the following dependencies:
Other dependencies can be installed by running
for further details on the dependencies it installs.
For an overview of where to find different parts of the codebase, see Code Organization.
make to see documentation of the available build targets. The most common build
make all, which will build the agent, API server, and supporting utilities.
It will also build them across supported platforms and architectures.
For further details on the development environment, including IDE-specific tips, see Development Tooling.
Testing your changes
For changes where you want to run your own local copy of the whole Nexodus service stack,
we offer a development environment that runs in kind. To start
this environment, run
make run-on-kind. This will start a local Kubernetes cluster and deploy
the Nexodus service stack to it. You can then run
make run-nexd-container to quickly start an
instance of the agent and connect it to the local instance of Nexodus.
For more details on this environment, see the Nexodus Service documentation.
Unit tests are run with
make test. Integration tests are run against a local Nexodus instance
make e2e. Further details on the integration tests can be found in
the integration tests documentation.
Debugging tips can be found in Debugging.
See the pull requests page for details on how to contribute to Nexodus.
Take a look at the project's guiding principles to get a sense of some of the factors that influence the project's direction.