Skip to content

equinor/karsk

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

About

A tool to build verifiable releases of an application, facilitating easy switching between them

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Contributors

Languages