Google Cloud (GCP) Classic

v6.38.0 published on Thursday, Sep 22, 2022 by Pulumi

NodePool

Manages a node pool in a Google Kubernetes Engine (GKE) cluster separately from the cluster control plane. For more information see the official documentation and the API reference.

Example Usage

using System.Collections.Generic;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var @default = new Gcp.ServiceAccount.Account("default", new()
    {
        AccountId = "service-account-id",
        DisplayName = "Service Account",
    });

    var primary = new Gcp.Container.Cluster("primary", new()
    {
        Location = "us-central1",
        RemoveDefaultNodePool = true,
        InitialNodeCount = 1,
    });

    var primaryPreemptibleNodes = new Gcp.Container.NodePool("primaryPreemptibleNodes", new()
    {
        Cluster = primary.Id,
        NodeCount = 1,
        NodeConfig = new Gcp.Container.Inputs.NodePoolNodeConfigArgs
        {
            Preemptible = true,
            MachineType = "e2-medium",
            ServiceAccount = @default.Email,
            OauthScopes = new[]
            {
                "https://www.googleapis.com/auth/cloud-platform",
            },
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/container"
	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/serviceAccount"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := serviceAccount.NewAccount(ctx, "default", &serviceAccount.AccountArgs{
			AccountId:   pulumi.String("service-account-id"),
			DisplayName: pulumi.String("Service Account"),
		})
		if err != nil {
			return err
		}
		primary, err := container.NewCluster(ctx, "primary", &container.ClusterArgs{
			Location:              pulumi.String("us-central1"),
			RemoveDefaultNodePool: pulumi.Bool(true),
			InitialNodeCount:      pulumi.Int(1),
		})
		if err != nil {
			return err
		}
		_, err = container.NewNodePool(ctx, "primaryPreemptibleNodes", &container.NodePoolArgs{
			Cluster:   primary.ID(),
			NodeCount: pulumi.Int(1),
			NodeConfig: &container.NodePoolNodeConfigArgs{
				Preemptible:    pulumi.Bool(true),
				MachineType:    pulumi.String("e2-medium"),
				ServiceAccount: _default.Email,
				OauthScopes: pulumi.StringArray{
					pulumi.String("https://www.googleapis.com/auth/cloud-platform"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.serviceAccount.Account;
import com.pulumi.gcp.serviceAccount.AccountArgs;
import com.pulumi.gcp.container.Cluster;
import com.pulumi.gcp.container.ClusterArgs;
import com.pulumi.gcp.container.NodePool;
import com.pulumi.gcp.container.NodePoolArgs;
import com.pulumi.gcp.container.inputs.NodePoolNodeConfigArgs;
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 default_ = new Account("default", AccountArgs.builder()        
            .accountId("service-account-id")
            .displayName("Service Account")
            .build());

        var primary = new Cluster("primary", ClusterArgs.builder()        
            .location("us-central1")
            .removeDefaultNodePool(true)
            .initialNodeCount(1)
            .build());

        var primaryPreemptibleNodes = new NodePool("primaryPreemptibleNodes", NodePoolArgs.builder()        
            .cluster(primary.id())
            .nodeCount(1)
            .nodeConfig(NodePoolNodeConfigArgs.builder()
                .preemptible(true)
                .machineType("e2-medium")
                .serviceAccount(default_.email())
                .oauthScopes("https://www.googleapis.com/auth/cloud-platform")
                .build())
            .build());

    }
}
import pulumi
import pulumi_gcp as gcp

default = gcp.service_account.Account("default",
    account_id="service-account-id",
    display_name="Service Account")
primary = gcp.container.Cluster("primary",
    location="us-central1",
    remove_default_node_pool=True,
    initial_node_count=1)
primary_preemptible_nodes = gcp.container.NodePool("primaryPreemptibleNodes",
    cluster=primary.id,
    node_count=1,
    node_config=gcp.container.NodePoolNodeConfigArgs(
        preemptible=True,
        machine_type="e2-medium",
        service_account=default.email,
        oauth_scopes=["https://www.googleapis.com/auth/cloud-platform"],
    ))
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const _default = new gcp.serviceaccount.Account("default", {
    accountId: "service-account-id",
    displayName: "Service Account",
});
const primary = new gcp.container.Cluster("primary", {
    location: "us-central1",
    removeDefaultNodePool: true,
    initialNodeCount: 1,
});
const primaryPreemptibleNodes = new gcp.container.NodePool("primaryPreemptibleNodes", {
    cluster: primary.id,
    nodeCount: 1,
    nodeConfig: {
        preemptible: true,
        machineType: "e2-medium",
        serviceAccount: _default.email,
        oauthScopes: ["https://www.googleapis.com/auth/cloud-platform"],
    },
});
resources:
  default:
    type: gcp:serviceAccount:Account
    properties:
      accountId: service-account-id
      displayName: Service Account
  primary:
    type: gcp:container:Cluster
    properties:
      location: us-central1
      # We can't create a cluster with no node pool defined, but we want to only use
      #   # separately managed node pools. So we create the smallest possible default
      #   # node pool and immediately delete it.
      removeDefaultNodePool: true
      initialNodeCount: 1
  primaryPreemptibleNodes:
    type: gcp:container:NodePool
    properties:
      cluster: ${primary.id}
      nodeCount: 1
      nodeConfig:
        preemptible: true
        machineType: e2-medium
        serviceAccount: ${default.email}
        oauthScopes:
          - https://www.googleapis.com/auth/cloud-platform

2 Node Pools, 1 Separately Managed + The Default Node Pool

Coming soon!

Coming soon!

package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.serviceAccount.Account;
import com.pulumi.gcp.serviceAccount.AccountArgs;
import com.pulumi.gcp.container.Cluster;
import com.pulumi.gcp.container.ClusterArgs;
import com.pulumi.gcp.container.inputs.ClusterNodeConfigArgs;
import com.pulumi.gcp.container.NodePool;
import com.pulumi.gcp.container.NodePoolArgs;
import com.pulumi.gcp.container.inputs.NodePoolNodeConfigArgs;
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 default_ = new Account("default", AccountArgs.builder()        
            .accountId("service-account-id")
            .displayName("Service Account")
            .build());

        var primary = new Cluster("primary", ClusterArgs.builder()        
            .location("us-central1-a")
            .initialNodeCount(3)
            .nodeLocations("us-central1-c")
            .nodeConfig(ClusterNodeConfigArgs.builder()
                .serviceAccount(default_.email())
                .oauthScopes("https://www.googleapis.com/auth/cloud-platform")
                .guestAccelerators(ClusterNodeConfigGuestAcceleratorArgs.builder()
                    .type("nvidia-tesla-k80")
                    .count(1)
                    .build())
                .build())
            .build());

        var np = new NodePool("np", NodePoolArgs.builder()        
            .cluster(primary.id())
            .nodeConfig(NodePoolNodeConfigArgs.builder()
                .machineType("e2-medium")
                .serviceAccount(default_.email())
                .oauthScopes("https://www.googleapis.com/auth/cloud-platform")
                .build())
            .timeouts(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
            .build());

    }
}

Coming soon!

Coming soon!

resources:
  default:
    type: gcp:serviceAccount:Account
    properties:
      accountId: service-account-id
      displayName: Service Account
  np:
    type: gcp:container:NodePool
    properties:
      cluster: ${primary.id}
      nodeConfig:
        machineType: e2-medium
        serviceAccount: ${default.email}
        oauthScopes:
          - https://www.googleapis.com/auth/cloud-platform
      timeouts:
        - create: 30m
          update: 20m
  primary:
    type: gcp:container:Cluster
    properties:
      location: us-central1-a
      initialNodeCount: 3
      nodeLocations:
        - us-central1-c
      nodeConfig:
        serviceAccount: ${default.email}
        oauthScopes:
          - https://www.googleapis.com/auth/cloud-platform
        guestAccelerators:
          - type: nvidia-tesla-k80
            count: 1

Create a NodePool Resource

new NodePool(name: string, args: NodePoolArgs, opts?: CustomResourceOptions);
@overload
def NodePool(resource_name: str,
             opts: Optional[ResourceOptions] = None,
             autoscaling: Optional[NodePoolAutoscalingArgs] = None,
             cluster: Optional[str] = None,
             initial_node_count: Optional[int] = None,
             location: Optional[str] = None,
             management: Optional[NodePoolManagementArgs] = None,
             max_pods_per_node: Optional[int] = None,
             name: Optional[str] = None,
             name_prefix: Optional[str] = None,
             network_config: Optional[NodePoolNetworkConfigArgs] = None,
             node_config: Optional[NodePoolNodeConfigArgs] = None,
             node_count: Optional[int] = None,
             node_locations: Optional[Sequence[str]] = None,
             placement_policy: Optional[NodePoolPlacementPolicyArgs] = None,
             project: Optional[str] = None,
             upgrade_settings: Optional[NodePoolUpgradeSettingsArgs] = None,
             version: Optional[str] = None)
@overload
def NodePool(resource_name: str,
             args: NodePoolArgs,
             opts: Optional[ResourceOptions] = None)
func NewNodePool(ctx *Context, name string, args NodePoolArgs, opts ...ResourceOption) (*NodePool, error)
public NodePool(string name, NodePoolArgs args, CustomResourceOptions? opts = null)
public NodePool(String name, NodePoolArgs args)
public NodePool(String name, NodePoolArgs args, CustomResourceOptions options)
type: gcp:container:NodePool
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

name string
The unique name of the resource.
args NodePoolArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name str
The unique name of the resource.
args NodePoolArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name string
The unique name of the resource.
args NodePoolArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args NodePoolArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name String
The unique name of the resource.
args NodePoolArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

NodePool Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

The NodePool resource accepts the following input properties:

Cluster string

The cluster to create the node pool for. Cluster must be present in location provided for clusters. May be specified in the format projects/{{project}}/locations/{{location}}/clusters/{{cluster}} or as just the name of the cluster.

Autoscaling NodePoolAutoscalingArgs

Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. Structure is documented below.

InitialNodeCount int

The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource. WARNING: Resizing your node pool manually may change this value in your existing cluster, which will trigger destruction and recreation on the next provider run (to rectify the discrepancy). If you don't need this value, don't set it. If you do need it, you can use a lifecycle block to ignore subsqeuent changes to this field.

Location string

The location (region or zone) of the cluster.

Management NodePoolManagementArgs

Node management configuration, wherein auto-repair and auto-upgrade is configured. Structure is documented below.

MaxPodsPerNode int

The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled. See the official documentation for more information.

Name string

The name of the node pool. If left blank, the provider will auto-generate a unique name.

NamePrefix string

Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.

NetworkConfig NodePoolNetworkConfigArgs

The network configuration of the pool. See gcp.container.Cluster for schema.

NodeConfig NodePoolNodeConfigArgs

Parameters used in creating the node pool. See gcp.container.Cluster for schema.

NodeCount int

The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.

NodeLocations List<string>

The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.

PlacementPolicy NodePoolPlacementPolicyArgs

) Specifies a custom placement policy for the nodes.

Project string

The ID of the project in which to create the node pool. If blank, the provider-configured project will be used.

UpgradeSettings NodePoolUpgradeSettingsArgs

Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below.

Version string

The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions in a provider-compatible way.

Cluster string

The cluster to create the node pool for. Cluster must be present in location provided for clusters. May be specified in the format projects/{{project}}/locations/{{location}}/clusters/{{cluster}} or as just the name of the cluster.

Autoscaling NodePoolAutoscalingArgs

Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. Structure is documented below.

InitialNodeCount int

The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource. WARNING: Resizing your node pool manually may change this value in your existing cluster, which will trigger destruction and recreation on the next provider run (to rectify the discrepancy). If you don't need this value, don't set it. If you do need it, you can use a lifecycle block to ignore subsqeuent changes to this field.

Location string

The location (region or zone) of the cluster.

Management NodePoolManagementArgs

Node management configuration, wherein auto-repair and auto-upgrade is configured. Structure is documented below.

MaxPodsPerNode int

The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled. See the official documentation for more information.

Name string

The name of the node pool. If left blank, the provider will auto-generate a unique name.

NamePrefix string

Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.

NetworkConfig NodePoolNetworkConfigArgs

The network configuration of the pool. See gcp.container.Cluster for schema.

NodeConfig NodePoolNodeConfigArgs

Parameters used in creating the node pool. See gcp.container.Cluster for schema.

NodeCount int

The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.

NodeLocations []string

The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.

PlacementPolicy NodePoolPlacementPolicyArgs

) Specifies a custom placement policy for the nodes.

Project string

The ID of the project in which to create the node pool. If blank, the provider-configured project will be used.

UpgradeSettings NodePoolUpgradeSettingsArgs

Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below.

Version string

The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions in a provider-compatible way.

cluster String

The cluster to create the node pool for. Cluster must be present in location provided for clusters. May be specified in the format projects/{{project}}/locations/{{location}}/clusters/{{cluster}} or as just the name of the cluster.

autoscaling NodePoolAutoscalingArgs

Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. Structure is documented below.

initialNodeCount Integer

The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource. WARNING: Resizing your node pool manually may change this value in your existing cluster, which will trigger destruction and recreation on the next provider run (to rectify the discrepancy). If you don't need this value, don't set it. If you do need it, you can use a lifecycle block to ignore subsqeuent changes to this field.

location String

The location (region or zone) of the cluster.

management NodePoolManagementArgs

Node management configuration, wherein auto-repair and auto-upgrade is configured. Structure is documented below.

maxPodsPerNode Integer

The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled. See the official documentation for more information.

name String

The name of the node pool. If left blank, the provider will auto-generate a unique name.

namePrefix String

Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.

networkConfig NodePoolNetworkConfigArgs

The network configuration of the pool. See gcp.container.Cluster for schema.

nodeConfig NodePoolNodeConfigArgs

Parameters used in creating the node pool. See gcp.container.Cluster for schema.

nodeCount Integer

The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.

nodeLocations List<String>

The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.

placementPolicy NodePoolPlacementPolicyArgs

) Specifies a custom placement policy for the nodes.

