kollect

module
v0.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 5, 2026 License: MIT

README

kollect

Generic Kubernetes inventory export operator (kollect.dev/v1alpha1).

Platform and application teams need stakeholder-visible inventory without bespoke collectors per resource type: what is deployed, where, and which attributes matter for audits, cost, or developer portals. Batch scripts and hardcoded schemas do not scale across clusters and CRDs.

kollect watches arbitrary API resources, extracts attributes with CEL or JSONPath, aggregates results, and exports to pluggable sinks (Git, GitLab, S3, GCS, Postgres, Kafka). Exporting cluster state to Git gives auditable, diffable snapshots that developer portals and compliance workflows can consume alongside live API access — so stakeholders without kubectl or repo access still see versioned, traceable system state.

Quick start

Prerequisites: Docker, kind, kubectl, Go, and Task.

kind create cluster --name kollect-dev
task build
task install:crds
task docker:build
kind load docker-image kollect-controller-manager:dev --name kollect-dev
task deploy:operator
kubectl apply -k config/samples/

Full step-by-step guide with verification and maturity notes: docs/QUICKSTART.md

Documentation

Guide Description
Quick start Install on kind, apply samples
Development Build, test, codegen, lint
Architecture CRD model and reconciliation
Example walkthrough Profile → sink → target → inventory
ADRs Architecture decisions

Preview docs locally: mkdocs serve (see docs/DEVELOPMENT.md).

Project layout

Path Purpose
api/v1alpha1/ CRD Go types (KollectProfile, KollectSink, KollectTarget, KollectInventory)
internal/controller/ Reconcilers for KollectTarget and KollectInventory
config/crd/bases/ Generated CRD YAML
config/samples/ Example CR instances
hack/verify.sh Codegen drift gate (also task verify)

Static config kinds (KollectProfile, KollectSink) are validated via the API; reconciled kinds (KollectTarget, KollectInventory) run controllers. See GUIDELINES.md for engineering rules and docs/adr/ for architecture decisions.

Contributing

See CONTRIBUTING.md. Run task lint, task test, and task verify before opening a PR.

Security

Report vulnerabilities privately — see SECURITY.md.

License

Copyright (c) 2026 Konrad Heimel. Licensed under the MIT License.

Directories

Path Synopsis
api
v1alpha1
Package v1alpha1 contains API Schema definitions for the v1alpha1 API group.
Package v1alpha1 contains API Schema definitions for the v1alpha1 API group.
cmd
kollect command
internal
errors
Package errors provides typed reconcile error classes (ADR-0020).
Package errors provides typed reconcile error classes (ADR-0020).
hub
remotecredentials
Package remotecredentials loads Istio-style remote kubeconfig secrets (ADR-0028).
Package remotecredentials loads Istio-style remote kubeconfig secrets (ADR-0028).
transport
Package transport defines a lean publish/subscribe abstraction for inventory change notifications.
Package transport defines a lean publish/subscribe abstraction for inventory change notifications.
test

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL