Johannes Kastl
ojkastl_buildservice
Involved Projects and Packages
Helm is a tool for managing Kubernetes charts. Charts are packages of pre-configured Kubernetes resources.
Kubetui is a terminal user interface (TUI) tool designed for monitoring Kubernetes resources.
It provides an easy-to-use interface for developers and operators to access important information about their applications and infrastructure.
A toolkit for building secure, portable and lean operating systems for containers
LXC is the well-known and heavily tested low-level Linux container runtime.
LXCFS is a small FUSE filesystem written with the intention of making Linux containers feel more like a virtual machine. It started as a side-project of LXC but is useable by any runtime.
Features
- Pull-through cache for _any_ registry, not just docker.io
- This includes private, authenticated registries. **This means that you can create an unauthenticated mirror of a private registry and expose it to the Internet. Easily. Don't do that.**
- Two storage back-ends
- S3
- Local filesystem
- Small footprint; in my test system, the official `registry` uses approximately 130 MiB of memory to mirror docker.io; five replicas of `oci-registry` combined use approximately 60 MiB to mirror everything in [example.yaml](example.yaml), plus one private registry. CPU is negligible for both.
Client interface for the registry API. This includes regctl for a command line interface to manage registries.
youki is an implementation of the OCI runtime-spec in Rust, similar to runc.
Here is why we are writing a new container runtime in Rust.
* Rust is one of the best languages to implement the oci-runtime spec. Many very nice container tools are currently written in Go. However, the container runtime requires the use of system calls, which requires a bit of special handling when implemented in Go. This is too tricky (e.g. namespaces(7), fork(2)); with Rust, it's not that tricky. And, unlike in C, Rust provides the benefit of memory safety. While Rust is not yet a major player in the container field, it has the potential to contribute a lot: something this project attempts to exemplify.
* youki has the potential to be faster and use less memory than runc, and therefore work in environments with tight memory usage requirements. Here is a simple benchmark of a container from creation to deletion.
Runtime Time (mean ± σ) Range (min … max)
youki 198.4 ms ± 52.1 ms 97.2 ms … 296.1 ms
runc 352.3 ms ± 53.3 ms 248.3 ms … 772.2 ms
crun 153.5 ms ± 21.6 ms 80.9 ms … 196.6 ms
* I have fun implementing this. In fact, this may be the most important.
This is the factory development project for Vagrant
This plugin allows obtaining a public IP address of a guest machine.
This uses a fork with small adjustments to make this work with up-to-date ruby and bundler versions.
https://github.com/johanneskastl/vagrant-address
This is a Vagrant plugin that adds a Libvirt provider to Vagrant, allowing
Vagrant to control and provision machines via the Libvirt toolkit.
Tools for VMware
The CLI is designed to be a user friendly CLI alternative to the GUI and well suited for automation tasks. It also acts as a test harness for the govmomi APIs and provides working examples of how to use the APIs.
open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools. They are a set of guest operating system virtualization components that enhance performance and user experience of virtual machines. As virtualization technology rapidly becomes mainstream, each virtualization solution provider implements their own set of tools and utilities to supplement the guest virtual machine. However, most of the implementations are proprietary and are tied to a specific virtualization platform.
With the Open Virtual Machine Tools project, we are hoping to solve this and other related problems. The tools are currently composed of kernel modules for Linux and user-space programs for all VMware supported Unix-like guest operating systems. They provide several useful functions like:
* File transfer between a host and guest
* Improved memory management and network performance under virtualization
* General mechanisms and protocols for communication between host and guests and from guest to guest
A cross-platform Text Expander written in Rust.