project String

The ID of the project in which to create the node pool. If blank, the provider-configured project will be used.

upgradeSettings NodePoolUpgradeSettingsArgs

Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below.

version String

The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions in a provider-compatible way.

cluster string

The cluster to create the node pool for. Cluster must be present in location provided for clusters. May be specified in the format projects/{{project}}/locations/{{location}}/clusters/{{cluster}} or as just the name of the cluster.

autoscaling NodePoolAutoscalingArgs

Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. Structure is documented below.

initialNodeCount number

The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource. WARNING: Resizing your node pool manually may change this value in your existing cluster, which will trigger destruction and recreation on the next provider run (to rectify the discrepancy). If you don't need this value, don't set it. If you do need it, you can use a lifecycle block to ignore subsqeuent changes to this field.

location string

The location (region or zone) of the cluster.

management NodePoolManagementArgs

Node management configuration, wherein auto-repair and auto-upgrade is configured. Structure is documented below.

maxPodsPerNode number

The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled. See the official documentation for more information.

name string

The name of the node pool. If left blank, the provider will auto-generate a unique name.

namePrefix string

Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.

networkConfig NodePoolNetworkConfigArgs

The network configuration of the pool. See gcp.container.Cluster for schema.

nodeConfig NodePoolNodeConfigArgs

