1 unstable release

0.1.0 Dec 10, 2023

#41 in #prometheus

Download history 1251/week @ 2024-06-19 912/week @ 2024-06-26 1170/week @ 2024-07-03 1486/week @ 2024-07-10 1740/week @ 2024-07-17 1110/week @ 2024-07-24 1258/week @ 2024-07-31 939/week @ 2024-08-07 708/week @ 2024-08-14 1104/week @ 2024-08-21 1049/week @ 2024-08-28 1689/week @ 2024-09-04 802/week @ 2024-09-11 1157/week @ 2024-09-18 1391/week @ 2024-09-25 1043/week @ 2024-10-02

4,651 downloads per month
Used in 2 crates

Apache-2.0

13KB
211 lines

kubert

Rust Kubernetes runtime helpers. Based on kube-rs.

kubert

Crates.io Documentation License

Features

  • clap command-line interface support;
  • A basic admin server with /ready and /live probe endpoints;
  • Optional prometheus-client integration;
  • A default Kubernetes client;
  • Graceful shutdown on SIGTERM or SIGINT signals;
  • An HTTPS server (for admission controllers and API extensions) with certificate reloading;
  • A utility for maintaining an index derived from watching one or more Kubernetes resources types;
  • A requeue channel that supports deferring/rescheduling updates (i.e. in case a write fails);
  • And a Runtime type that ties it all together!

Why not kube-rs?

The kube crate is great! And in fact, kubert builds on kube's client and runtime modules. This crate, however, captures some of the repeated patterns we've encountered building controllers for Linkerd. It doesn't try to hide kube--though it does reduce boilerplate around initializing watches and caches (reflectors); and it expects you to schedule work via the tokio runtime.

Examples

This repository includes a simple example application that demonstrates how to use a kubert::Runtime.

Other examples include:

kubert-prometheus-process

The kubert-prometheus-process crate provides process metrics for prometheus-client. It has no dependencies on kubert, and can be used independently.

Status

This crate is still fairly experimental, though it's based on production code from Linkerd; and we plan to use it in Linkerd moving forward.

Dependencies

~1.1–10MB
~113K SLoC