Query configuration inheritance across your fleet.
You have 500 deployments with inheritance: base → prod → prod-eu.
When something breaks, you need to know:
- "Why does prod-eu have replicas=5?" (which layer set it?)
- "If I change base, what's affected downstream?"
Git has files. Kustomize has overlays. Neither tracks inheritance at runtime.
# Show inheritance chain
./config-lineage show prod-eu/trade-service
# Blame a specific value
./config-lineage blame prod-eu/trade-service spec.replicas
# Show downstream impact
./config-lineage impact base/trade-service
# Diff two units
./config-lineage diff base/trade-service prod-eu/trade-serviceDisplay the inheritance chain for a unit:
$ ./config-lineage show prod-eu/trade-service
Lineage for prod-eu/trade-service:
prod-eu/trade-service (this unit)
replicas: 5 (overrides 3 from prod/trade-service)
└── prod/trade-service (upstream)
replicas: 3 (overrides 1 from base/trade-service)
└── base/trade-service (upstream)
replicas: 1Show where a specific value came from:
$ ./config-lineage blame prod-eu/trade-service spec.replicas
spec.replicas = 5
Set in: prod-eu/trade-service
Previous: 3
Lineage:
→ prod-eu/trade-service: 5
prod/trade-service: 3
base/trade-service: 1Show what downstream units would be affected by changes:
$ ./config-lineage impact base/trade-service
Downstream units affected by changes to base/trade-service:
- dev/trade-service
- staging/trade-service
- prod/trade-service
- prod-us/trade-service
- prod-eu/trade-service
- prod-asia/trade-service
Total: 6 downstream unitsCompare two units:
$ ./config-lineage diff base/trade-service prod-eu/trade-service
Differences from base/trade-service to prod-eu/trade-service:
spec.replicas: 1 → 5
metadata.labels.region: <nil> → euexport CUB_TOKEN=$(cub auth get-token)go build -o config-lineage .ConfigHub units have explicit upstream/downstream relationships. When you create a unit with --upstream-space and --upstream-unit, ConfigHub tracks this relationship.
config-lineage walks these relationships to:
- Build the inheritance chain (show, blame)
- Find all downstream dependents (impact)
- Compare effective values (diff)
This is read-only - it queries ConfigHub but doesn't modify anything.
| Variable | Description | Default |
|---|---|---|
CUB_TOKEN |
ConfigHub API token | required |
CUB_API_URL |
ConfigHub API URL | https://hub.confighub.com/api |