Guidepost is a lightweight developer tool for surfacing useful metadata about apps running in Kubernetes. It exposes links to logs, dashboards, CI pipelines, docs, and more — helping developers quickly orient themselves without digging through documentation.
Guidepost provides a simple way to:
- Register apps and their metadata within etcd via the
GuidepostCR. - Links stored in a
Guidepostare dynamically rendered, and base URLs are defined through aGuidepostLinkTemplateCR.
Each app gets a single JSON file (e.g., guidepost-metadata/my-app.json):
{
"name": "my-app",
"repo": "https://github.com/my-org/my-app",
"links": {
"logs": "/query?service=my-app",
"dashboard": "/d/my-app",
"docs": "/wiki/my-app"
},
"owner": "my-team@example.com"
}The base URLs for logs, dashboards, docs, etc., are defined on the server side to reduce duplication.
GET /apps– List all known appsGET /apps/:name– Get metadata for a specific appPOST /apps/:name/sync– Force metadata reload from S3 (rate limited)
❗Note: We use the term "apps" instead of "services" to keep things open-ended — any workload exposing functionality can be registered.
guidepost info my-app # Show metadata for an app
guidepost get logs my-app # Get logs link for an app
guidepost get dashboard my-app # Get dashboard link
guidepost sync my-app # Trigger a sync from S3- Go 1.21+
- Access to an S3 bucket for metadata (or local filesystem for dev/test)
- Kubernetes (for deploying the server and using RBAC with the CLI)
- Load metadata from S3
- Cache in SQLite
- Serve HTTP API
- CLI with
info,get, andsynccommands - Support for local filesystem as metadata source
- Rate limiting for manual syncs
- JSON schema validation
- Templated base URLs for link rendering
MIT
This project is in early development. If you're interested in using or contributing to Guidepost, feel free to open an issue or start a discussion.
