Cluster

class Cluster : KotlinCustomResource

Cluster contains information about a Google Distributed Cloud Edge Kubernetes cluster. To get more information about Cluster, see:

Example Usage

Edgecontainer Cluster

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.edgecontainer.Cluster;
import com.pulumi.gcp.edgecontainer.ClusterArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterAuthorizationArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterAuthorizationAdminUsersArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterFleetArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterNetworkingArgs;
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) {
final var project = OrganizationsFunctions.getProject();
var default_ = new Cluster("default", ClusterArgs.builder()
.authorization(ClusterAuthorizationArgs.builder()
.adminUsers(ClusterAuthorizationAdminUsersArgs.builder()
.username("admin@hashicorptest.com")
.build())
.build())
.fleet(ClusterFleetArgs.builder()
.project(String.format("projects/%s", project.applyValue(getProjectResult -> getProjectResult.number())))
.build())
.labels(Map.ofEntries(
Map.entry("my_key", "my_val"),
Map.entry("other_key", "other_val")
))
.location("us-central1")
.networking(ClusterNetworkingArgs.builder()
.clusterIpv4CidrBlocks("10.0.0.0/16")
.servicesIpv4CidrBlocks("10.1.0.0/16")
.build())
.build());
}
}

Edgecontainer Cluster With Maintenance Window

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.edgecontainer.Cluster;
import com.pulumi.gcp.edgecontainer.ClusterArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterAuthorizationArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterAuthorizationAdminUsersArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterFleetArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterMaintenancePolicyArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterMaintenancePolicyWindowArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterMaintenancePolicyWindowRecurringWindowArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterMaintenancePolicyWindowRecurringWindowWindowArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterNetworkingArgs;
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) {
final var project = OrganizationsFunctions.getProject();
var default_ = new Cluster("default", ClusterArgs.builder()
.authorization(ClusterAuthorizationArgs.builder()
.adminUsers(ClusterAuthorizationAdminUsersArgs.builder()
.username("admin@hashicorptest.com")
.build())
.build())
.fleet(ClusterFleetArgs.builder()
.project(String.format("projects/%s", project.applyValue(getProjectResult -> getProjectResult.number())))
.build())
.location("us-central1")
.maintenancePolicy(ClusterMaintenancePolicyArgs.builder()
.window(ClusterMaintenancePolicyWindowArgs.builder()
.recurringWindow(ClusterMaintenancePolicyWindowRecurringWindowArgs.builder()
.recurrence("FREQ=WEEKLY;BYDAY=SA")
.window(ClusterMaintenancePolicyWindowRecurringWindowWindowArgs.builder()
.endTime("2023-01-01T17:00:00Z")
.startTime("2023-01-01T08:00:00Z")
.build())
.build())
.build())
.build())
.networking(ClusterNetworkingArgs.builder()
.clusterIpv4CidrBlocks("10.0.0.0/16")
.servicesIpv4CidrBlocks("10.1.0.0/16")
.build())
.build());
}
}

Edgecontainer Local Control Plane Cluster

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.organizations.OrganizationsFunctions;
import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
import com.pulumi.gcp.edgecontainer.Cluster;
import com.pulumi.gcp.edgecontainer.ClusterArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterAuthorizationArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterAuthorizationAdminUsersArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterControlPlaneArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterControlPlaneLocalArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterFleetArgs;
import com.pulumi.gcp.edgecontainer.inputs.ClusterNetworkingArgs;
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) {
final var project = OrganizationsFunctions.getProject();
var default_ = new Cluster("default", ClusterArgs.builder()
.authorization(ClusterAuthorizationArgs.builder()
.adminUsers(ClusterAuthorizationAdminUsersArgs.builder()
.username("admin@hashicorptest.com")
.build())
.build())
.controlPlane(ClusterControlPlaneArgs.builder()
.local(ClusterControlPlaneLocalArgs.builder()
.machineFilter("machine-name")
.nodeCount(1)
.nodeLocation("us-central1-edge-example-edgesite")
.sharedDeploymentPolicy("ALLOWED")
.build())
.build())
.externalLoadBalancerIpv4AddressPools("10.100.0.0-10.100.0.10")
.fleet(ClusterFleetArgs.builder()
.project(String.format("projects/%s", project.applyValue(getProjectResult -> getProjectResult.number())))
.build())
.location("us-central1")
.networking(ClusterNetworkingArgs.builder()
.clusterIpv4CidrBlocks("10.0.0.0/16")
.servicesIpv4CidrBlocks("10.1.0.0/16")
.build())
.build());
}
}

