Kubernetes Node Pool Args
Provides a DigitalOcean Kubernetes node pool resource. While the default node pool must be defined in the digitalocean.KubernetesCluster
resource, this resource can be used to add additional ones to a cluster.
Example Usage
Basic Example
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.digitalocean.KubernetesCluster;
import com.pulumi.digitalocean.KubernetesClusterArgs;
import com.pulumi.digitalocean.inputs.KubernetesClusterNodePoolArgs;
import com.pulumi.digitalocean.KubernetesNodePool;
import com.pulumi.digitalocean.KubernetesNodePoolArgs;
import com.pulumi.digitalocean.inputs.KubernetesNodePoolTaintArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var foo = new KubernetesCluster("foo", KubernetesClusterArgs.builder()
.region("nyc1")
.version("1.22.8-do.1")
.nodePool(KubernetesClusterNodePoolArgs.builder()
.name("front-end-pool")
.size("s-2vcpu-2gb")
.nodeCount(3)
.build())
.build());
var bar = new KubernetesNodePool("bar", KubernetesNodePoolArgs.builder()
.clusterId(foo.id())
.size("c-2")
.nodeCount(2)
.tags("backend")
.labels(Map.ofEntries(
Map.entry("service", "backend"),
Map.entry("priority", "high")
))
.taints(KubernetesNodePoolTaintArgs.builder()
.key("workloadKind")
.value("database")
.effect("NoSchedule")
.build())
.build());
}
}
Autoscaling Example
Node pools may also be configured to autoscale. For example:
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.digitalocean.KubernetesNodePool;
import com.pulumi.digitalocean.KubernetesNodePoolArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var autoscale_pool_01 = new KubernetesNodePool("autoscale-pool-01", KubernetesNodePoolArgs.builder()
.clusterId(digitalocean_kubernetes_cluster.foo().id())
.size("s-1vcpu-2gb")
.autoScale(true)
.minNodes(1)
.maxNodes(5)
.build());
}
}
Import
If you are importing an existing Kubernetes cluster with a single node pool, just import the cluster. Additional node pools can be imported by using their id
, e.g.
$ pulumi import digitalocean:index/kubernetesNodePool:KubernetesNodePool mynodepool 9d76f410-9284-4436-9633-4066852442c8
NoteIf the node pool has the terraform:default-node-pool
tag, then it is a default node pool for an existing cluster. The provider will refuse to import the node pool in that case because the node pool is managed by the digitalocean_kubernetes_cluster
resource and not by this digitalocean_kubernetes_node_pool
resource.
Constructors
Functions
Properties
The number of Droplet instances in the node pool. If auto-scaling is enabled, this should only be set if the desired result is to explicitly reset the number of nodes to this value. If auto-scaling is enabled, and the node count is outside of the given min/max range, it will use the min nodes value.