Sign inSign up

nkanyezisolutions/blanketopsd

By nkanyezisolutions

โ€ขUpdated 8 months ago

Image
0

1.8K

nkanyezisolutions/blanketopsd repository overview

โ ๐Ÿณ BlanketOpsD โ€” Docker Support

BlanketOpsD supports two Docker execution modes, depending on whether you want:

  • a native privileged Linux daemon, or
  • a full gokrazy OS virtual machine via QEMU.

This runs the real blanketd node agent directly inside Docker with access to the host Linux kernel networking stack.

This is the same mode used for Kubernetes DaemonSets.

โ โœ… Requirements
  • Linux host
  • Docker
  • wireguard-tools on the host (for key generation)
  • Root / sudo
โ ๐Ÿ”ง Build

Using the daemon runtime Dockerfile:

docker build -t blanketopsd:daemon -f Dockerfile.daemon .

This image includes:

  • blanketd
  • blanketctl
  • iproute2
  • wireguard-tools
โ ๐Ÿ”‘ Create WireGuard Key (Host)
sudo mkdir -p /etc/blanketd
sudo chmod 755 /etc/blanketd
wg genkey | sudo tee /etc/blanketd/wg0.key > /dev/null
sudo chmod 600 /etc/blanketd/wg0.key
โ โ–ถ๏ธ Run (Privileged + Host Network)
docker run -d --name blanketd-test \
 --privileged \
 --network host \
 -v /etc/blanketd:/etc/blanketd:ro \
 blanketopsd:daemon
โ โœ… This mode:
โ ๐Ÿ” Verify
./dist/blanketctl status
./dist/blanketctl list-interfaces
โ Expected:
ready: true
bridges, heartbeat, wireguard = running
wg0 visible in ip a
โ ๐Ÿงน Stop & Cleanup
docker stop blanketd-test
docker rm blanketd-test
sudo ip link delete wg0 2>/dev/null || true
for br in br-basic br-fz-priv br-fz-pub br-wg-priv br-wg-pub; do
sudo ip link delete $br 2>/dev/null || true
done

โ 2. OS Mode โ€” Run FULL gokrazy Inside Docker (via QEMU)

This boots a real gokrazy Linux OS inside a virtual machine running in Docker.

This is used for:

  • Appliance testing
  • Immutable OS validation
  • CI virtualization
โ ๐Ÿ”ง Build
docker build -t blanketopsd-gokrazy -f Dockerfile.gokrazy .
โ โ–ถ๏ธ Run gokrazy VM
docker run --rm -it -p 8080:8080 blanketopsd-gokrazy

Then open:

๐Ÿ‘‰ http://localhost:8080

Youโ€™ll get:

  • gokrazy web dashboard
  • running services (init, blanketd, blanketctl)
  • logs
  • update endpoint

โ 3. Docker Compose (Daemon + gokrazy VM Together)

Start everything:

docker compose up --build
Service NamePort(s)Description
blanketopsd9000Native privileged Linux daemon runtime running as a Kubernetes DaemonSet
gokrazy-vm8080Full gokrazy OS booted via QEMU (VM-in-Docker for edge & simulation use)
โ โœ… Native daemon image
docker buildx build --platform linux/amd64,linux/arm64 --push \
 -t blanketops/blanketopsd:latest \
 -f Dockerfile.daemon .
โ โœ… gokrazy OS image
docker buildx build --platform linux/amd64 --push \
 -f Dockerfile.gokrazy \
 -t blanketops/blanketopsd-os:latest .
โ ๐Ÿง  Important Design Notes
  • โœ… BlanketOpsD is Linux-kernel native
  • โœ… Works in:
    • Docker (privileged)
    • Kubernetes (DaemonSet)
    • Bare metal
    • gokrazy
โ โŒ Does not run on Windows kernel directly
โ โœ… Runs perfectly on:
  • AKS
  • EKS
  • GKE
  • (because all nodes run Linux internally)

Tag summary

Content type

Image

Digest

sha256:002432b5eโ€ฆ

Size

182.6 MB

Last updated

8 months ago

docker pull nkanyezisolutions/blanketopsd