Malutki

A tiny HTTP server used to validate HTTP traffic in testing scenarios.

About

This HTTP server is meant to be used in integration, E2E and manual testing scenarios to validate HTTP traffic routing. The initial use case for malutki was in fact to be deployed to Kubernetes Pods in order to validate that an ingress controller was properly routing HTTP traffic to those Pods, and to test service mesh observability.

This server provides testing APIs that can be used to test certain kinds of HTTP responses, including a /status/{code} endpoint which simply returns the HTTP status it is provided. This can be helpful when your tests require a specific response or when you’re testing tools that trace and observe HTTP traffic over a network (such as the observability features of a service mesh like Istio).

It is a core design goal of this project to ensure that the binary and container images for this tool are extremely small and portable. It is an eventual goal to build using TinyGo once the project supports net/http, so this tool intentionally uses minimal dependencies in preparation for that transition. Container images are built using distroless to minimize size.

Trivia: “malutki” means “tiny” in Polish.

Usage

Generally speaking you’ll use the container image for malutki, so one easy way to deploy it is as a Kubernetes Pod:

kubectl run malutki --image ghcr.io/shaneutt/malutki

TODO: more

GitHub

View Github