Skip to content
/ skate Public

Low resource, no daemon, kubernetes manifest compatible mini-paas.

License

Notifications You must be signed in to change notification settings

skateco/skate

Repository files navigation

Skate

Mini-paas for deploying kubernetes manifests.

Simpler, daemonless & small resource footprint.

Docs -> skateco.github.io

License

  • Service discovery - DNS based service discovery.
  • Multi-host network - Designed to run on several nodes.
  • Kubernetes manifests - Deploy using the same syntax you use in your day job, without the burden of running k8s yourself.
  • Small resource footprint - Skate is written in rust, runs no daemon of it’s own and uses minimal resources.
  • Https by default - Ingress resources get LetsEncrypt TLS by default.

Born out of the frustration of having to learn yet another deployment configuration file syntax.

Skate runs as a CLI on your machine and talks to a small binary on each host over ssh.

Leverages podman kube play to run pod manifests.

Supported Distro: Ubuntu 24.04 Supported architectures: amd64, arm64

You can deploy:

  • Pods
  • Deployments
  • DaemonSets
  • CronJobs
  • Ingress
  • Secrets
  • Services

An nginx ingress runs on port 80 and 443 on all nodes. Lets-encrypt provides the certificates.

Getting Started

See the quickstart for a guide on how to get started.

Built on

  • Podman
  • Openresty
  • Coredns
  • LVS
  • Keepalived
  • Systemd

Supported manifest attributes

For pods (which affects deployments, daemonsets and cronjobs), see podman kube play's documentation

For other resources, I'll add some documentation soon. Check ./hack/ for examples of what's been tested.

Developing

Mac

Native:

Install the targets:

rustup target add x86_64-unknown-linux-gnu
rustup target add aarch64-unknown-linux-gnu

Install the cross toolchains:

brew tap messense/macos-cross-toolchains
# install x86_64-unknown-linux-gnu toolchain
brew install x86_64-unknown-linux-gnu
# install aarch64-unknown-linux-gnu toolchain
brew install aarch64-unknown-linux-gnu
make amd64
## or
make aarch64

Or just use https://github.com/cross-rs/cross

make amd64-cross
## or
make aarch64-cross

Ubuntu

# multipass image doesn't have much
sudo apt-get install -y gcc make libssl-dev pkg-config