Parameters used in creating the node pool. See gcp.container.Cluster for schema.

nodeCount number

The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.

nodeLocations string[]

The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.

placementPolicy NodePoolPlacementPolicyArgs

) Specifies a custom placement policy for the nodes.

project string

The ID of the project in which to create the node pool. If blank, the provider-configured project will be used.

upgradeSettings NodePoolUpgradeSettingsArgs

Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below.

version string

The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions in a provider-compatible way.

cluster str

The cluster to create the node pool for. Cluster must be present in location provided for clusters. May be specified in the format projects/{{project}}/locations/{{location}}/clusters/{{cluster}} or as just the name of the cluster.

autoscaling NodePoolAutoscalingArgs

Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. Structure is documented below.

initial_node_count int

The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource. WARNING: Resizing your node pool manually may change this value in your existing cluster, which will trigger destruction and recreation on the next provider run (to rectify the discrepancy). If you don't need this value, don't set it. If you do need it, you can use a lifecycle block to ignore subsqeuent changes to this field.

location str

The location (region or zone) of the cluster.

management NodePoolManagementArgs

Node management configuration, wherein auto-repair and auto-upgrade is configured. Structure is documented below.

max_pods_per_node int

The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled. See the official documentation for more information.

name str

The name of the node pool. If left blank, the provider will auto-generate a unique name.

name_prefix str

Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.

network_config NodePoolNetworkConfigArgs

The network configuration of the pool. See gcp.container.Cluster for schema.

node_config NodePoolNodeConfigArgs

Parameters used in creating the node pool. See gcp.container.Cluster for schema.

node_count int

The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.

node_locations Sequence[str]

The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.

placement_policy NodePoolPlacementPolicyArgs

) Specifies a custom placement policy for the nodes.

project str

The ID of the project in which to create the node pool. If blank, the provider-configured project will be used.

upgrade_settings NodePoolUpgradeSettingsArgs

Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below.

version str

The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions in a provider-compatible way.

cluster String

The cluster to create the node pool for. Cluster must be present in location provided for clusters. May be specified in the format projects/{{project}}/locations/{{location}}/clusters/{{cluster}} or as just the name of the cluster.

autoscaling Property Map

Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. Structure is documented below.

initialNodeCount Number

The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource. WARNING: Resizing your node pool manually may change this value in your existing cluster, which will trigger destruction and recreation on the next provider run (to rectify the discrepancy). If you don't need this value, don't set it. If you do need it, you can use a lifecycle block to ignore subsqeuent changes to this field.

location String

The location (region or zone) of the cluster.

management Property Map

Node management configuration, wherein auto-repair and auto-upgrade is configured. Structure is documented below.

maxPodsPerNode Number

The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled. See the official documentation for more information.

name String

The name of the node pool. If left blank, the provider will auto-generate a unique name.

namePrefix String

Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.

networkConfig Property Map

The network configuration of the pool. See gcp.container.Cluster for schema.

nodeConfig Property Map

Parameters used in creating the node pool. See gcp.container.Cluster for schema.

nodeCount Number

The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.

nodeLocations List<String>

The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.

placementPolicy Property Map

) Specifies a custom placement policy for the nodes.

project String

The ID of the project in which to create the node pool. If blank, the provider-configured project will be used.

upgradeSettings Property Map

Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below.

version String

The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions in a provider-compatible way.

Outputs

All input properties are implicitly available as output properties. Additionally, the NodePool resource produces the following output properties:

Id string

The provider-assigned unique ID for this managed resource.

InstanceGroupUrls List<string>

The resource URLs of the managed instance groups associated with this node pool.

ManagedInstanceGroupUrls List<string>

List of instance group URLs which have been assigned to this node pool.

Operation string
Id string

The provider-assigned unique ID for this managed resource.

InstanceGroupUrls []string

The resource URLs of the managed instance groups associated with this node pool.

