Juju Memory/CPU requirements

Hi there!

As per the GKE Installation docs, juju needs minimum of 6GB! This is really a lot for services nowadays, specially when you are starting out and want to explore the tool.

I’d like to know what are the CPU/Memory requirements to run the Juju controller (especially inside Kubernetes) and if there are any knobs we can turn to make it lightweight under a test/experiment scenario.

Thanks!

I know that we have spent several rounds of improvements here over the course of 2.4 until 2.8. It would be worthwhile to revisit this. Reading through it, I’m guessing the request is to be able to reused the node that is hosting Juju with workloads, which means you also need to keep in mind the memory requirement of k8s and whatever containers you want to be deploying.

Also, I know we have a flag that reduces Mongo’s memory consumption. We used to default it to on, but found that people were running production clouds with it enabled, and it significantly impacted mongo’s performance when you ‘get big’.

Specifically the controller configuration:

  mongo-memory-profile=[low|default]

I believe that we can now configure that ‘live’ (it causes a reboot of mongo, and some downtime, but not a teardown and redeploy), we might consider whether we’d want the default to be ‘low’ and have guidance for people running larger clusters for how to turn it back to default.

The same happened for Minikube, for example, which by default creates a K8S cluster with 2GB of memory – and I could only run the juju controller with 4GB.

I think if we can have the minimum requirements for juju documented somewhere, we can use that as a base and slightly change the docs for each Kubernetes flavor taking in consideration their default workload.