VMwareCluster

class VMwareCluster : KotlinCustomResource

Example Usage

Gkeonprem Vmware Cluster Basic

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.gkeonprem.VMwareCluster;
import com.pulumi.gcp.gkeonprem.VMwareClusterArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterNetworkConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterNetworkConfigDhcpIpConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterControlPlaneNodeArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerVipConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerMetalLbConfigArgs;
import com.pulumi.resources.CustomResourceOptions;
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 cluster_basic = new VMwareCluster("cluster-basic", VMwareClusterArgs.builder()
.location("us-west1")
.adminClusterMembership("projects/870316890899/locations/global/memberships/gkeonprem-terraform-test")
.description("test cluster")
.onPremVersion("1.13.1-gke.35")
.annotations()
.networkConfig(VMwareClusterNetworkConfigArgs.builder()
.serviceAddressCidrBlocks("10.96.0.0/12")
.podAddressCidrBlocks("192.168.0.0/16")
.dhcpIpConfig(VMwareClusterNetworkConfigDhcpIpConfigArgs.builder()
.enabled(true)
.build())
.build())
.controlPlaneNode(VMwareClusterControlPlaneNodeArgs.builder()
.cpus(4)
.memory(8192)
.replicas(1)
.build())
.loadBalancer(VMwareClusterLoadBalancerArgs.builder()
.vipConfig(VMwareClusterLoadBalancerVipConfigArgs.builder()
.controlPlaneVip("10.251.133.5")
.ingressVip("10.251.135.19")
.build())
.metalLbConfig(VMwareClusterLoadBalancerMetalLbConfigArgs.builder()
.addressPools(
VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs.builder()
.pool("ingress-ip")
.manualAssign("true")
.addresses("10.251.135.19")
.avoidBuggyIps(true)
.build(),
VMwareClusterLoadBalancerMetalLbConfigAddressPoolArgs.builder()
.pool("lb-test-ip")
.manualAssign("true")
.addresses("10.251.135.19")
.avoidBuggyIps(true)
.build())
.build())
.build())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
}
}

Gkeonprem Vmware Cluster F5lb

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.gkeonprem.VMwareCluster;
import com.pulumi.gcp.gkeonprem.VMwareClusterArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterNetworkConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterNetworkConfigDhcpIpConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterNetworkConfigControlPlaneV2ConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterControlPlaneNodeArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterControlPlaneNodeAutoResizeConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerVipConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerF5ConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterDataplaneV2Args;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterAuthorizationArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterAntiAffinityGroupsArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterAutoRepairConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterStorageArgs;
import com.pulumi.resources.CustomResourceOptions;
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 cluster_f5lb = new VMwareCluster("cluster-f5lb", VMwareClusterArgs.builder()
.location("us-west1")
.adminClusterMembership("projects/870316890899/locations/global/memberships/gkeonprem-terraform-test")
.description("test cluster")
.onPremVersion("1.13.1-gke.35")
.annotations()
.networkConfig(VMwareClusterNetworkConfigArgs.builder()
.serviceAddressCidrBlocks("10.96.0.0/12")
.podAddressCidrBlocks("192.168.0.0/16")
.dhcpIpConfig(VMwareClusterNetworkConfigDhcpIpConfigArgs.builder()
.enabled(true)
.build())
.controlPlaneV2Config(VMwareClusterNetworkConfigControlPlaneV2ConfigArgs.builder()
.controlPlaneIpBlock(VMwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockArgs.builder()
.ips(VMwareClusterNetworkConfigControlPlaneV2ConfigControlPlaneIpBlockIpArgs.builder()
.hostname("test-hostname")
.ip("10.0.0.1")
.build())
.netmask("10.0.0.1/32")
.gateway("test-gateway")
.build())
.build())
.build())
.controlPlaneNode(VMwareClusterControlPlaneNodeArgs.builder()
.cpus(4)
.memory(8192)
.replicas(1)
.autoResizeConfig(VMwareClusterControlPlaneNodeAutoResizeConfigArgs.builder()
.enabled(true)
.build())
.build())
.loadBalancer(VMwareClusterLoadBalancerArgs.builder()
.vipConfig(VMwareClusterLoadBalancerVipConfigArgs.builder()
.controlPlaneVip("10.251.133.5")
.ingressVip("10.251.135.19")
.build())
.f5Config(VMwareClusterLoadBalancerF5ConfigArgs.builder()
.address("10.0.0.1")
.partition("test-partition")
.snatPool("test-snap-pool")
.build())
.build())
.dataplaneV2(VMwareClusterDataplaneV2Args.builder()
.dataplaneV2Enabled(true)
.windowsDataplaneV2Enabled(true)
.advancedNetworking(true)
.build())
.vmTrackingEnabled(true)
.enableControlPlaneV2(true)
.authorization(VMwareClusterAuthorizationArgs.builder()
.adminUsers(VMwareClusterAuthorizationAdminUserArgs.builder()
.username("testuser@gmail.com")
.build())
.build())
.antiAffinityGroups(VMwareClusterAntiAffinityGroupsArgs.builder()
.aagConfigDisabled(true)
.build())
.autoRepairConfig(VMwareClusterAutoRepairConfigArgs.builder()
.enabled(true)
.build())
.storage(VMwareClusterStorageArgs.builder()
.vsphereCsiDisabled(true)
.build())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
}
}