ManagedInstanceGroupUrls []string

List of instance group URLs which have been assigned to this node pool.

Operation string
id String

The provider-assigned unique ID for this managed resource.

instanceGroupUrls List<String>

The resource URLs of the managed instance groups associated with this node pool.

managedInstanceGroupUrls List<String>

List of instance group URLs which have been assigned to this node pool.

operation String
id string

The provider-assigned unique ID for this managed resource.

instanceGroupUrls string[]

The resource URLs of the managed instance groups associated with this node pool.

managedInstanceGroupUrls string[]

List of instance group URLs which have been assigned to this node pool.

operation string
id str

The provider-assigned unique ID for this managed resource.

instance_group_urls Sequence[str]

The resource URLs of the managed instance groups associated with this node pool.

managed_instance_group_urls Sequence[str]

List of instance group URLs which have been assigned to this node pool.

operation str
id String

The provider-assigned unique ID for this managed resource.

instanceGroupUrls List<String>

The resource URLs of the managed instance groups associated with this node pool.

managedInstanceGroupUrls List<String>

List of instance group URLs which have been assigned to this node pool.

operation String

Look up an Existing NodePool Resource

Get an existing NodePool resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: NodePoolState, opts?: CustomResourceOptions): NodePool
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        autoscaling: Optional[NodePoolAutoscalingArgs] = None,
        cluster: Optional[str] = None,
        initial_node_count: Optional[int] = None,
        instance_group_urls: Optional[Sequence[str]] = None,
        location: Optional[str] = None,
        managed_instance_group_urls: Optional[Sequence[str]] = None,
        management: Optional[NodePoolManagementArgs] = None,
        max_pods_per_node: Optional[int] = None,
        name: Optional[str] = None,
        name_prefix: Optional[str] = None,
        network_config: Optional[NodePoolNetworkConfigArgs] = None,
        node_config: Optional[NodePoolNodeConfigArgs] = None,
        node_count: Optional[int] = None,
        node_locations: Optional[Sequence[str]] = None,
        operation: Optional[str] = None,
        placement_policy: Optional[NodePoolPlacementPolicyArgs] = None,
        project: Optional[str] = None,
        upgrade_settings: Optional[NodePoolUpgradeSettingsArgs] = None,
        version: Optional[str] = None) -> NodePool
func GetNodePool(ctx *Context, name string, id IDInput, state *NodePoolState, opts ...ResourceOption) (*NodePool, error)
public static NodePool Get(string name, Input<string> id, NodePoolState? state, CustomResourceOptions? opts = null)
public static NodePool get(String name, Output<String> id, NodePoolState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
Autoscaling NodePoolAutoscalingArgs

Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. Structure is documented below.

Cluster string

The cluster to create the node pool for. Cluster must be present in location provided for clusters. May be specified in the format projects/{{project}}/locations/{{location}}/clusters/{{cluster}} or as just the name of the cluster.

InitialNodeCount int

The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource. WARNING: Resizing your node pool manually may change this value in your existing cluster, which will trigger destruction and recreation on the next provider run (to rectify the discrepancy). If you don't need this value, don't set it. If you do need it, you can use a lifecycle block to ignore subsqeuent changes to this field.

InstanceGroupUrls List<string>

The resource URLs of the managed instance groups associated with this node pool.

Location string

The location (region or zone) of the cluster.

ManagedInstanceGroupUrls List<string>

List of instance group URLs which have been assigned to this node pool.

Management NodePoolManagementArgs

Node management configuration, wherein auto-repair and auto-upgrade is configured. Structure is documented below.

MaxPodsPerNode int

The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled. See the official documentation for more information.

Name string

The name of the node pool. If left blank, the provider will auto-generate a unique name.

NamePrefix string

Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.

NetworkConfig NodePoolNetworkConfigArgs

The network configuration of the pool. See gcp.container.Cluster for schema.

NodeConfig NodePoolNodeConfigArgs

Parameters used in creating the node pool. See gcp.container.Cluster for schema.

NodeCount int

The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.

NodeLocations List<string>

The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.

Operation string
PlacementPolicy NodePoolPlacementPolicyArgs

) Specifies a custom placement policy for the nodes.

Project string

The ID of the project in which to create the node pool. If blank, the provider-configured project will be used.

UpgradeSettings NodePoolUpgradeSettingsArgs

Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below.

Version string

The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions in a provider-compatible way.

Autoscaling NodePoolAutoscalingArgs

Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. Structure is documented below.

Cluster string

The cluster to create the node pool for. Cluster must be present in location provided for clusters. May be specified in the format projects/{{project}}/locations/{{location}}/clusters/{{cluster}} or as just the name of the cluster.

InitialNodeCount int

The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource. WARNING: Resizing your node pool manually may change this value in your existing cluster, which will trigger destruction and recreation on the next provider run (to rectify the discrepancy). If you don't need this value, don't set it. If you do need it, you can use a lifecycle block to ignore subsqeuent changes to this field.

InstanceGroupUrls []string

The resource URLs of the managed instance groups associated with this node pool.

Location string

The location (region or zone) of the cluster.

ManagedInstanceGroupUrls []string

List of instance group URLs which have been assigned to this node pool.

Management NodePoolManagementArgs

Node management configuration, wherein auto-repair and auto-upgrade is configured. Structure is documented below.

MaxPodsPerNode int

The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled. See the official documentation for more information.

Name string

The name of the node pool. If left blank, the provider will auto-generate a unique name.

NamePrefix string

Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.

NetworkConfig NodePoolNetworkConfigArgs

The network configuration of the pool. See gcp.container.Cluster for schema.

NodeConfig NodePoolNodeConfigArgs

Parameters used in creating the node pool. See gcp.container.Cluster for schema.

NodeCount int

The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.

NodeLocations []string

The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.

Operation string
PlacementPolicy NodePoolPlacementPolicyArgs

) Specifies a custom placement policy for the nodes.

Project string

The ID of the project in which to create the node pool. If blank, the provider-configured project will be used.

UpgradeSettings NodePoolUpgradeSettingsArgs

Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below.

Version string

The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions in a provider-compatible way.

autoscaling NodePoolAutoscalingArgs

Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. Structure is documented below.

cluster String

The cluster to create the node pool for. Cluster must be present in location provided for clusters. May be specified in the format projects/{{project}}/locations/{{location}}/clusters/{{cluster}} or as just the name of the cluster.

initialNodeCount Integer

