As a backend project, stefanprodan/podinfo has picked up 6.0k stars on GitHub (Go). Go microservice template for Kubernetes
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Podinfo is a tiny web application made with Go that showcases best practices of running microservices in Kubernetes.
Podinfo is used by CNCF projects like Flux and Flagger
for end-to-end testing and workshops.
Specifications:
Health checks (readiness and liveness)
Graceful shutdown on interrupt signals
File watcher for secrets and configmaps
Instrumented with Prometheus and Open Telemetry
Structured logging with zap
12-factor app with viper
Fault injection (random errors and latency)
Swagger docs
Timoni, Helm and Kustomize installers
End-to-End testing with Kubernetes Kind and Helm
Multi-arch container image with Docker buildx and GitHub Actions
Container image signing with Sigstore cosign
SBOMs and SLSA Provenance embedded in the container image
CVE scanning with govulncheck
Web API:
GET / prints runtime information
GET /version prints podinfo version and git commit hash
GET /metrics return HTTP requests duration and Go runtime metrics
GET /healthz used by Kubernetes liveness probe
GET /readyz used by Kubernetes readiness probe
POST /readyz/enable signals the Kubernetes LB that this instance is ready to receive traffic
POST /readyz/disable signals the Kubernetes LB to stop sending requests to this instance
POST /fault_injection/enable makes this instance respond with HTTP 500 to all application endpoints (probes, metrics, pprof and the /fault_injection/* control endpoints stay healthy) — useful for testing client-side circuit breakers / outlier detection against a single "sick" replica
POST /fault_injection/disable restores normal responses
GET /fault_injection/status returns the current fault injection state (enabled or disabled)
GET /status/{code} returns the status code
GET /panic crashes the process with exit code 255
POST /echo forwards the call to the backend service and echos the posted content
GET /env returns the environment variables as a JSON array
GET /headers returns a JSON with the request HTTP headers
GET /delay/{seconds} waits for the specified period
POST /token issues a JWT token valid for one minute JWT=$(curl -sd 'anon' podinfo:9898/token | jq -r .token)
GET /token/validate validates the JWT token curl -H "Authorization: Bearer $JWT" podinfo:9898/token/validate
GET /configs returns a JSON with configmaps and/or secrets mounted in the config volume
POST/PUT /cache/{key} saves the posted content to Redis
GET /cache/{key} returns the content from Redis if the key exists
DELETE /cache/{key} deletes the key from Redis if exists
POST /store writes the posted content to disk at /data/hash and returns the SHA1 hash of the content
GET /store/{hash} returns the content of the file /data/hash if exists
GET /ws/echo echos content via websockets podcli ws ws://localhost:9898/ws/echo
GET /chunked/{seconds} uses transfer-encoding type chunked to give a partial response and then waits for the specified period
GET /swagger.json returns the API Swagger docs, used for Linkerd service profiling and Gloo routes discovery
gRPC API:
/grpc.health.v1.Health/Check health checking
/grpc.EchoService/Echo echos the received content
/grpc.VersionService/Version returns podinfo version and Git commit hash
/grpc.DelayService/Delay returns a successful response after the given seconds in the body of gRPC request
/grpc.EnvService/Env returns environment variables as a JSON array
/grpc.HeaderService/Header returns the headers present in the gRPC request. Any custom header can also be given as a part of request and that can be returned using this API
/grpc.InfoService/Info returns the runtime information
/grpc.PanicService/Panic crashes the process with gRPC status code as '1 CANCELLED'
/grpc.StatusService/Status returns the gRPC Status code given in the request body
/grpc.TokenService/TokenGenerate issues a JWT token valid for one minute
/grpc.TokenService/TokenValidate validates the JWT token
Web UI:
To access the Swagger UI open <podinfo-host>/swagger/index.html in a browser.
Guides
Getting started with Timoni
Getting started with Flux
Progressive Deliver with Flagger and Linkerd
Automated canary deployments with Kubernetes Gateway API
Install
To install Podinfo on Kubernetes the minimum required version is Kubernetes v1.23.
Based on the above definition, Flux will upgrade the release automatically
when a new version of podinfo is released. If the upgrade fails, Flux
can rollback
to the previous working version.
You can check what version is currently deployed with:
flux get helmreleases -n default
To delete podinfo's Helm repository and release from your cluster run:
If you wish to manage the lifecycle of your applications in a GitOps manner, check out
this workflow example
for multi-env deployments with Flux, Kustomize and Helm.
No homepage URL was recorded for stefanprodan/podinfo in TopGit's last sync. The README tab above frequently contains screenshots and demo links, or check the repository description on GitHub.
How active is development on stefanprodan/podinfo?
The most recent commit recorded on stefanprodan/podinfo was 20 days ago, based on the GitHub push timestamp. The repository has 1.9k forks — one of the better signals of community interest.
Is stefanprodan/podinfo open source?
Yes — stefanprodan/podinfo ships under the Apache-2.0 license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/stefanprodan/podinfo.
What license does stefanprodan/podinfo use?
stefanprodan/podinfo is released under the Apache-2.0 license. Always verify the LICENSE file directly on GitHub for the authoritative terms — license strings can be edited out of sync with a project's actual stance.
What topics is stefanprodan/podinfo associated with?
GitHub's repository topics for stefanprodan/podinfo: "cuelang", "e2e-testing", "gitops", "golang", "helm", "kubernetes", "kustomize", "microservice". TopGit's editorial category is Backend.
Where do I read more about stefanprodan/podinfo?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/stefanprodan/podinfo is the definitive source.
Read full README in the tab above.
Still deciding about podinfo?
One click hands the question to an AI along with this page — see what it says about podinfo.