Gkeonprem Vmware Cluster Manuallb

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.gkeonprem.VMwareCluster;
import com.pulumi.gcp.gkeonprem.VMwareClusterArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterNetworkConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterNetworkConfigHostConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterNetworkConfigStaticIpConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterControlPlaneNodeArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterControlPlaneNodeAutoResizeConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerVipConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterLoadBalancerManualLbConfigArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterDataplaneV2Args;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterUpgradePolicyArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterAuthorizationArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterAntiAffinityGroupsArgs;
import com.pulumi.gcp.gkeonprem.inputs.VMwareClusterAutoRepairConfigArgs;
import com.pulumi.resources.CustomResourceOptions;
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 cluster_manuallb = new VMwareCluster("cluster-manuallb", VMwareClusterArgs.builder()
.location("us-west1")
.adminClusterMembership("projects/870316890899/locations/global/memberships/gkeonprem-terraform-test")
.description("test cluster")
.onPremVersion("1.13.1-gke.35")
.annotations()
.networkConfig(VMwareClusterNetworkConfigArgs.builder()
.serviceAddressCidrBlocks("10.96.0.0/12")
.podAddressCidrBlocks("192.168.0.0/16")
.hostConfig(VMwareClusterNetworkConfigHostConfigArgs.builder()
.dnsServers("10.254.41.1")
.ntpServers("216.239.35.8")
.dnsSearchDomains("test-domain")
.build())
.staticIpConfig(VMwareClusterNetworkConfigStaticIpConfigArgs.builder()
.ipBlocks(VMwareClusterNetworkConfigStaticIpConfigIpBlockArgs.builder()
.netmask("255.255.252.0")
.gateway("10.251.31.254")
.ips(
VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs.builder()
.ip("10.251.30.153")
.hostname("test-hostname1")
.build(),
VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs.builder()
.ip("10.251.31.206")
.hostname("test-hostname2")
.build(),
VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs.builder()
.ip("10.251.31.193")
.hostname("test-hostname3")
.build(),
VMwareClusterNetworkConfigStaticIpConfigIpBlockIpArgs.builder()
.ip("10.251.30.230")
.hostname("test-hostname4")
.build())
.build())
.build())
.build())
.controlPlaneNode(VMwareClusterControlPlaneNodeArgs.builder()
.cpus(4)
.memory(8192)
.replicas(1)
.autoResizeConfig(VMwareClusterControlPlaneNodeAutoResizeConfigArgs.builder()
.enabled(true)
.build())
.build())
.loadBalancer(VMwareClusterLoadBalancerArgs.builder()
.vipConfig(VMwareClusterLoadBalancerVipConfigArgs.builder()
.controlPlaneVip("10.251.133.5")
.ingressVip("10.251.135.19")
.build())
.manualLbConfig(VMwareClusterLoadBalancerManualLbConfigArgs.builder()
.ingressHttpNodePort(30005)
.ingressHttpsNodePort(30006)
.controlPlaneNodePort(30007)
.konnectivityServerNodePort(30008)
.build())
.build())
.dataplaneV2(VMwareClusterDataplaneV2Args.builder()
.dataplaneV2Enabled(true)
.windowsDataplaneV2Enabled(true)
.advancedNetworking(true)
.build())
.vmTrackingEnabled(true)
.enableControlPlaneV2(true)
.upgradePolicy(VMwareClusterUpgradePolicyArgs.builder()
.controlPlaneOnly(true)
.build())
.authorization(VMwareClusterAuthorizationArgs.builder()
.adminUsers(VMwareClusterAuthorizationAdminUserArgs.builder()
.username("testuser@gmail.com")
.build())
.build())
.antiAffinityGroups(VMwareClusterAntiAffinityGroupsArgs.builder()
.aagConfigDisabled(true)
.build())
.autoRepairConfig(VMwareClusterAutoRepairConfigArgs.builder()
.enabled(true)
.build())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
}
}