The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource. WARNING: Resizing your node pool manually may change this value in your existing cluster, which will trigger destruction and recreation on the next provider run (to rectify the discrepancy). If you don't need this value, don't set it. If you do need it, you can use a lifecycle block to ignore subsqeuent changes to this field.

instanceGroupUrls List<String>

The resource URLs of the managed instance groups associated with this node pool.

location String

The location (region or zone) of the cluster.

managedInstanceGroupUrls List<String>

List of instance group URLs which have been assigned to this node pool.

management NodePoolManagementArgs

Node management configuration, wherein auto-repair and auto-upgrade is configured. Structure is documented below.

maxPodsPerNode Integer

The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled. See the official documentation for more information.

name String

The name of the node pool. If left blank, the provider will auto-generate a unique name.

namePrefix String

Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.

networkConfig NodePoolNetworkConfigArgs

The network configuration of the pool. See gcp.container.Cluster for schema.

nodeConfig NodePoolNodeConfigArgs

Parameters used in creating the node pool. See gcp.container.Cluster for schema.

nodeCount Integer

The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.

nodeLocations List<String>

The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.

operation String
placementPolicy NodePoolPlacementPolicyArgs

) Specifies a custom placement policy for the nodes.

project String

The ID of the project in which to create the node pool. If blank, the provider-configured project will be used.

upgradeSettings NodePoolUpgradeSettingsArgs

Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below.

version String

The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions in a provider-compatible way.

autoscaling NodePoolAutoscalingArgs

Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. Structure is documented below.

cluster string

The cluster to create the node pool for. Cluster must be present in location provided for clusters. May be specified in the format projects/{{project}}/locations/{{location}}/clusters/{{cluster}} or as just the name of the cluster.

initialNodeCount number

The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource. WARNING: Resizing your node pool manually may change this value in your existing cluster, which will trigger destruction and recreation on the next provider run (to rectify the discrepancy). If you don't need this value, don't set it. If you do need it, you can use a lifecycle block to ignore subsqeuent changes to this field.

instanceGroupUrls string[]

The resource URLs of the managed instance groups associated with this node pool.

location string

The location (region or zone) of the cluster.

managedInstanceGroupUrls string[]

List of instance group URLs which have been assigned to this node pool.

management NodePoolManagementArgs

Node management configuration, wherein auto-repair and auto-upgrade is configured. Structure is documented below.

maxPodsPerNode number

The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled. See the official documentation for more information.

name string

The name of the node pool. If left blank, the provider will auto-generate a unique name.

namePrefix string

Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.

networkConfig NodePoolNetworkConfigArgs

The network configuration of the pool. See gcp.container.Cluster for schema.

nodeConfig NodePoolNodeConfigArgs

Parameters used in creating the node pool. See gcp.container.Cluster for schema.

nodeCount number

The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.

nodeLocations string[]

The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.

operation string
placementPolicy NodePoolPlacementPolicyArgs

) Specifies a custom placement policy for the nodes.

project string

The ID of the project in which to create the node pool. If blank, the provider-configured project will be used.

upgradeSettings NodePoolUpgradeSettingsArgs

Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below.

version string

The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions in a provider-compatible way.

autoscaling NodePoolAutoscalingArgs

Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. Structure is documented below.

cluster str

The cluster to create the node pool for. Cluster must be present in location provided for clusters. May be specified in the format projects/{{project}}/locations/{{location}}/clusters/{{cluster}} or as just the name of the cluster.

initial_node_count int

The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource. WARNING: Resizing your node pool manually may change this value in your existing cluster, which will trigger destruction and recreation on the next provider run (to rectify the discrepancy). If you don't need this value, don't set it. If you do need it, you can use a lifecycle block to ignore subsqeuent changes to this field.

instance_group_urls Sequence[str]

The resource URLs of the managed instance groups associated with this node pool.

location str

The location (region or zone) of the cluster.

managed_instance_group_urls Sequence[str]

List of instance group URLs which have been assigned to this node pool.

management NodePoolManagementArgs

Node management configuration, wherein auto-repair and auto-upgrade is configured. Structure is documented below.

max_pods_per_node int

The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled. See the official documentation for more information.

name str

The name of the node pool. If left blank, the provider will auto-generate a unique name.

name_prefix str

Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.

network_config NodePoolNetworkConfigArgs

The network configuration of the pool. See gcp.container.Cluster for schema.

node_config NodePoolNodeConfigArgs

Parameters used in creating the node pool. See gcp.container.Cluster for schema.

node_count int

The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.

node_locations Sequence[str]

The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.

operation str
placement_policy NodePoolPlacementPolicyArgs

) Specifies a custom placement policy for the nodes.

project str

The ID of the project in which to create the node pool. If blank, the provider-configured project will be used.

upgrade_settings NodePoolUpgradeSettingsArgs

Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below.

version str

The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions in a provider-compatible way.

autoscaling Property Map

Configuration required by cluster autoscaler to adjust the size of the node pool to the current cluster usage. Structure is documented below.

cluster String

The cluster to create the node pool for. Cluster must be present in location provided for clusters. May be specified in the format projects/{{project}}/locations/{{location}}/clusters/{{cluster}} or as just the name of the cluster.

initialNodeCount Number

The initial number of nodes for the pool. In regional or multi-zonal clusters, this is the number of nodes per zone. Changing this will force recreation of the resource. WARNING: Resizing your node pool manually may change this value in your existing cluster, which will trigger destruction and recreation on the next provider run (to rectify the discrepancy). If you don't need this value, don't set it. If you do need it, you can use a lifecycle block to ignore subsqeuent changes to this field.

instanceGroupUrls List<String>

The resource URLs of the managed instance groups associated with this node pool.

location String

The location (region or zone) of the cluster.

managedInstanceGroupUrls List<String>

List of instance group URLs which have been assigned to this node pool.

management Property Map

Node management configuration, wherein auto-repair and auto-upgrade is configured. Structure is documented below.

maxPodsPerNode Number

The maximum number of pods per node in this node pool. Note that this does not work on node pools which are "route-based" - that is, node pools belonging to clusters that do not have IP Aliasing enabled. See the official documentation for more information.

name String

The name of the node pool. If left blank, the provider will auto-generate a unique name.

namePrefix String

Creates a unique name for the node pool beginning with the specified prefix. Conflicts with name.

networkConfig Property Map

The network configuration of the pool. See gcp.container.Cluster for schema.

nodeConfig Property Map

Parameters used in creating the node pool. See gcp.container.Cluster for schema.

