Podinfo is a Go microservice template for Kubernetes that demonstrates best practices for running containerized applications on the platform.
The tool addresses the need for a reference implementation that shows how to properly instrument, configure, and operate a microservice in Kubernetes environments. It provides a small web application with comprehensive health checks, graceful shutdown handling, Prometheus and OpenTelemetry instrumentation, structured logging, and support for secrets and configmaps watching. The application includes fault injection capabilities to simulate failures, allowing teams to test how their systems respond to unhealthy replicas. It exposes a REST API with endpoints for health probing, metrics collection, status simulation, JWT token validation, Redis caching, file storage, and WebSocket communication, alongside a gRPC interface.
Podinfo is designed for developers and teams learning Kubernetes best practices, testing infrastructure components, or validating deployment tooling. It works well as a test subject for GitOps tools, service mesh implementations, and Kubernetes operators. The project is particularly suited for end-to-end testing scenarios and workshops because it provides realistic microservice behavior without the complexity of a production application. It ships with deployment configurations for Timoni, Helm, and Kustomize, making it easy to test different package managers and deployment strategies.
The project maintains active development with regular updates to dependencies and tooling. The codebase demonstrates attention to supply chain security through container image signing with Sigstore cosign, SBOM generation, and SLSA provenance attestation. The project includes comprehensive testing infrastructure using Kubernetes Kind and Helm for end-to-end validation. Multi-architecture container images are built and published automatically, ensuring the tool works across different processor architectures. Security scanning with govulncheck is integrated into the development workflow to catch vulnerabilities early.