Join scheduler-effective cluster requests with owner/service/tenant. Host and cluster CPUs counted once. Residual millicores are not admission. T02–T05 remain waiting on Vergabe measurements.
664 lines
18 KiB
JSON
664 lines
18 KiB
JSON
{
|
|
"schema": "custodian.allocation-reconcile.v1",
|
|
"workplan_id": "CUST-WP-0071-T01",
|
|
"captured_at": "2026-09-14T09:45:22Z",
|
|
"cluster_observation_schema": "railiance.cluster-resource-observation.v1",
|
|
"count_host_and_cluster_cpus_once": true,
|
|
"host": {
|
|
"owner": "railiance-cluster",
|
|
"resource_id": "resource:hosteurope:railiance01",
|
|
"same_cpus_as_cluster": true,
|
|
"cluster_resource_id": "resource:railiance:reef-railiance:k3s"
|
|
},
|
|
"capacity_cpu_m": 4000,
|
|
"scheduled_request_cpu_m": 3985,
|
|
"pending_unscheduled_cpu_m": 25,
|
|
"residual_cpu_m": 15,
|
|
"not_a_scheduling_guarantee": true,
|
|
"workloads": [
|
|
{
|
|
"namespace": "knative-serving",
|
|
"workload": "knative-serving",
|
|
"pods": 4,
|
|
"cpu_request_m": 600,
|
|
"memory_request_bytes": 377487360,
|
|
"owner": "rail-kubernetes",
|
|
"service": "knative-serving",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "core-hub",
|
|
"workload": "rapp-core-hub",
|
|
"pods": 3,
|
|
"cpu_request_m": 200,
|
|
"memory_request_bytes": 939524096,
|
|
"owner": "core-hub",
|
|
"service": "core-hub",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "databases",
|
|
"workload": "forgejo-db",
|
|
"pods": 1,
|
|
"cpu_request_m": 200,
|
|
"memory_request_bytes": 536870912,
|
|
"owner": "rapp-postgres",
|
|
"service": "apps-pg",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "knative-serving",
|
|
"workload": "net-kourier-controller",
|
|
"pods": 1,
|
|
"cpu_request_m": 200,
|
|
"memory_request_bytes": 209715200,
|
|
"owner": "rail-kubernetes",
|
|
"service": "knative-serving",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "kourier-system",
|
|
"workload": "3scale-kourier-gateway",
|
|
"pods": 1,
|
|
"cpu_request_m": 200,
|
|
"memory_request_bytes": 209715200,
|
|
"owner": "rail-kubernetes",
|
|
"service": "kourier",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "sso",
|
|
"workload": "net-kingdom-sso-mfa",
|
|
"pods": 4,
|
|
"cpu_request_m": 150,
|
|
"memory_request_bytes": 268435456,
|
|
"owner": "net-kingdom",
|
|
"service": "keycape-authelia",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "mfa",
|
|
"workload": "net-kingdom-sso-mfa",
|
|
"pods": 1,
|
|
"cpu_request_m": 110,
|
|
"memory_request_bytes": 402653184,
|
|
"owner": "net-kingdom",
|
|
"service": "lldap-mfa",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "reuse",
|
|
"workload": "reuse-surface",
|
|
"pods": 2,
|
|
"cpu_request_m": 110,
|
|
"memory_request_bytes": 301989888,
|
|
"owner": "reuse-surface",
|
|
"service": "reuse-surface",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "state-hub",
|
|
"workload": "railiance-apps",
|
|
"pods": 2,
|
|
"cpu_request_m": 110,
|
|
"memory_request_bytes": 671088640,
|
|
"owner": "state-hub",
|
|
"service": "state-hub",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "flex-auth",
|
|
"workload": "flex-auth",
|
|
"pods": 5,
|
|
"cpu_request_m": 105,
|
|
"memory_request_bytes": 167772160,
|
|
"owner": "flex-auth",
|
|
"service": "flex-auth",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "activity-core",
|
|
"workload": "activity-core",
|
|
"pods": 10,
|
|
"cpu_request_m": 100,
|
|
"memory_request_bytes": 268435456,
|
|
"owner": "activity-core",
|
|
"service": "activity-core",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "cnpg-system",
|
|
"workload": "cloudnative-pg",
|
|
"pods": 1,
|
|
"cpu_request_m": 100,
|
|
"memory_request_bytes": 104857600,
|
|
"owner": "rapp-postgres",
|
|
"service": "cloudnative-pg",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "coulomb-social",
|
|
"workload": "coulomb-social",
|
|
"pods": 1,
|
|
"cpu_request_m": 100,
|
|
"memory_request_bytes": 268435456,
|
|
"owner": "coulomb-social",
|
|
"service": "coulomb-social",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "databases",
|
|
"workload": "apps-pg",
|
|
"pods": 1,
|
|
"cpu_request_m": 100,
|
|
"memory_request_bytes": 268435456,
|
|
"owner": "rapp-postgres",
|
|
"service": "apps-pg",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "databases",
|
|
"workload": "net-kingdom-pg",
|
|
"pods": 1,
|
|
"cpu_request_m": 100,
|
|
"memory_request_bytes": 268435456,
|
|
"owner": "rapp-postgres",
|
|
"service": "apps-pg",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "databases",
|
|
"workload": "platform-pg",
|
|
"pods": 1,
|
|
"cpu_request_m": 100,
|
|
"memory_request_bytes": 268435456,
|
|
"owner": "rapp-postgres",
|
|
"service": "apps-pg",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "databases",
|
|
"workload": "platform-pg-2",
|
|
"pods": 1,
|
|
"cpu_request_m": 100,
|
|
"memory_request_bytes": 268435456,
|
|
"owner": "rapp-postgres",
|
|
"service": "apps-pg",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "forgejo",
|
|
"workload": "gitea",
|
|
"pods": 1,
|
|
"cpu_request_m": 100,
|
|
"memory_request_bytes": 134217728,
|
|
"owner": "railiance-forge",
|
|
"service": "forgejo",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "kube-system",
|
|
"workload": "coredns-7bdb54f89",
|
|
"pods": 1,
|
|
"cpu_request_m": 100,
|
|
"memory_request_bytes": 73400320,
|
|
"owner": "railiance-cluster",
|
|
"service": "k3s-control-plane",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "kube-system",
|
|
"workload": "metrics-server-786d997795",
|
|
"pods": 1,
|
|
"cpu_request_m": 100,
|
|
"memory_request_bytes": 73400320,
|
|
"owner": "railiance-cluster",
|
|
"service": "k3s-control-plane",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "openbao",
|
|
"workload": "openbao",
|
|
"pods": 1,
|
|
"cpu_request_m": 100,
|
|
"memory_request_bytes": 268435456,
|
|
"owner": "railiance-platform",
|
|
"service": "openbao",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "telemetry",
|
|
"workload": "prometheus",
|
|
"pods": 1,
|
|
"cpu_request_m": 100,
|
|
"memory_request_bytes": 536870912,
|
|
"owner": "rapp-telemetry",
|
|
"service": "prometheus-grafana",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "user-engine",
|
|
"workload": "user-engine-pg",
|
|
"pods": 1,
|
|
"cpu_request_m": 100,
|
|
"memory_request_bytes": 268435456,
|
|
"owner": "user-engine",
|
|
"service": "user-engine",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "telemetry",
|
|
"workload": "grafana",
|
|
"pods": 1,
|
|
"cpu_request_m": 70,
|
|
"memory_request_bytes": 201326592,
|
|
"owner": "rapp-telemetry",
|
|
"service": "prometheus-grafana",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "vergabe-demo-company",
|
|
"workload": "vergabe-teilnahme",
|
|
"pods": 1,
|
|
"cpu_request_m": 60,
|
|
"memory_request_bytes": 268435456,
|
|
"owner": "railiance-apps",
|
|
"service": "vergabe-teilnahme",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "audit-core",
|
|
"workload": "audit-core",
|
|
"pods": 1,
|
|
"cpu_request_m": 50,
|
|
"memory_request_bytes": 67108864,
|
|
"owner": "audit-core",
|
|
"service": "audit-core",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "coulomb",
|
|
"workload": "ihp-railiance-probe",
|
|
"pods": 1,
|
|
"cpu_request_m": 50,
|
|
"memory_request_bytes": 134217728,
|
|
"owner": "unknown",
|
|
"service": "ihp-railiance-probe",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "issue-core",
|
|
"workload": "issue-core",
|
|
"pods": 1,
|
|
"cpu_request_m": 50,
|
|
"memory_request_bytes": 134217728,
|
|
"owner": "issue-core",
|
|
"service": "issue-core",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "platform-pg-drill",
|
|
"workload": "platform-pg-drill",
|
|
"pods": 1,
|
|
"cpu_request_m": 50,
|
|
"memory_request_bytes": 134217728,
|
|
"owner": "rapp-postgres",
|
|
"service": "platform-pg-drill",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "target-revenue",
|
|
"workload": "target-revenue",
|
|
"pods": 1,
|
|
"cpu_request_m": 50,
|
|
"memory_request_bytes": 268435456,
|
|
"owner": "target-revenue",
|
|
"service": "target-revenue",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "user-engine",
|
|
"workload": "user-engine",
|
|
"pods": 1,
|
|
"cpu_request_m": 50,
|
|
"memory_request_bytes": 67108864,
|
|
"owner": "user-engine",
|
|
"service": "user-engine",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "canned-prompts",
|
|
"workload": "canned-prompts",
|
|
"pods": 1,
|
|
"cpu_request_m": 25,
|
|
"memory_request_bytes": 100663296,
|
|
"owner": "canned-prompts",
|
|
"service": "canned-prompts",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "email-connect",
|
|
"workload": "email-connect",
|
|
"pods": 1,
|
|
"cpu_request_m": 25,
|
|
"memory_request_bytes": 67108864,
|
|
"owner": "email-connect",
|
|
"service": "email-connect",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "openbao",
|
|
"workload": "rapp-openbao",
|
|
"pods": 1,
|
|
"cpu_request_m": 25,
|
|
"memory_request_bytes": 33554432,
|
|
"owner": "railiance-platform",
|
|
"service": "openbao",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "rein-aharness",
|
|
"workload": "rein-aharness",
|
|
"pods": 1,
|
|
"cpu_request_m": 25,
|
|
"memory_request_bytes": 67108864,
|
|
"owner": "rein-aharness",
|
|
"service": "rein-aharness",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "sbom-nexus",
|
|
"workload": "sbom-nexus",
|
|
"pods": 1,
|
|
"cpu_request_m": 25,
|
|
"memory_request_bytes": 67108864,
|
|
"owner": "sbom-nexus",
|
|
"service": "sbom-nexus",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "telemetry",
|
|
"workload": "alertmanager",
|
|
"pods": 1,
|
|
"cpu_request_m": 25,
|
|
"memory_request_bytes": 67108864,
|
|
"owner": "rapp-telemetry",
|
|
"service": "prometheus-grafana",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "telemetry",
|
|
"workload": "kube-state-metrics",
|
|
"pods": 1,
|
|
"cpu_request_m": 25,
|
|
"memory_request_bytes": 67108864,
|
|
"owner": "rapp-telemetry",
|
|
"service": "prometheus-grafana",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "telemetry",
|
|
"workload": "rapp-telemetry",
|
|
"pods": 1,
|
|
"cpu_request_m": 25,
|
|
"memory_request_bytes": 134217728,
|
|
"owner": "rapp-telemetry",
|
|
"service": "prometheus-grafana",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "tenant-engine",
|
|
"workload": "tenant-engine",
|
|
"pods": 1,
|
|
"cpu_request_m": 25,
|
|
"memory_request_bytes": 50331648,
|
|
"owner": "tenant-engine",
|
|
"service": "tenant-engine",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "rapp-qonto-egress",
|
|
"workload": "qonto-egress-proxy",
|
|
"pods": 1,
|
|
"cpu_request_m": 20,
|
|
"memory_request_bytes": 67108864,
|
|
"owner": "rapp-qonto",
|
|
"service": "qonto-egress",
|
|
"tenant": "tenant:friendly:binky"
|
|
},
|
|
{
|
|
"namespace": "approval-engine",
|
|
"workload": "approval-engine",
|
|
"pods": 1,
|
|
"cpu_request_m": 10,
|
|
"memory_request_bytes": 67108864,
|
|
"owner": "approval-engine",
|
|
"service": "approval-engine",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "policy-nexus",
|
|
"workload": "policy-nexus",
|
|
"pods": 1,
|
|
"cpu_request_m": 10,
|
|
"memory_request_bytes": 33554432,
|
|
"owner": "policy-nexus",
|
|
"service": "policy-nexus",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "informed-decision",
|
|
"workload": "informed-decision",
|
|
"pods": 1,
|
|
"cpu_request_m": 5,
|
|
"memory_request_bytes": 67108864,
|
|
"owner": "informed-decision",
|
|
"service": "informed-decision",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "cert-manager",
|
|
"workload": "cainjector",
|
|
"pods": 1,
|
|
"cpu_request_m": 0,
|
|
"memory_request_bytes": 0,
|
|
"owner": "railiance-cluster",
|
|
"service": "cert-manager",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "cert-manager",
|
|
"workload": "cert-manager",
|
|
"pods": 1,
|
|
"cpu_request_m": 0,
|
|
"memory_request_bytes": 0,
|
|
"owner": "railiance-cluster",
|
|
"service": "cert-manager",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "cert-manager",
|
|
"workload": "webhook",
|
|
"pods": 1,
|
|
"cpu_request_m": 0,
|
|
"memory_request_bytes": 0,
|
|
"owner": "railiance-cluster",
|
|
"service": "cert-manager",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "databases",
|
|
"workload": "state-hub-db",
|
|
"pods": 1,
|
|
"cpu_request_m": 0,
|
|
"memory_request_bytes": 0,
|
|
"owner": "rapp-postgres",
|
|
"service": "apps-pg",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "external-secrets",
|
|
"workload": "external-secrets",
|
|
"pods": 1,
|
|
"cpu_request_m": 0,
|
|
"memory_request_bytes": 0,
|
|
"owner": "railiance-platform",
|
|
"service": "external-secrets",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "external-secrets",
|
|
"workload": "external-secrets-cert-controller",
|
|
"pods": 1,
|
|
"cpu_request_m": 0,
|
|
"memory_request_bytes": 0,
|
|
"owner": "railiance-platform",
|
|
"service": "external-secrets",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "external-secrets",
|
|
"workload": "external-secrets-webhook",
|
|
"pods": 1,
|
|
"cpu_request_m": 0,
|
|
"memory_request_bytes": 0,
|
|
"owner": "railiance-platform",
|
|
"service": "external-secrets",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "forgejo",
|
|
"workload": "forgejo-runner",
|
|
"pods": 1,
|
|
"cpu_request_m": 0,
|
|
"memory_request_bytes": 0,
|
|
"owner": "railiance-forge",
|
|
"service": "forgejo",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "kube-system",
|
|
"workload": "local-path-provisioner",
|
|
"pods": 1,
|
|
"cpu_request_m": 0,
|
|
"memory_request_bytes": 0,
|
|
"owner": "railiance-cluster",
|
|
"service": "k3s-control-plane",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "kube-system",
|
|
"workload": "svclb-traefik-0c8aecaf",
|
|
"pods": 1,
|
|
"cpu_request_m": 0,
|
|
"memory_request_bytes": 0,
|
|
"owner": "railiance-cluster",
|
|
"service": "k3s-control-plane",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "kube-system",
|
|
"workload": "traefik",
|
|
"pods": 1,
|
|
"cpu_request_m": 0,
|
|
"memory_request_bytes": 0,
|
|
"owner": "railiance-cluster",
|
|
"service": "k3s-control-plane",
|
|
"tenant": "unknown"
|
|
},
|
|
{
|
|
"namespace": "target-revenue",
|
|
"workload": "target-revenue-pg",
|
|
"pods": 1,
|
|
"cpu_request_m": 0,
|
|
"memory_request_bytes": 0,
|
|
"owner": "target-revenue",
|
|
"service": "target-revenue",
|
|
"tenant": "unknown"
|
|
}
|
|
],
|
|
"unknown_namespaces": [],
|
|
"zero_request_workloads": [
|
|
"cert-manager/cainjector",
|
|
"cert-manager/cert-manager",
|
|
"cert-manager/webhook",
|
|
"databases/state-hub-db",
|
|
"external-secrets/external-secrets",
|
|
"external-secrets/external-secrets-cert-controller",
|
|
"external-secrets/external-secrets-webhook",
|
|
"forgejo/forgejo-runner",
|
|
"kube-system/local-path-provisioner",
|
|
"kube-system/svclb-traefik-0c8aecaf",
|
|
"kube-system/traefik",
|
|
"target-revenue/target-revenue-pg"
|
|
],
|
|
"pending_unscheduled": [
|
|
{
|
|
"namespace": "user-engine",
|
|
"name": "user-engine-backup-29822640-64rqp",
|
|
"cpu_millicores": 25,
|
|
"memory_bytes": 67108864
|
|
}
|
|
],
|
|
"measurement_gaps": [
|
|
"node 239.62.205.92.host.secureserver.net lacks independent region/zone labels"
|
|
],
|
|
"state_hub_preflight_observation": {
|
|
"schema": "state-hub.release-headroom-preflight.v1-input",
|
|
"observed_at": "2026-09-14T09:45:22Z",
|
|
"freshness_seconds": 0,
|
|
"nodes": [
|
|
{
|
|
"name": "239.62.205.92.host.secureserver.net",
|
|
"ready": true,
|
|
"unschedulable": false,
|
|
"allocatable_cpu_m": 4000,
|
|
"allocatable_memory_bytes": 16770076672,
|
|
"allocated_cpu_m": 3985,
|
|
"allocated_memory_bytes": 9319743488
|
|
}
|
|
],
|
|
"pending_unrelated": [
|
|
{
|
|
"name": "user-engine/user-engine-backup-29822640-64rqp",
|
|
"cpu_m": 25,
|
|
"memory_bytes": 67108864
|
|
}
|
|
]
|
|
},
|
|
"signal_notes": [
|
|
"Host resource:hosteurope:railiance01 and cluster resource:railiance:reef-railiance:k3s are the same 4 vCPU; do not add them.",
|
|
"Prometheus namespace_cpu:kube_pod_container_resource_requests:sum omitted Forgejo 100m on 2026-09-11; Kubernetes API is the scheduler-effective source.",
|
|
"node-exporter was disabled; host CPU usage is not a reservation and is not treated as spare capacity.",
|
|
"Zero-request pods are demand, not zero. Missing metrics are listed as gaps, not zeros.",
|
|
"STATE-WP-0091 preflight consumes state_hub_preflight_observation; residual millicores are not admission."
|
|
],
|
|
"state_hub_preflight": {
|
|
"schema": "state-hub.release-headroom-preflight.v1",
|
|
"ok": false,
|
|
"observed_at": "2026-09-14T09:45:22Z",
|
|
"freshness_seconds": 0,
|
|
"remaining_cpu_m": 15,
|
|
"remaining_memory_bytes": 7450333184,
|
|
"pending_unrelated_cpu_m": 25,
|
|
"api_surge_cpu_m": 100,
|
|
"mcp_surge_cpu_m": 10,
|
|
"migrate_cpu_m": 50,
|
|
"atomic": true,
|
|
"reasons": [
|
|
"migration hook needs 50m CPU; remaining 15m",
|
|
"API maxSurge=1 needs 100m CPU; remaining 15m (Insufficient CPU class; revision 61 had 65m remaining)",
|
|
"unrelated pending demand 25m leaves -10m against API surge 100m"
|
|
],
|
|
"notes": [
|
|
"API+MCP concurrent surge would need 110m; remaining 15m. Helm may roll both deployments together; this is not a scheduling guarantee.",
|
|
"Aggregate remaining millicores is not a kube-scheduler guarantee.",
|
|
"Preflight does not lower requests and does not start Helm."
|
|
],
|
|
"hook_order": [
|
|
"pre-upgrade migrate job (helm.sh/hook-weight -5)",
|
|
"API RollingUpdate maxSurge=1 maxUnavailable=0",
|
|
"MCP RollingUpdate maxSurge=1 maxUnavailable=0"
|
|
]
|
|
}
|
|
}
|