nodeCount Number

The number of nodes per instance group. This field can be used to update the number of nodes per instance group but should not be used alongside autoscaling.

nodeLocations List<String>

The list of zones in which the node pool's nodes should be located. Nodes must be in the region of their regional cluster or in the same region as their cluster's zone for zonal clusters. If unspecified, the cluster-level node_locations will be used.

operation String
placementPolicy Property Map

) Specifies a custom placement policy for the nodes.

project String

The ID of the project in which to create the node pool. If blank, the provider-configured project will be used.

upgradeSettings Property Map

Specify node upgrade settings to change how many nodes GKE attempts to upgrade at once. The number of nodes upgraded simultaneously is the sum of max_surge and max_unavailable. The maximum number of nodes upgraded simultaneously is limited to 20. Structure is documented below.

version String

The Kubernetes version for the nodes in this pool. Note that if this field and auto_upgrade are both specified, they will fight each other for what the node version should be, so setting both is highly discouraged. While a fuzzy version can be specified, it's recommended that you specify explicit versions as the provider will see spurious diffs when fuzzy versions are used. See the gcp.container.getEngineVersions data source's version_prefix field to approximate fuzzy versions in a provider-compatible way.

Supporting Types

NodePoolAutoscaling

LocationPolicy string

Location policy specifies the algorithm used when scaling-up the node pool.
"BALANCED" - Is a best effort policy that aims to balance the sizes of available zones.
"ANY" - Instructs the cluster autoscaler to prioritize utilization of unused reservations, and reduce preemption risk for Spot VMs.

MaxNodeCount int

Maximum number of nodes per zone in the NodePool. Must be >= min_node_count. Cannot be used with total limits.

MinNodeCount int

Minimum number of nodes per zone in the NodePool. Must be >=0 and <= max_node_count. Cannot be used with total limits.

TotalMaxNodeCount int

Total maximum number of nodes in the NodePool. Must be >= total_min_node_count. Cannot be used with per zone limits.

TotalMinNodeCount int

Total minimum number of nodes in the NodePool. Must be >=0 and <= total_max_node_count. Cannot be used with per zone limits.

LocationPolicy string

Location policy specifies the algorithm used when scaling-up the node pool.
"BALANCED" - Is a best effort policy that aims to balance the sizes of available zones.
"ANY" - Instructs the cluster autoscaler to prioritize utilization of unused reservations, and reduce preemption risk for Spot VMs.

MaxNodeCount int

Maximum number of nodes per zone in the NodePool. Must be >= min_node_count. Cannot be used with total limits.

MinNodeCount int

Minimum number of nodes per zone in the NodePool. Must be >=0 and <= max_node_count. Cannot be used with total limits.

TotalMaxNodeCount int

Total maximum number of nodes in the NodePool. Must be >= total_min_node_count. Cannot be used with per zone limits.

TotalMinNodeCount int

Total minimum number of nodes in the NodePool. Must be >=0 and <= total_max_node_count. Cannot be used with per zone limits.

locationPolicy String

Location policy specifies the algorithm used when scaling-up the node pool.
"BALANCED" - Is a best effort policy that aims to balance the sizes of available zones.
"ANY" - Instructs the cluster autoscaler to prioritize utilization of unused reservations, and reduce preemption risk for Spot VMs.

maxNodeCount Integer

Maximum number of nodes per zone in the NodePool. Must be >= min_node_count. Cannot be used with total limits.

minNodeCount Integer

Minimum number of nodes per zone in the NodePool. Must be >=0 and <= max_node_count. Cannot be used with total limits.

totalMaxNodeCount Integer

Total maximum number of nodes in the NodePool. Must be >= total_min_node_count. Cannot be used with per zone limits.

totalMinNodeCount Integer

Total minimum number of nodes in the NodePool. Must be >=0 and <= total_max_node_count. Cannot be used with per zone limits.

locationPolicy string

Location policy specifies the algorithm used when scaling-up the node pool.
"BALANCED" - Is a best effort policy that aims to balance the sizes of available zones.
"ANY" - Instructs the cluster autoscaler to prioritize utilization of unused reservations, and reduce preemption risk for Spot VMs.

maxNodeCount number

Maximum number of nodes per zone in the NodePool. Must be >= min_node_count. Cannot be used with total limits.

minNodeCount number

Minimum number of nodes per zone in the NodePool. Must be >=0 and <= max_node_count. Cannot be used with total limits.

totalMaxNodeCount number

Total maximum number of nodes in the NodePool. Must be >= total_min_node_count. Cannot be used with per zone limits.

totalMinNodeCount number

Total minimum number of nodes in the NodePool. Must be >=0 and <= total_max_node_count. Cannot be used with per zone limits.

location_policy str

Location policy specifies the algorithm used when scaling-up the node pool.
"BALANCED" - Is a best effort policy that aims to balance the sizes of available zones.
"ANY" - Instructs the cluster autoscaler to prioritize utilization of unused reservations, and reduce preemption risk for Spot VMs.

max_node_count int

Maximum number of nodes per zone in the NodePool. Must be >= min_node_count. Cannot be used with total limits.

min_node_count int

Minimum number of nodes per zone in the NodePool. Must be >=0 and <= max_node_count. Cannot be used with total limits.

total_max_node_count int

Total maximum number of nodes in the NodePool. Must be >= total_min_node_count. Cannot be used with per zone limits.

total_min_node_count int

Total minimum number of nodes in the NodePool. Must be >=0 and <= total_max_node_count. Cannot be used with per zone limits.

locationPolicy String

Location policy specifies the algorithm used when scaling-up the node pool.
"BALANCED" - Is a best effort policy that aims to balance the sizes of available zones.
"ANY" - Instructs the cluster autoscaler to prioritize utilization of unused reservations, and reduce preemption risk for Spot VMs.

maxNodeCount Number

Maximum number of nodes per zone in the NodePool. Must be >= min_node_count. Cannot be used with total limits.

minNodeCount Number

Minimum number of nodes per zone in the NodePool. Must be >=0 and <= max_node_count. Cannot be used with total limits.

totalMaxNodeCount Number

Total maximum number of nodes in the NodePool. Must be >= total_min_node_count. Cannot be used with per zone limits.

totalMinNodeCount Number

Total minimum number of nodes in the NodePool. Must be >=0 and <= total_max_node_count. Cannot be used with per zone limits.

NodePoolManagement

AutoRepair bool

Whether the nodes will be automatically repaired.

AutoUpgrade bool

Whether the nodes will be automatically upgraded.

AutoRepair bool

Whether the nodes will be automatically repaired.

AutoUpgrade bool

Whether the nodes will be automatically upgraded.

autoRepair Boolean

Whether the nodes will be automatically repaired.

autoUpgrade Boolean

Whether the nodes will be automatically upgraded.

autoRepair boolean

Whether the nodes will be automatically repaired.

autoUpgrade boolean

Whether the nodes will be automatically upgraded.

auto_repair bool

Whether the nodes will be automatically repaired.

auto_upgrade bool

Whether the nodes will be automatically upgraded.

autoRepair Boolean

Whether the nodes will be automatically repaired.

autoUpgrade Boolean

Whether the nodes will be automatically upgraded.

NodePoolNetworkConfig

NodePoolNodeConfig

BootDiskKmsKey string
DiskSizeGb int
DiskType string
EphemeralStorageConfig NodePoolNodeConfigEphemeralStorageConfig
GcfsConfig NodePoolNodeConfigGcfsConfig
GuestAccelerators List<NodePoolNodeConfigGuestAccelerator>
Gvnic NodePoolNodeConfigGvnic
ImageType string
KubeletConfig NodePoolNodeConfigKubeletConfig
Labels Dictionary<string, string>
LinuxNodeConfig NodePoolNodeConfigLinuxNodeConfig
LocalSsdCount int
MachineType string
Metadata Dictionary<string, string>
MinCpuPlatform string
NodeGroup string
OauthScopes List<string>
Preemptible bool
ReservationAffinity NodePoolNodeConfigReservationAffinity
SandboxConfig NodePoolNodeConfigSandboxConfig
ServiceAccount string
ShieldedInstanceConfig NodePoolNodeConfigShieldedInstanceConfig
Spot bool
Tags List<string>
Taints List<NodePoolNodeConfigTaint>
WorkloadMetadataConfig NodePoolNodeConfigWorkloadMetadataConfig
BootDiskKmsKey string
DiskSizeGb int
DiskType string
EphemeralStorageConfig NodePoolNodeConfigEphemeralStorageConfig
GcfsConfig NodePoolNodeConfigGcfsConfig
GuestAccelerators []NodePoolNodeConfigGuestAccelerator
Gvnic NodePoolNodeConfigGvnic
ImageType string
KubeletConfig NodePoolNodeConfigKubeletConfig
Labels map[string]string
LinuxNodeConfig NodePoolNodeConfigLinuxNodeConfig
LocalSsdCount int
MachineType string
Metadata map[string]string
MinCpuPlatform string
NodeGroup string
OauthScopes []string
Preemptible bool
ReservationAffinity NodePoolNodeConfigReservationAffinity
SandboxConfig NodePoolNodeConfigSandboxConfig
ServiceAccount string
ShieldedInstanceConfig NodePoolNodeConfigShieldedInstanceConfig
Spot bool
Tags []string
Taints []NodePoolNodeConfigTaint
WorkloadMetadataConfig NodePoolNodeConfigWorkloadMetadataConfig
bootDiskKmsKey String
diskSizeGb Integer
diskType String
ephemeralStorageConfig NodePoolNodeConfigEphemeralStorageConfig
gcfsConfig NodePoolNodeConfigGcfsConfig
guestAccelerators List<NodePoolNodeConfigGuestAccelerator>
gvnic NodePoolNodeConfigGvnic
imageType String
kubeletConfig NodePoolNodeConfigKubeletConfig
labels Map<String,String>
linuxNodeConfig NodePoolNodeConfigLinuxNodeConfig
localSsdCount Integer
machineType String
metadata Map<String,String>
minCpuPlatform String
nodeGroup String
oauthScopes List<String>
preemptible Boolean
reservationAffinity NodePoolNodeConfigReservationAffinity
sandboxConfig NodePoolNodeConfigSandboxConfig
serviceAccount String
shieldedInstanceConfig NodePoolNodeConfigShieldedInstanceConfig
spot Boolean
tags List<String>
taints List<NodePoolNodeConfigTaint>
workloadMetadataConfig NodePoolNodeConfigWorkloadMetadataConfig
bootDiskKmsKey string
diskSizeGb number
diskType string
ephemeralStorageConfig NodePoolNodeConfigEphemeralStorageConfig
gcfsConfig NodePoolNodeConfigGcfsConfig
guestAccelerators NodePoolNodeConfigGuestAccelerator[]
gvnic NodePoolNodeConfigGvnic
imageType string
kubeletConfig NodePoolNodeConfigKubeletConfig
labels {[key: string]: string}
linuxNodeConfig NodePoolNodeConfigLinuxNodeConfig
localSsdCount number
machineType string
metadata {[key: string]: string}
minCpuPlatform string
nodeGroup string
oauthScopes string[]
preemptible boolean
reservationAffinity NodePoolNodeConfigReservationAffinity
sandboxConfig NodePoolNodeConfigSandboxConfig
serviceAccount string
shieldedInstanceConfig NodePoolNodeConfigShieldedInstanceConfig
spot boolean
tags string[]
taints NodePoolNodeConfigTaint[]
workloadMetadataConfig NodePoolNodeConfigWorkloadMetadataConfig
boot_disk_kms_key str
disk_size_gb int
disk_type str
ephemeral_storage_config NodePoolNodeConfigEphemeralStorageConfig
gcfs_config NodePoolNodeConfigGcfsConfig
guest_accelerators Sequence[NodePoolNodeConfigGuestAccelerator]
gvnic NodePoolNodeConfigGvnic
image_type str
kubelet_config NodePoolNodeConfigKubeletConfig
labels Mapping[str, str]
linux_node_config NodePoolNodeConfigLinuxNodeConfig
local_ssd_count int
machine_type str
metadata Mapping[str, str]
min_cpu_platform str
node_group str
oauth_scopes Sequence[str]
preemptible bool
reservation_affinity NodePoolNodeConfigReservationAffinity
sandbox_config NodePoolNodeConfigSandboxConfig
service_account str
shielded_instance_config NodePoolNodeConfigShieldedInstanceConfig
spot bool
tags Sequence[str]
taints Sequence[NodePoolNodeConfigTaint]
workload_metadata_config NodePoolNodeConfigWorkloadMetadataConfig

NodePoolNodeConfigEphemeralStorageConfig

NodePoolNodeConfigGcfsConfig

Enabled bool
Enabled bool
enabled Boolean
enabled boolean
enabled bool
enabled Boolean

