boss

command module
v0.0.0-...-34cf9b4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 6, 2018 License: MIT Imports: 51 Imported by: 0

README

boss

ross

This is my tool, built for me, to run containers on my own infra. Posting the code publicly if others can find inspiration from it and to see how they can use containerd to build the container platform that they want. It's single node right now, no schedulers. You manage it on the node.

Ideas

  • you should be able to update container resources without restarting a container
  • you should be able to update the image without creating a new container
  • you should be able to rollback to a previous container state
  • containers should be able to migrate across nodes, live or otherwise, and keep all their data
  • services are automatically registered and found via DNS
  • don't bother me with fancy graphs and metrics, just alert me when something's wrong
  • logs on disk suck, apps should send to things like sentry when they can, else go to system logger
  • KISS

Bits and pieces

  • runtime: containerd
  • agent: boss agent for restarting containers, CNI networking, and registering with consul
  • cli: boss

I use macvlan so all containers have private IPs on my network. This makes DNS and consul a good fit.

That's about it.

Configuration is handled via toml:

id = "timescale"
image = "docker.io/timescale/timescaledb:latest-pg10"
env = [
	"POSTGRES_PASSWORD=somethings",
]
network = "cni"

[[mounts]]
	type = "bind"
	source = "/containers/volumes/timescale"
	destination = "/var/lib/postgresql/data"
	options = ["rbind", "rw"]

[resources]
	memory = 24000
	cpu = 7.0

[gpus]
	devices = [0]
	capbilities = ["utility"]

[services]
	[services.postgres]
		port = 5432
		labels = ["prod"]

Documentation

Overview

stole from buildkit, tonis said it was ok

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL