• Stars
    star
    162
  • Rank 232,284 (Top 5 %)
  • Language
    Rust
  • License
    MIT License
  • Created over 3 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An example of a Kubernetes operator implemented in Rust

Rust Kubernetes operator example

Rust

A Kubernetes operator built on top of kube-rs project. There is an explanatory article available.

Steps to run on Linux:

  1. Install Rust
  2. Install Kubernetes, K3S.io is an excellent choice, installed simply with curl -sfL https://get.k3s.io | sh -. Make sure to sudo chown $USER /etc/rancher/k3s/k3s.yaml if you're accessing the Kubernetes cluster using the kubeconfig at /etc/rancher/k3s/k3s.yaml as non-root user. Also, export KUBECONFIG=/etc/rancher/k3s/k3s.yaml, so the operator can find the kubeconfig.
  3. Use kubectl apply -f echoes.example.com.yaml to create the CustomResourceDefinition inside Kubernetes.
  4. Build the project with cargo build. If the build fails, make sure libssl-dev is available.
  5. Run the operator using cargo run. It will run outside of the Kubernetes cluster and connect to the Kubernetes REST API using the account inside the KUBECONFIG automatically.

Finally, a custom Echo resource can be created with kubectl apply -f echo-example.yaml. A new deployment of two pods with Echo REST API service will be created. This can be checked with the kubectl get pods or kubectl get deployments command.

Usage showcase