Is there any way to create a k8s cluster inside a newly created project, or to assign it, after-the-fact, to one of the existing projects, with Terraform, doctl or another tool?

I am currently writing a Terraform project that provisions a k8s cluster and other attached resources (load balancer, volumes, etc.) and I’d like to have all of them under the same project. If I can’t do it with Terraform I’ll write an external script that works with my .tf project.

Thank you

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer

You can see the DOKS documentation calls out a bit of a lack of support here, but provides a workaround:

The control panel does not support assigning a cluster to a project. Instead, do this with doctl projects resources assign:

doctl projects resources assign <project-id> --resource=do:kubernetes:<cluster-id>
  • Thanks a lot! It works like a charm.
    For anybody who might be interested in doing it with Terraform, you must construct the URN of the cluster manually because it does not seem to exist:

    resource "digitalocean_project" "k8s" {
      name        = "k8s"
      description = "An auto-scalable kubernetes cluster"
      purpose     = "Web Application"
      environment = "Development"
    resource "digitalocean_project_resources" "k8s-resources" {
      project =
      resources = ["do:kubernetes:${}"]