Import

Cluster can be imported using any of these accepted formats* projects/{{project}}/locations/{{location}}/clusters/{{name}} * {{project}}/{{location}}/{{name}} * {{location}}/{{name}} In Terraform v1.5.0 and later, use an import block to import Cluster using one of the formats above. For exampletf import { id = "projects/{{project}}/locations/{{location}}/clusters/{{name}}" to = google_edgecontainer_cluster.default }

$ pulumi import gcp:edgecontainer/cluster:Cluster When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Cluster can be imported using one of the formats above. For example
$ pulumi import gcp:edgecontainer/cluster:Cluster default projects/{{project}}/locations/{{location}}/clusters/{{name}}
$ pulumi import gcp:edgecontainer/cluster:Cluster default {{project}}/{{location}}/{{name}}
$ pulumi import gcp:edgecontainer/cluster:Cluster default {{location}}/{{name}}

Properties

Link copied to clipboard

RBAC policy that will be applied and managed by GEC. Structure is documented below.

Link copied to clipboard

The PEM-encoded public certificate of the cluster's CA. Note: This property is sensitive and will not be displayed in the plan.

Link copied to clipboard

The configuration of the cluster control plane. Structure is documented below.

Link copied to clipboard

Remote control plane disk encryption options. This field is only used when enabling CMEK support. Structure is documented below.

Link copied to clipboard

The control plane release version.

Link copied to clipboard
val createTime: Output<String>

(Output) The time when the maintenance event request was created.

Link copied to clipboard

The default maximum number of pods per node used if a maximum value is not specified explicitly for a node pool in this cluster. If unspecified, the Kubernetes default value will be used.

Link copied to clipboard

All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.

Link copied to clipboard
val endpoint: Output<String>

The IP address of the Kubernetes API server.

Link copied to clipboard

Address pools for cluster data plane external load balancing.

Link copied to clipboard
val fleet: Output<ClusterFleet>

Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. Structure is documented below.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val labels: Output<Map<String, String>>?

User-defined labels for the edgecloud cluster. Note: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field effective_labels for all of the labels present on the resource.

Link copied to clipboard
val location: Output<String>

The location of the resource.

Link copied to clipboard

All the maintenance events scheduled for the cluster, including the ones ongoing, planned for the future and done in the past (up to 90 days). Structure is documented below.

Link copied to clipboard

Cluster-wide maintenance policy configuration. Structure is documented below.

Link copied to clipboard
val name: Output<String>

The GDCE cluster name.

Link copied to clipboard

Fleet related configuration. Fleets are a Google Cloud concept for logically organizing clusters, letting you use and manage multi-cluster capabilities and apply consistent policies across your systems. Structure is documented below.

Link copied to clipboard
val nodeVersion: Output<String>

The lowest release version among all worker nodes. This field can be empty if the cluster does not have any worker nodes.

Link copied to clipboard
val port: Output<Int>

The port number of the Kubernetes API server.

Link copied to clipboard
val project: Output<String>

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
val pulumiLabels: Output<Map<String, String>>

The combination of labels configured directly on the resource and default labels configured on the provider.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val releaseChannel: Output<String>

The release channel a cluster is subscribed to. Possible values are: RELEASE_CHANNEL_UNSPECIFIED, NONE, REGULAR.

Link copied to clipboard
val status: Output<String>

Indicates the status of the cluster.

Link copied to clipboard

Config that customers are allowed to define for GDCE system add-ons. Structure is documented below.

Link copied to clipboard
val targetVersion: Output<String>

The target cluster version. For example: "1.5.0".

Link copied to clipboard
val updateTime: Output<String>

(Output) The time when the maintenance event message was updated.

Link copied to clipboard
val urn: Output<String>