Import

VmwareCluster can be imported using any of these accepted formats

$ pulumi import gcp:gkeonprem/vMwareCluster:VMwareCluster default projects/{{project}}/locations/{{location}}/vmwareClusters/{{name}}
$ pulumi import gcp:gkeonprem/vMwareCluster:VMwareCluster default {{project}}/{{location}}/{{name}}
$ pulumi import gcp:gkeonprem/vMwareCluster:VMwareCluster default {{location}}/{{name}}

Properties

Link copied to clipboard

The admin cluster this VMware User Cluster belongs to. This is the full resource name of the admin cluster's hub membership. In the future, references to other resource types might be allowed if admin clusters are modeled as their own resources.

Link copied to clipboard
val annotations: Output<Map<String, String>>

Annotations on the VMware User Cluster. This field has the same restrictions as Kubernetes annotations. The total size of all keys and values combined is limited to 256k. Key can have 2 segments: prefix (optional) and name (required), separated by a slash (/). Prefix must be a DNS subdomain. Name must be 63 characters or less, begin and end with alphanumerics, with dashes (-), underscores (_), dots (.), and alphanumerics between.

Link copied to clipboard

AAGConfig specifies whether to spread VMware User Cluster nodes across at least three physical hosts in the datacenter. Structure is documented below.

Link copied to clipboard

RBAC policy that will be applied and managed by GKE On-Prem. Structure is documented below.

Link copied to clipboard

Configuration for auto repairing. Structure is documented below.

Link copied to clipboard

VMware User Cluster control plane nodes must have either 1 or 3 replicas. Structure is documented below.

Link copied to clipboard
val createTime: Output<String>

The time at which VMware User Cluster was created.

Link copied to clipboard

VmwareDataplaneV2Config specifies configuration for Dataplane V2. Structure is documented below.

Link copied to clipboard
val deleteTime: Output<String>

The time at which VMware User Cluster was deleted.

Link copied to clipboard
val description: Output<String>?

A human readable description of this VMware User Cluster.

Link copied to clipboard

Enable control plane V2. Default to false.

Link copied to clipboard
val endpoint: Output<String>

The DNS name of VMware User Cluster's API server.

Link copied to clipboard
val etag: Output<String>

This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. Allows clients to perform consistent read-modify-writes through optimistic concurrency control.

Link copied to clipboard

Fleet configuration for the cluster. Structure is documented below.

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

Load Balancer configuration. Structure is documented below.

Link copied to clipboard
val localName: Output<String>

The object name of the VMware OnPremUserCluster custom resource on the associated admin cluster. This field is used to support conflicting names when enrolling existing clusters to the API. When used as a part of cluster enrollment, this field will differ from the ID in the resource name. For new clusters, this field will match the user provided cluster ID and be visible in the last component of the resource name. It is not modifiable. All users should use this name to access their cluster using gkectl or kubectl and should expect to see the local name when viewing admin cluster controller logs.

Link copied to clipboard
val location: Output<String>

The location of the resource.

Link copied to clipboard
val name: Output<String>

The VMware cluster name.

Link copied to clipboard

The VMware User Cluster network configuration. Structure is documented below.

Link copied to clipboard
val onPremVersion: Output<String>

The Anthos clusters on the VMware version for your user cluster.

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
Link copied to clipboard
Link copied to clipboard
val reconciling: Output<Boolean>

If set, there are currently changes in flight to the VMware User Cluster.

Link copied to clipboard
val state: Output<String>

(Output) The lifecycle state of the condition.

Link copied to clipboard

(Output) Specifies the detailed validation check status Structure is documented below.

Link copied to clipboard

Storage configuration. Structure is documented below.

Link copied to clipboard
val uid: Output<String>

The unique identifier of the VMware User Cluster.

Link copied to clipboard
val updateTime: Output<String>

The time at which VMware User Cluster was last updated.

Link copied to clipboard

Specifies upgrade policy for the cluster. Structure is documented below.

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

ValidationCheck represents the result of the preflight check job. Structure is documented below.

Link copied to clipboard

VmwareVCenterConfig specifies vCenter config for the user cluster. Inherited from the admin cluster. Structure is documented below.

Link copied to clipboard

Enable VM tracking.