5
1
Fork
You've already forked installer
1
No description
  • Rust 99%
  • Shell 1%
rftx7mw c44785f1f9 Update Cargo.toml
Add license, repository and readme
2026年02月22日 14:34:05 +01:00
src install: Add cgroupv2, systemd, and k3s checks 2026年02月21日 19:47:50 +01:00
test-vm tests: Improve test-vm and it's documentation 2026年02月21日 13:43:56 +01:00
.editorconfig feat: add default rust .editorconfig from https://github.com/rust-lang/rust/blob/master/.editorconfig 2025年10月18日 14:36:32 +02:00
.gitignore Add VM image for testing 2025年10月19日 19:46:57 +02:00
Cargo.toml Update Cargo.toml 2026年02月22日 14:34:05 +01:00
docker-compose.yml deps: Bump cr.jaegertracing.io/jaegertracing/jaeger Docker tag to v2.15.1 2026年02月22日 12:45:15 +00:00
LICENSE.md Add AGPLv3 license 2026年02月22日 14:26:54 +01:00
README.md build: Add Taskfile 2026年02月21日 22:02:58 +01:00
renovate.json deps: Add renovate config 2026年02月22日 13:25:07 +01:00
Taskfile.dist.yaml build: Add Taskfile 2026年02月21日 22:02:58 +01:00

Installer

installs Kubernetes on an SSH host and bootstraps monkey-wrench with GitOps and flux

Commands

# install k3s and bootstrap monkey-wrench on a remote host
cargo run -- -vv --log-format pretty install $vm_ip ./test-vm/test-key.ed25519
# start the API server with postgres
cargo run -- serve --database-url postgres://localhost/installer
# start the API server with OTLP traces sent to a local Jaeger instance
cargo run -- --otlp-endpoint http://localhost:4317 serve --database-url postgres://localhost/installer

Taskfile

This repository uses a Taskfile.

  • Use task --list to discover tasks.
  • Use task ci for the local CI-equivalent checks (lint and test).
  • Use task --dry <task-name> to validate the plan before execution.

Keep machine-local overrides in Taskfile.yml and commit updates to Taskfile.dist.yaml.

Docker Compose

Start the supporting Postgres and Jaeger services from docker-compose.yml:

# start the services
task stack:up
# you can overwrite for example the password
task stack:up POSTGRES_PASSWORD=hunter2
# stop the services
task stack:down
# stop the services and/or delete their data
task stack:reset

Jaeger dashboard: http://localhost:16686

The Postgres container uses POSTGRES_DB, POSTGRES_USER, and POSTGRES_PASSWORD, defaulting to postgres://monkey:wrench@localhost/monkeywrench if not set.

Contributing

Before opening a PR, run task ci. task fix can help you with formatting and simple problems.

Useful development tasks:

  • task stack:up / task stack:down
  • task run:serve
  • task vm:build / task vm:boot

vm test image

We build a Debian image for testing with mkosi.

# build the image and generate keys for testing
task vm:build
# boot the image in a container
task vm:boot

If the container does not receive an IP or the veth interface is down (ip addr inside the container), start sytemd-networkd on the host.

# install k3s in the test vm container
cargo run -- -vv --log-format pretty install $vm_ip ./test-vm/test-key.ed25519