{ "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" ] } }