Package com.pulumi.gcp.edgecontainer
Class Cluster
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.gcp.edgecontainer.Cluster
-
public class Cluster extends com.pulumi.resources.CustomResource
Cluster contains information about a Google Distributed Cloud Edge Kubernetes cluster. To get more information about Cluster, see: * [API documentation](https://cloud.google.com/distributed-cloud/edge/latest/docs/reference/container/rest/v1/projects.locations.clusters) * How-to Guides * [Create and manage clusters](https://cloud.google.com/distributed-cloud/edge/latest/docs/clusters) ## Example Usage ### Edgecontainer Cluster ```java 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("[email protected]") .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 ```java 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("[email protected]") .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 ```java 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("[email protected]") .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](https://developer.hashicorp.com/terraform/language/import) to import Cluster using one of the formats above. For exampletf import { id = "projects/{{project}}/locations/{{location}}/clusters/{{name}}" to = google_edgecontainer_cluster.default } ```sh $ 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 ``` ```sh $ pulumi import gcp:edgecontainer/cluster:Cluster default projects/{{project}}/locations/{{location}}/clusters/{{name}} ``` ```sh $ pulumi import gcp:edgecontainer/cluster:Cluster default {{project}}/{{location}}/{{name}} ``` ```sh $ pulumi import gcp:edgecontainer/cluster:Cluster default {{location}}/{{name}} ```
-
-
Constructor Summary
Constructors Constructor Description Cluster(java.lang.String name)
Cluster(java.lang.String name, ClusterArgs args)
Cluster(java.lang.String name, ClusterArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<ClusterAuthorization>
authorization()
com.pulumi.core.Output<java.lang.String>
clusterCaCertificate()
com.pulumi.core.Output<java.util.Optional<ClusterControlPlane>>
controlPlane()
com.pulumi.core.Output<ClusterControlPlaneEncryption>
controlPlaneEncryption()
com.pulumi.core.Output<java.lang.String>
controlPlaneVersion()
com.pulumi.core.Output<java.lang.String>
createTime()
com.pulumi.core.Output<java.lang.Integer>
defaultMaxPodsPerNode()
com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>
effectiveLabels()
com.pulumi.core.Output<java.lang.String>
endpoint()
com.pulumi.core.Output<java.util.List<java.lang.String>>
externalLoadBalancerIpv4AddressPools()
com.pulumi.core.Output<ClusterFleet>
fleet()
static Cluster
get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, ClusterState state, com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>
labels()
com.pulumi.core.Output<java.lang.String>
location()
com.pulumi.core.Output<java.util.List<ClusterMaintenanceEvent>>
maintenanceEvents()
com.pulumi.core.Output<ClusterMaintenancePolicy>
maintenancePolicy()
com.pulumi.core.Output<java.lang.String>
name()
com.pulumi.core.Output<ClusterNetworking>
networking()
com.pulumi.core.Output<java.lang.String>
nodeVersion()
com.pulumi.core.Output<java.lang.Integer>
port()
com.pulumi.core.Output<java.lang.String>
project()
com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>
pulumiLabels()
com.pulumi.core.Output<java.lang.String>
releaseChannel()
com.pulumi.core.Output<java.lang.String>
status()
com.pulumi.core.Output<ClusterSystemAddonsConfig>
systemAddonsConfig()
com.pulumi.core.Output<java.lang.String>
targetVersion()
com.pulumi.core.Output<java.lang.String>
updateTime()
-
-
-
Constructor Detail
-
Cluster
public Cluster(java.lang.String name)
- Parameters:
name
- The _unique_ name of the resulting resource.
-
Cluster
public Cluster(java.lang.String name, ClusterArgs args)
- Parameters:
name
- The _unique_ name of the resulting resource.args
- The arguments to use to populate this resource's properties.
-
Cluster
public Cluster(java.lang.String name, ClusterArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)
- Parameters:
name
- The _unique_ name of the resulting resource.args
- The arguments to use to populate this resource's properties.options
- A bag of options that control this resource's behavior.
-
-
Method Detail
-
authorization
public com.pulumi.core.Output<ClusterAuthorization> authorization()
- Returns:
- RBAC policy that will be applied and managed by GEC. Structure is documented below.
-
clusterCaCertificate
public com.pulumi.core.Output<java.lang.String> clusterCaCertificate()
- Returns:
- The PEM-encoded public certificate of the cluster's CA. **Note**: This property is sensitive and will not be displayed in the plan.
-
controlPlane
public com.pulumi.core.Output<java.util.Optional<ClusterControlPlane>> controlPlane()
- Returns:
- The configuration of the cluster control plane. Structure is documented below.
-
controlPlaneEncryption
public com.pulumi.core.Output<ClusterControlPlaneEncryption> controlPlaneEncryption()
- Returns:
- Remote control plane disk encryption options. This field is only used when enabling CMEK support. Structure is documented below.
-
controlPlaneVersion
public com.pulumi.core.Output<java.lang.String> controlPlaneVersion()
- Returns:
- The control plane release version.
-
createTime
public com.pulumi.core.Output<java.lang.String> createTime()
- Returns:
- (Output) The time when the maintenance event request was created.
-
defaultMaxPodsPerNode
public com.pulumi.core.Output<java.lang.Integer> defaultMaxPodsPerNode()
- Returns:
- 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.
-
effectiveLabels
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> effectiveLabels()
- Returns:
- All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
-
endpoint
public com.pulumi.core.Output<java.lang.String> endpoint()
- Returns:
- The IP address of the Kubernetes API server.
-
externalLoadBalancerIpv4AddressPools
public com.pulumi.core.Output<java.util.List<java.lang.String>> externalLoadBalancerIpv4AddressPools()
- Returns:
- Address pools for cluster data plane external load balancing.
-
fleet
public com.pulumi.core.Output<ClusterFleet> fleet()
- Returns:
- 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.
-
labels
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> labels()
- Returns:
- 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.
-
location
public com.pulumi.core.Output<java.lang.String> location()
- Returns:
- The location of the resource.
-
maintenanceEvents
public com.pulumi.core.Output<java.util.List<ClusterMaintenanceEvent>> maintenanceEvents()
- Returns:
- 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.
-
maintenancePolicy
public com.pulumi.core.Output<ClusterMaintenancePolicy> maintenancePolicy()
- Returns:
- Cluster-wide maintenance policy configuration. Structure is documented below.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- The GDCE cluster name.
-
networking
public com.pulumi.core.Output<ClusterNetworking> networking()
- Returns:
- 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.
-
nodeVersion
public com.pulumi.core.Output<java.lang.String> nodeVersion()
- Returns:
- The lowest release version among all worker nodes. This field can be empty if the cluster does not have any worker nodes.
-
port
public com.pulumi.core.Output<java.lang.Integer> port()
- Returns:
- The port number of the Kubernetes API server.
-
project
public com.pulumi.core.Output<java.lang.String> project()
- Returns:
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
-
pulumiLabels
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> pulumiLabels()
- Returns:
- The combination of labels configured directly on the resource and default labels configured on the provider.
-
releaseChannel
public com.pulumi.core.Output<java.lang.String> releaseChannel()
- Returns:
- The release channel a cluster is subscribed to. Possible values are: `RELEASE_CHANNEL_UNSPECIFIED`, `NONE`, `REGULAR`.
-
status
public com.pulumi.core.Output<java.lang.String> status()
- Returns:
- Indicates the status of the cluster.
-
systemAddonsConfig
public com.pulumi.core.Output<ClusterSystemAddonsConfig> systemAddonsConfig()
- Returns:
- Config that customers are allowed to define for GDCE system add-ons. Structure is documented below.
-
targetVersion
public com.pulumi.core.Output<java.lang.String> targetVersion()
- Returns:
- The target cluster version. For example: "1.5.0".
-
updateTime
public com.pulumi.core.Output<java.lang.String> updateTime()
- Returns:
- (Output) The time when the maintenance event message was updated.
-
get
public static Cluster get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable ClusterState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name
- The _unique_ name of the resulting resource.id
- The _unique_ provider ID of the resource to lookup.state
-options
- Optional settings to control the behavior of the CustomResource.
-
-