LXD Projects vs LXC Profiles

I do have some problem understanding why LXD has projects. Let say I have a lxd cluster and there are some physical nodes in there with GPU and some without. So I run differently configured lxc profiles images on each machine based on their available hardware/usecase.

I use juju in order to manage all that. But now I see LXD has projects. So my question is:

What is the relationship between LXD Projects and LXC Profiles?

In relation to the topic, in order to convey why I am thinking about the matter; How can I relate Kubernetes namespaces according to my understanding to either profile/projects?

If you only have one set of people all using the same set of instances on your cluster, then you don’t really need projects. What you have today with different profiles for different hardware is fine.

Projects really become useful when you either have different tools driving your cluster which could get confused by what other tools are doing (conflicting names, …) or when dealing with different group of people using a shared cluster and you want each of those to be able to manage their own set of instances, profiles, …

In my clusters, I allocate one project per tenant and then restrict and limit that to whatever resource consumption was agreed upon. I also sometimes use projects just as a way to give a clean slate to a tool that will then go and create instances to limit the blast radius should something go wrong :slight_smile:

Thank you for your answer.

I wish I could see how you do the deployment in scale. I am using juju with lxd on a gpu cluster. One problem that I have is how to have different profiles per juju model.