This page lists every platform contract: what it is, its type, where it lives in Git, how it’s enforced, and what breaks if you violate it.

Contract flow overview

How configuration sources flow through the platform to enforce contracts:

Platform Contracts Flow

Platform Contracts Reference

ContractTypeLives InEnforcementFailure Mode
GitOps SourceAPI/configconfig.toml [git], Taskfile.yaml, ApplicationSetsObserved via ArgoCD UIWrong repo/branch → no sync
Labels & MetadataData schemaKyverno enforce-namespace-labels, require-component-labelsKyverno (namespace: enforce; components: audit)Cost attribution breaks; policies won’t match
Prometheus SelectionLabel-based ingestserviceMonitorSelector = prometheus=kube-prometheusPrometheus Operator selectorsServiceMonitor without label → never scraped
Grafana DashboardsConfig discoveryGrafana sidecar dashboards.label = grafana_dashboardSidecar importerConfigMap without label → not visible in UI
Gateway RoutesHostname→ServiceHTTPRoutes (IT/gateway/httproutes/*), DNS_SUFFIXGateway API controllerService renames break routes
Secrets FlowAccess/data policyExternalSecret manifests; creationPolicy: MergeESO controller; optional KyvernoWrong path → stale secrets; no Merge → overwrite
Priority & SchedulingOperational contractIT/priorityclasses/; coverage scriptCI check script; optional KyvernoCritical planes preempted under pressure
Namespace GovernanceOperational guardrailK8s/*/governance/{limitrange,resourcequota}.yamlKubernetes admissionNoisy neighbors; unbounded resources
Folder → ApplicationStructural conventionK8s/*/applicationset-*.yamlArgoCD ApplicationSet controllerWrong folder → wrong namespace/project
CRDs FirstInstallation orderTask/bootstrap.yaml it:apply-crdsTasks execute in orderCRs rejected (no CRD)
Helm RepositoriesDependency mappingIT/argocd/values.yamlconfigs.repositoriesArgoCD chart lookupSync failures “chart not found”
Admin CredentialsSecurity contractconfig.toml [passwords], vault-generate.sh, ExternalSecretESO + VaultWeak defaults; race avoided by Merge
Observability RulesBehavior contractK8s/observability/slo/*.yaml (Pyrra)Pyrra → PrometheusRule → AlertmanagerWrong metrics/labels → SLOs don’t compute
EventingEvent schema + routingK8s/events/* (sources, sensors, triggers)Argo Events controllersWebhooks misrouted; triggers not firing

Contract meta checklist

  • Validations: Scripts/validate-consistency.sh (labels, priority coverage, deprecated APIs)
  • Profiles/Fuses: config.toml [fuses] toggle stacks and prod hardening
  • Cluster name: config.toml [cluster] name used by k3d and Cilium

Keep this page updated when introducing new stacks or toggles. Every new capability needs an explicit, documented contract.