Johannes Kastl's avatar

Johannes Kastl

ojkastl_buildservice

Involved Projects and Packages

Diun is a CLI application written in Go and delivered as a single executable (and a Docker image) to receive notifications when a Docker image is updated on a Docker registry.

Docker Compose is a tool for running multi-container applications on Docker defined using the Compose file format. A Compose file is used to define how the one or more containers that make up your application are configured. Once you have a Compose file, you can create and start your application with a single command: docker compose up.
About update and backward compatibility

Docker Compose V2 is a major version bump release of Docker Compose. It has been completely rewritten from scratch in Golang (V1 was in Python). The installation instructions for Compose V2 differ from V1. V2 is not a standalone binary anymore, and installation scripts will have to be adjusted. Some commands are different.

For a smooth transition from legacy docker-compose 1.xx, please consider installing compose-switch to translate docker-compose ... commands into Compose V2's docker compose .... . Also check V2's --compatibility flag.

Compose Switch is a replacement to the Compose V1 docker-compose (python) executable. It translates the command line into Compose V2 docker compose then run the latter.

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

Maintainer Bugowner

LXC is the well-known and heavily tested low-level Linux container runtime.

Maintainer Bugowner

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

openSUSE Build Service is sponsored by