What problem are you facing?
I followed the getting started guide up through "Set up the InferenceGateway". At idle, the single kind node container was using:
CONTAINER CPU % MEM USAGE / LIMIT MEM %
modelplane-control-plane 10-16% 9.3GiB / 19.4GiB 48%
That's a lot of memory for a getting started guide. I suspect it won't fit on a lot of potential users' development laptops - e.g. folks with 16GB MacBooks who allocate 8GB to the Docker VM.
Broken down by container (crictl stats inside the node):
Crossplane providers:
| Memory |
Provider |
| 426 MB |
provider-aws-ec2 |
| 341 MB |
provider-gcp-compute |
| 301 MB |
provider-aws-iam |
| 286 MB |
provider-aws-efs |
| 285 MB |
provider-aws-eks |
| 255 MB |
provider-family-aws |
| 239 MB |
provider-gcp-cloudplatform |
| 222 MB |
provider-gcp-container |
| 220 MB |
provider-family-gcp |
| 158 MB |
provider-helm |
| 149 MB |
provider-kubernetes |
| 2,882 MB |
Subtotal |
Modelplane composition functions:
| Memory |
Function |
| 61 MB |
inference-gateway |
| 44 MB |
eks-cluster |
| 44 MB |
model-deployment |
| 38 MB |
gke-cluster |
| 35 MB |
serving-stack |
| 34 MB |
model-replica |
| 34 MB |
inference-cluster |
| 33 MB |
model-cache |
| 33 MB |
model-endpoint |
| 33 MB |
inference-class |
| 33 MB |
model-service |
| 32 MB |
usages |
| 454 MB |
Subtotal |
Everything else:
| Memory |
Component |
| 3,028 MB |
kube-apiserver |
| 554 MB |
Crossplane core (crossplane) |
| 283 MB |
etcd |
| 164 MB |
kube-controller-manager |
| 141 MB |
MetalLB controller |
| 31 MB |
kube-scheduler |
| 27 MB |
Traefik |
| 26 MB |
kindnet-cni |
| 23 MB |
kube-proxy |
| 22 MB |
crossplane-rbac-manager |
| 48 MB |
MetalLB speaker (frr, speaker, frr-metrics) |
| 33 MB |
CoreDNS (x2) |
| 16 MB |
local-path-provisioner |
| ~4,396 MB |
Subtotal |
How could Modelplane help solve your problem?
In general we should minimize the amount of compute resources Modelplane needs to run. In particular there's no need for us to run providers that the user won't actually use. For example there's no need to install all the GKE providers if the user only intends to use AWS. This'll only get worse as we add support for more providers. Crossplane control plane projects don't have a concept of optional dependencies, but crossplane/crossplane#7573 tracks an upstream improvement that could help.
What problem are you facing?
I followed the getting started guide up through "Set up the InferenceGateway". At idle, the single kind node container was using:
That's a lot of memory for a getting started guide. I suspect it won't fit on a lot of potential users' development laptops - e.g. folks with 16GB MacBooks who allocate 8GB to the Docker VM.
Broken down by container (
crictl statsinside the node):Crossplane providers:
provider-aws-ec2provider-gcp-computeprovider-aws-iamprovider-aws-efsprovider-aws-eksprovider-family-awsprovider-gcp-cloudplatformprovider-gcp-containerprovider-family-gcpprovider-helmprovider-kubernetesModelplane composition functions:
inference-gatewayeks-clustermodel-deploymentgke-clusterserving-stackmodel-replicainference-clustermodel-cachemodel-endpointinference-classmodel-serviceusagesEverything else:
kube-apiservercrossplane)etcdkube-controller-managerkube-schedulerkindnet-cnikube-proxycrossplane-rbac-managerfrr,speaker,frr-metrics)local-path-provisionerHow could Modelplane help solve your problem?
In general we should minimize the amount of compute resources Modelplane needs to run. In particular there's no need for us to run providers that the user won't actually use. For example there's no need to install all the GKE providers if the user only intends to use AWS. This'll only get worse as we add support for more providers. Crossplane control plane projects don't have a concept of optional dependencies, but crossplane/crossplane#7573 tracks an upstream improvement that could help.