The platform front-loads tagging so you can attribute resource usage—even on a laptop demo—before expanding to cloud cost tools.

Tagging Stack

LayerMechanismPurpose
Git defaultsnamespace.yaml + kustomization.yamlBake canonical labels into every resource.
Kyverno enforcementPolicies/rules/baseline/*.yamlPatch/deny resources missing required tags.
Observability labelsPrometheus/Fluent-bit relabel configsPropagate tags into metrics/logs for dashboards.
Export targetsFuture cloud billing or KubecostReuse the same labels for dollar allocation.

Label to FinOps Mapping

LabelQuestion AnsweredExample Use
ownerWho runs this stack?Show per-team spend charts.
business-unitWhich budget funds it?Tie infra usage to BU budgets.
environmentLifecycle stage?Separate demo vs prod noise.
app.kubernetes.io/componentWhat workload type?Compare cost across GitOps, observability, CI/CD.
app.kubernetes.io/part-ofWhich platform?Filter multi-tenant clusters.

Flow from Labels to Dashboards

FinOps Tags Flow

Source: finops-tags-flow.d2

Best Practices

  1. Validate locally using Scripts/validate-consistency.sh – it checks for missing labels.
  2. Propagate to external tools by mapping labels to e.g., kubecost.cloud.google.com/team via relabeling if you export metrics.
  3. Document exceptions – if a workload truly cannot carry certain labels, add a Kyverno exclude block and explain it in the PR.