Home
Softono

Skate

Open source Apache-2.0 Rust
243
Stars
7
Forks
21
Issues
1
Watchers
2 months
Last Commit

 About Skate

Low resource, no daemon, kubernetes manifest compatible container platform

Platforms

Web Self-hosted Kubernetes

Languages

Rust

Need Help Installing Skate?

We provide expert installation service for this software. Our team will install, configure, and secure Skate on your server. plans start at just $30.

Skate

Mini-paas for deploying kubernetes manifests.

Simpler, daemonless & small resource footprint.

Docs -> skateco.github.io

License Discord

  • 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 server linux distros:

  • Ubuntu 24.04 (x86_64, aarch64)

  • Fedora 42,43 (x86_64, aarch64)

  • Fedora CoreOS stable (x86_64, aarch64)

    You need to first rebase using the ostree image ghcr.io/skateco/fcos-skate:

    sudo rpm-ostree rebase --reboot ostree-unverified-registry:ghcr.io/skateco/fcos-skate
    

Supported client os: macOs (aarch64), Linux (x86_64, aarch64)

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.

Or leeroy jenkins it:

curl -sL https://raw.githubusercontent.com/skateco/skate/refs/heads/main/hack/install-skate.sh | bash

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

#add following to ~/.profile
PATH="${PATH}:/usr/local/Cellar/x86_64-unknown-linux-gnu/13.3.0.reinstall/bin/"
PATH="${PATH}:/usr/local/Cellar/aarch64-unknown-linux-gnu/13.3.0.reinstall/bin/"
# or whatever path brew puts the binaries in

make amd64
## or
make aarch64

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

make amd64-cross
## or
make aarch64-cross

Note: you may need to run this to get cross to work, (issue):

docker run --privileged --rm tonistiigi/binfmt --install amd64

Ubuntu

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