bedrock
tenant layer

Resources and priorities

Every platform container has requests and limits. Requests are what the scheduler reserves; limits are the most the container can use before it is throttled, or killed for memory. Replica counts are left out, because they follow the number of nodes.

Priority classes

When a node runs out of room, Kubernetes evicts lower priority pods first. bedrock defines four classes in platform/priorityclasses.yaml, and the restrict-priority-classes policy stops anything outside their namespaces from claiming the higher ones.

ClassValueReserved for
bedrock-storage90000000Garage
bedrock-data80000000Database clusters, their poolers and Falco
bedrock-workload50000000Event buses
bedrock-default10000000Everything else. This is the global default.

Kubernetes components and Kyverno’s admission controller run at the built-in system classes, above all of these.

Storage and data

WorkloadContainerRequestsLimitsPriority
Garagegarage100m, 256Mi1 CPU, 1Gibedrock-storage
Database clusterspostgres100m, 256Mi1 CPU, 1Gibedrock-data
Falcofalco100m, 256Mi1 CPU, 1Gibedrock-data

Monitoring

WorkloadContainerRequestsLimits
Prometheusprometheus100m, 400Mi1 CPU, 1Gi
Alertmanageralertmanager25m, 64Mi250m, 128Mi
Lokiloki100m, 128Mi500m, 512Mi
Tempotempo250m, 512Mi1 CPU, 2Gi
Grafanagrafana50m, 128Mi500m, 256Mi
Grafanasc-dashboards10m, 64Mi250m, 256Mi
kube-state-metricskube-state-metrics50m, 64Mi500m, 256Mi
Blackbox exporterblackbox-exporter25m, 32Mi200m, 128Mi
OpenCostopencost10m, 64Mi500m, 1Gi
OpenCostopencost-ui10m, 32Mi100m, 128Mi
Alloyalloy50m, 128Mi500m, 256Mi
node-exporternode-exporter50m, 32Mi200m, 128Mi

Platform

WorkloadContainerRequestsLimits
Reloaderreloader10m, 64Mi200m, 128Mi

Event buses

These run only when turned on. All run at bedrock-workload.

WorkloadContainerRequestsLimits
NATSnats500m, 1Gi2 CPU, 2Gi
Redisredis250m, 512Mi1 CPU, 1Gi
Redissentinel50m, 64Mi200m, 128Mi
Kafkabroker500m, 2Gi2 CPU, 3Gi

Changing a value

Edit the resources block in the component’s file and apply it. In application and node-agents, the require-resource-limits policy rejects any container without CPU and memory limits, so a limit can be changed but never removed.