commit | 37110c360f012c10f3b9456a0eb282eefd3275b3 | [log] [tgz] |
---|---|---|
author | Serge Bazanski <serge@monogon.tech> | Wed Mar 01 13:57:27 2023 +0000 |
committer | Serge Bazanski <serge@monogon.tech> | Thu Mar 16 16:55:28 2023 +0000 |
tree | 0d8ade7c95d54a576d88e53fb5e8ca9ee76c8f29 | |
parent | 5456a3c4f14f7f73eb49dbfbb3de0bc009c970fe [diff] |
m/pkg/event: make type-safe This is a fairly large change which makes use of Go type parameters (“generics”) to make the event library (and its memory/etcd implementations) type safe. Since we now have the event.Value interface strongly typed, we also move options which were implementation-specific (like BacklogOnly) to be part of that interface, instead of the previously type-asserted specific implementations. Use of options that are not handled by a particular implementation is a runtime error. Expressing this in the type system is probably not worth the effort. We also implement Filter to allow offloading some of the functionality previously implemented in type assertion wrappers into the library itself. In the end, this ends up removing a bunch of type assertion code, at the cost of a fairly sweeping change. Unfortunately, some of this is due to IntelliJ suddenly deciding to reformat comments. Change-Id: I1ca6d93db1b5c4055a21af3fb9e5e3d425c0d86e Reviewed-on: https://review.monogon.dev/c/monogon/+/1322 Tested-by: Jenkins CI Reviewed-by: Leopold Schabel <leo@monogon.tech>
This is the main repository containing the source code for the Monogon Platform.
This is pre-release software - take a look, and check back later!
Our build environment is self-contained and requires only minimal host dependencies:
/dev/kvm
(if you want to run tests).Our docs assume that Bazelisk is available as bazel
on your PATH.
Refer to SETUP.md for detailed instructions.
Build CLI and node image:
bazel build //metropolis/cli/dbg //:launch -c dbg
Launch an ephemeral test node:
bazel test //:launch -c dbg --test_output=streamed
Run a kubectl command while the test is running:
bazel-bin/metropolis/cli/dbg/dbg_/dbg kubectl describe node
Run full test suite:
bazel test -c dbg //...