NodePoolNodeConfigGuestAccelerator

Count int
Type string

The type of the policy. Supports a single value: COMPACT. Specifying COMPACT placement policy type places node pool's nodes in a closer physical proximity in order to reduce network latency between nodes.

GpuPartitionSize string
Count int
Type string

The type of the policy. Supports a single value: COMPACT. Specifying COMPACT placement policy type places node pool's nodes in a closer physical proximity in order to reduce network latency between nodes.

GpuPartitionSize string
count Integer
type String

The type of the policy. Supports a single value: COMPACT. Specifying COMPACT placement policy type places node pool's nodes in a closer physical proximity in order to reduce network latency between nodes.

gpuPartitionSize String
count number
type string

The type of the policy. Supports a single value: COMPACT. Specifying COMPACT placement policy type places node pool's nodes in a closer physical proximity in order to reduce network latency between nodes.

gpuPartitionSize string
count int
type str

The type of the policy. Supports a single value: COMPACT. Specifying COMPACT placement policy type places node pool's nodes in a closer physical proximity in order to reduce network latency between nodes.

gpu_partition_size str
count Number
type String

The type of the policy. Supports a single value: COMPACT. Specifying COMPACT placement policy type places node pool's nodes in a closer physical proximity in order to reduce network latency between nodes.

gpuPartitionSize String

NodePoolNodeConfigGvnic

Enabled bool
Enabled bool
enabled Boolean
enabled boolean
enabled bool
enabled Boolean

NodePoolNodeConfigKubeletConfig

NodePoolNodeConfigLinuxNodeConfig

Sysctls Dictionary<string, string>
Sysctls map[string]string
sysctls Map<String,String>
sysctls {[key: string]: string}
sysctls Mapping[str, str]
sysctls Map<String>

NodePoolNodeConfigReservationAffinity

ConsumeReservationType string
Key string
Values List<string>
ConsumeReservationType string
Key string
Values []string
consumeReservationType String
key String
values List<String>
consumeReservationType string
key string
values string[]
consume_reservation_type str
key str
values Sequence[str]
consumeReservationType String
key String
values List<String>

NodePoolNodeConfigSandboxConfig

NodePoolNodeConfigShieldedInstanceConfig

NodePoolNodeConfigTaint

Effect string
Key string
Value string
Effect string
Key string
Value string
effect String
key String
value String
effect string
key string
value string
effect str
key str
value str
effect String
key String
value String

NodePoolNodeConfigWorkloadMetadataConfig

Mode string
Mode string
mode String
mode string
mode str
mode String

NodePoolPlacementPolicy

Type string

The type of the policy. Supports a single value: COMPACT. Specifying COMPACT placement policy type places node pool's nodes in a closer physical proximity in order to reduce network latency between nodes.

Type string

The type of the policy. Supports a single value: COMPACT. Specifying COMPACT placement policy type places node pool's nodes in a closer physical proximity in order to reduce network latency between nodes.

type String

The type of the policy. Supports a single value: COMPACT. Specifying COMPACT placement policy type places node pool's nodes in a closer physical proximity in order to reduce network latency between nodes.

type string

The type of the policy. Supports a single value: COMPACT. Specifying COMPACT placement policy type places node pool's nodes in a closer physical proximity in order to reduce network latency between nodes.

type str

The type of the policy. Supports a single value: COMPACT. Specifying COMPACT placement policy type places node pool's nodes in a closer physical proximity in order to reduce network latency between nodes.

type String

The type of the policy. Supports a single value: COMPACT. Specifying COMPACT placement policy type places node pool's nodes in a closer physical proximity in order to reduce network latency between nodes.

NodePoolUpgradeSettings

MaxSurge int

The number of additional nodes that can be added to the node pool during an upgrade. Increasing max_surge raises the number of nodes that can be upgraded simultaneously. Can be set to 0 or greater.

MaxUnavailable int

The number of nodes that can be simultaneously unavailable during an upgrade. Increasing max_unavailable raises the number of nodes that can be upgraded in parallel. Can be set to 0 or greater.

MaxSurge int

The number of additional nodes that can be added to the node pool during an upgrade. Increasing max_surge raises the number of nodes that can be upgraded simultaneously. Can be set to 0 or greater.

MaxUnavailable int

The number of nodes that can be simultaneously unavailable during an upgrade. Increasing max_unavailable raises the number of nodes that can be upgraded in parallel. Can be set to 0 or greater.

maxSurge Integer

The number of additional nodes that can be added to the node pool during an upgrade. Increasing max_surge raises the number of nodes that can be upgraded simultaneously. Can be set to 0 or greater.

maxUnavailable Integer

The number of nodes that can be simultaneously unavailable during an upgrade. Increasing max_unavailable raises the number of nodes that can be upgraded in parallel. Can be set to 0 or greater.

maxSurge number

The number of additional nodes that can be added to the node pool during an upgrade. Increasing max_surge raises the number of nodes that can be upgraded simultaneously. Can be set to 0 or greater.

maxUnavailable number

The number of nodes that can be simultaneously unavailable during an upgrade. Increasing max_unavailable raises the number of nodes that can be upgraded in parallel. Can be set to 0 or greater.

max_surge int

The number of additional nodes that can be added to the node pool during an upgrade. Increasing max_surge raises the number of nodes that can be upgraded simultaneously. Can be set to 0 or greater.

max_unavailable int

The number of nodes that can be simultaneously unavailable during an upgrade. Increasing max_unavailable raises the number of nodes that can be upgraded in parallel. Can be set to 0 or greater.

maxSurge Number

The number of additional nodes that can be added to the node pool during an upgrade. Increasing max_surge raises the number of nodes that can be upgraded simultaneously. Can be set to 0 or greater.

maxUnavailable Number

The number of nodes that can be simultaneously unavailable during an upgrade. Increasing max_unavailable raises the number of nodes that can be upgraded in parallel. Can be set to 0 or greater.

Import

Node pools can be imported using the project, location, cluster and name. If the project is omitted, the project value in the provider configuration will be used. Examples

 $ pulumi import gcp:container/nodePool:NodePool mainpool my-gcp-project/us-east1-a/my-cluster/main-pool
 $ pulumi import gcp:container/nodePool:NodePool mainpool us-east1/my-cluster/main-pool

Package Details

Repository
https://github.com/pulumi/pulumi-gcp
License
Apache-2.0
Notes

This Pulumi package is based on the google-beta Terraform Provider.