Skip to content

Latest commit

 

History

History
47 lines (35 loc) · 1.38 KB

File metadata and controls

47 lines (35 loc) · 1.38 KB

Karsk

Karsk (pronounced kask) is a Norwegian cocktail from Trøndelag county mixing coffee with moonshine. It is also a tool for deploying software on our NFS-backed Linux cluster.

Karsk solves the following problems for us:

  1. Continuous upgrades: Users reliably access the latest versions of software without needing to update anything themselves.
  2. User-controlled versioning: Each deploy persists on disk. Users can select any existing version anytime.
  3. Simple rollbacks: Because releases are symbolic links, rollbacks are quick and painless.

Installing

Karsk is written in Python and requires uv and some container engine. Currently, only Podman is supported, but Docker may work as well.

To get started, clone this repository and run uv sync to get the karsk executable.

Using

See examples directory for examples. Use karsk --help to view documentation.

Testing

This project uses pytest for tests, mypy for type-checking and ruff for linting and formatting.

# Run tests
uv run pytest tests

# Typecheck (note: we don't typecheck test code)
uv run mypy --strict src

# Lint and format
uv run ruff format
uv run ruff check --fix