import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * This resource provides the Cluster resource in Oracle Cloud Infrastructure Oracle Cloud VMware Solution service. * Api doc link for the resource: https://docs.oracle.com/iaas/api/#/en/vmware/latest/Cluster * * Example terraform configs related to the resource : https://github.com/oracle/terraform-provider-oci/tree/master/examples/ocvp * * Create a vSphere Cluster in software-defined data center (SDDC). * * Use the [WorkRequest](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20230701/WorkRequest/) operations to track the * creation of the Cluster. * * **Important:** You must configure the Cluster's networking resources with the security rules detailed in [Security Rules for Oracle Cloud VMware Solution SDDCs](https://docs.cloud.oracle.com/iaas/Content/VMware/Reference/ocvssecurityrules.htm). Otherwise, provisioning the SDDC will fail. The rules are based on the requirements set by VMware. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as oci from "@pulumi/oci"; * * const testCluster = new oci.ocvp.Cluster("test_cluster", { * computeAvailabilityDomain: clusterComputeAvailabilityDomain, * esxiHostsCount: Number(clusterEsxiHostsCount), * networkConfiguration: { * nsxEdgeVtepVlanId: testVlan.id, * nsxVtepVlanId: testVlan.id, * provisioningSubnetId: testSubnet.id, * vmotionVlanId: testVlan.id, * vsanVlanId: testVlan.id, * hcxVlanId: testVlan.id, * nsxEdgeUplink1vlanId: testNsxEdgeUplink1vlan.id, * nsxEdgeUplink2vlanId: testNsxEdgeUplink2vlan.id, * provisioningVlanId: testVlan.id, * replicationVlanId: testVlan.id, * vsphereVlanId: testVlan.id, * }, * sddcId: testSddc.id, * capacityReservationId: testCapacityReservation.id, * clusterByolAllocationDetails: { * firewallByolAllocationId: testByolAllocation.id, * vsanByolAllocationId: testByolAllocation.id, * }, * datastoreClusterIds: clusterDatastoreClusterIds, * datastores: [{ * blockVolumeIds: clusterDatastoresBlockVolumeIds, * datastoreType: clusterDatastoresDatastoreType, * }], * definedTags: { * "Operations.CostCenter": "42", * }, * displayName: clusterDisplayName, * esxiSoftwareVersion: clusterEsxiSoftwareVersion, * freeformTags: { * Department: "Finance", * }, * initialCommitment: clusterInitialCommitment, * initialHostOcpuCount: clusterInitialHostOcpuCount, * initialHostShapeName: testShape.name, * initialVcfByolAllocationId: testByolAllocation.id, * instanceDisplayNamePrefix: clusterInstanceDisplayNamePrefix, * isShieldedInstanceEnabled: clusterIsShieldedInstanceEnabled === "true", * vmwareSoftwareVersion: clusterVmwareSoftwareVersion, * workloadNetworkCidr: clusterWorkloadNetworkCidr, * }); * ``` * * ## Import * * Clusters can be imported using the `id`, e.g. * * ```sh * $ pulumi import oci:Ocvp/cluster:Cluster test_cluster "id" * ``` */ export declare class Cluster extends pulumi.CustomResource { /** * Get an existing Cluster resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: ClusterState, opts?: pulumi.CustomResourceOptions): Cluster; /** * Returns true if the given object is an instance of Cluster. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is Cluster; readonly actualEsxiHostsCount: pulumi.Output; readonly attachDatastoreClusterIds: pulumi.Output; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Capacity Reservation. */ readonly capacityReservationId: pulumi.Output; /** * (Updatable) The BYOL allocations used for VMware Cluster provisioning. */ readonly clusterByolAllocationDetails: pulumi.Output; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment that contains the Cluster. */ readonly compartmentId: pulumi.Output; /** * The availability domain to create the Cluster's ESXi hosts in. For multi-AD Cluster deployment, set to `multi-AD`. */ readonly computeAvailabilityDomain: pulumi.Output; /** * A list of datastore clusters. */ readonly datastoreClusterIds: pulumi.Output; /** * A list of datastore info for the Cluster. This value is required only when `initialHostShapeName` is a standard shape. */ readonly datastores: pulumi.Output; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}` */ readonly definedTags: pulumi.Output<{ [key: string]: string; }>; readonly detachDatastoreClusterIds: pulumi.Output; /** * (Updatable) A descriptive name for the Cluster. Cluster name requirements are 1-22 character length limit, Must start with a letter, Must be English letters, numbers, - only, No repeating hyphens, Must be unique within the region. Avoid entering confidential information. */ readonly displayName: pulumi.Output; /** * The number of ESXi hosts to create in the Cluster. You can add more hosts later (see [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost)). * * **Note:** If you later delete EXSi hosts from a production Cluster to make SDDC total host count less than 3, you are still billed for the 3 minimum recommended ESXi hosts. Also, you cannot add more VMware workloads to the Cluster until the SDDC again has at least 3 ESXi hosts. */ readonly esxiHostsCount: pulumi.Output; /** * (Updatable) The ESXi software bundle to install on the ESXi hosts in the Cluster. Only versions under the same vmwareSoftwareVersion and have been validate by Oracle Cloud VMware Solution will be accepted. To get a list of the available versions, use [ListSupportedVmwareSoftwareVersions](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20230701/SupportedVmwareSoftwareVersionSummary/ListSupportedVmwareSoftwareVersions). */ readonly esxiSoftwareVersion: pulumi.Output; /** * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` */ readonly freeformTags: pulumi.Output<{ [key: string]: string; }>; /** * The billing option selected during Cluster creation. [ListSupportedCommitments](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedCommitmentSummary/ListSupportedCommitments). */ readonly initialCommitment: pulumi.Output; /** * The initial OCPU count of the Cluster's ESXi hosts. */ readonly initialHostOcpuCount: pulumi.Output; /** * The initial compute shape of the Cluster's ESXi hosts. [ListSupportedHostShapes](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedHostShapes/ListSupportedHostShapes). */ readonly initialHostShapeName: pulumi.Output; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the initial VMware BYOL Allocation used to deploy VMware Cloud Foundation. */ readonly initialVcfByolAllocationId: pulumi.Output; /** * A prefix used in the name of each ESXi host and Compute instance in the Cluster. If this isn't set, the Cluster's `displayName` is used as the prefix. * * For example, if the value is `myCluster`, the ESXi hosts are named `myCluster-1`, `myCluster-2`, and so on. */ readonly instanceDisplayNamePrefix: pulumi.Output; /** * Indicates whether shielded instance is enabled for this Cluster. */ readonly isShieldedInstanceEnabled: pulumi.Output; /** * (Updatable) The network configurations used by Cluster, including [OCIDs](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the management subnet and VLANs. */ readonly networkConfiguration: pulumi.Output; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the SDDC that the Cluster belongs to. */ readonly sddcId: pulumi.Output; /** * The current state of the Cluster. */ readonly state: pulumi.Output; /** * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{orcl-cloud: {free-tier-retain: true}}` */ readonly systemTags: pulumi.Output<{ [key: string]: string; }>; /** * The date and time the Cluster was created, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z` */ readonly timeCreated: pulumi.Output; /** * The date and time the Cluster was updated, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). */ readonly timeUpdated: pulumi.Output; /** * The vSphere licenses to use when upgrading the Cluster. */ readonly upgradeLicenses: pulumi.Output; /** * (Updatable) The VMware software bundle to install on the ESXi hosts in the Cluster. To get a list of the available versions, use [ListSupportedVmwareSoftwareVersions](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20230701/SupportedVmwareSoftwareVersionSummary/ListSupportedVmwareSoftwareVersions). */ readonly vmwareSoftwareVersion: pulumi.Output; /** * vSphere Cluster types. */ readonly vsphereType: pulumi.Output; /** * The links to binary objects needed to upgrade vSphere. */ readonly vsphereUpgradeObjects: pulumi.Output; /** * The CIDR block for the IP addresses that VMware VMs in the Cluster use to run application workloads. * * ** IMPORTANT ** * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values */ readonly workloadNetworkCidr: pulumi.Output; /** * Create a Cluster resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: ClusterArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Cluster resources. */ export interface ClusterState { actualEsxiHostsCount?: pulumi.Input; attachDatastoreClusterIds?: pulumi.Input[] | undefined>; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Capacity Reservation. */ capacityReservationId?: pulumi.Input; /** * (Updatable) The BYOL allocations used for VMware Cluster provisioning. */ clusterByolAllocationDetails?: pulumi.Input; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the compartment that contains the Cluster. */ compartmentId?: pulumi.Input; /** * The availability domain to create the Cluster's ESXi hosts in. For multi-AD Cluster deployment, set to `multi-AD`. */ computeAvailabilityDomain?: pulumi.Input; /** * A list of datastore clusters. */ datastoreClusterIds?: pulumi.Input[] | undefined>; /** * A list of datastore info for the Cluster. This value is required only when `initialHostShapeName` is a standard shape. */ datastores?: pulumi.Input[] | undefined>; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}` */ definedTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; detachDatastoreClusterIds?: pulumi.Input[] | undefined>; /** * (Updatable) A descriptive name for the Cluster. Cluster name requirements are 1-22 character length limit, Must start with a letter, Must be English letters, numbers, - only, No repeating hyphens, Must be unique within the region. Avoid entering confidential information. */ displayName?: pulumi.Input; /** * The number of ESXi hosts to create in the Cluster. You can add more hosts later (see [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost)). * * **Note:** If you later delete EXSi hosts from a production Cluster to make SDDC total host count less than 3, you are still billed for the 3 minimum recommended ESXi hosts. Also, you cannot add more VMware workloads to the Cluster until the SDDC again has at least 3 ESXi hosts. */ esxiHostsCount?: pulumi.Input; /** * (Updatable) The ESXi software bundle to install on the ESXi hosts in the Cluster. Only versions under the same vmwareSoftwareVersion and have been validate by Oracle Cloud VMware Solution will be accepted. To get a list of the available versions, use [ListSupportedVmwareSoftwareVersions](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20230701/SupportedVmwareSoftwareVersionSummary/ListSupportedVmwareSoftwareVersions). */ esxiSoftwareVersion?: pulumi.Input; /** * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` */ freeformTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * The billing option selected during Cluster creation. [ListSupportedCommitments](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedCommitmentSummary/ListSupportedCommitments). */ initialCommitment?: pulumi.Input; /** * The initial OCPU count of the Cluster's ESXi hosts. */ initialHostOcpuCount?: pulumi.Input; /** * The initial compute shape of the Cluster's ESXi hosts. [ListSupportedHostShapes](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedHostShapes/ListSupportedHostShapes). */ initialHostShapeName?: pulumi.Input; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the initial VMware BYOL Allocation used to deploy VMware Cloud Foundation. */ initialVcfByolAllocationId?: pulumi.Input; /** * A prefix used in the name of each ESXi host and Compute instance in the Cluster. If this isn't set, the Cluster's `displayName` is used as the prefix. * * For example, if the value is `myCluster`, the ESXi hosts are named `myCluster-1`, `myCluster-2`, and so on. */ instanceDisplayNamePrefix?: pulumi.Input; /** * Indicates whether shielded instance is enabled for this Cluster. */ isShieldedInstanceEnabled?: pulumi.Input; /** * (Updatable) The network configurations used by Cluster, including [OCIDs](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the management subnet and VLANs. */ networkConfiguration?: pulumi.Input; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the SDDC that the Cluster belongs to. */ sddcId?: pulumi.Input; /** * The current state of the Cluster. */ state?: pulumi.Input; /** * Usage of system tag keys. These predefined keys are scoped to namespaces. Example: `{orcl-cloud: {free-tier-retain: true}}` */ systemTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * The date and time the Cluster was created, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). Example: `2016-08-25T21:10:29.600Z` */ timeCreated?: pulumi.Input; /** * The date and time the Cluster was updated, in the format defined by [RFC3339](https://tools.ietf.org/html/rfc3339). */ timeUpdated?: pulumi.Input; /** * The vSphere licenses to use when upgrading the Cluster. */ upgradeLicenses?: pulumi.Input[] | undefined>; /** * (Updatable) The VMware software bundle to install on the ESXi hosts in the Cluster. To get a list of the available versions, use [ListSupportedVmwareSoftwareVersions](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20230701/SupportedVmwareSoftwareVersionSummary/ListSupportedVmwareSoftwareVersions). */ vmwareSoftwareVersion?: pulumi.Input; /** * vSphere Cluster types. */ vsphereType?: pulumi.Input; /** * The links to binary objects needed to upgrade vSphere. */ vsphereUpgradeObjects?: pulumi.Input[] | undefined>; /** * The CIDR block for the IP addresses that VMware VMs in the Cluster use to run application workloads. * * ** IMPORTANT ** * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values */ workloadNetworkCidr?: pulumi.Input; } /** * The set of arguments for constructing a Cluster resource. */ export interface ClusterArgs { attachDatastoreClusterIds?: pulumi.Input[] | undefined>; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the Capacity Reservation. */ capacityReservationId?: pulumi.Input; /** * (Updatable) The BYOL allocations used for VMware Cluster provisioning. */ clusterByolAllocationDetails?: pulumi.Input; /** * The availability domain to create the Cluster's ESXi hosts in. For multi-AD Cluster deployment, set to `multi-AD`. */ computeAvailabilityDomain: pulumi.Input; /** * A list of datastore clusters. */ datastoreClusterIds?: pulumi.Input[] | undefined>; /** * A list of datastore info for the Cluster. This value is required only when `initialHostShapeName` is a standard shape. */ datastores?: pulumi.Input[] | undefined>; /** * (Updatable) Defined tags for this resource. Each key is predefined and scoped to a namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Operations.CostCenter": "42"}` */ definedTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; detachDatastoreClusterIds?: pulumi.Input[] | undefined>; /** * (Updatable) A descriptive name for the Cluster. Cluster name requirements are 1-22 character length limit, Must start with a letter, Must be English letters, numbers, - only, No repeating hyphens, Must be unique within the region. Avoid entering confidential information. */ displayName?: pulumi.Input; /** * The number of ESXi hosts to create in the Cluster. You can add more hosts later (see [CreateEsxiHost](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/EsxiHost/CreateEsxiHost)). * * **Note:** If you later delete EXSi hosts from a production Cluster to make SDDC total host count less than 3, you are still billed for the 3 minimum recommended ESXi hosts. Also, you cannot add more VMware workloads to the Cluster until the SDDC again has at least 3 ESXi hosts. */ esxiHostsCount: pulumi.Input; /** * (Updatable) The ESXi software bundle to install on the ESXi hosts in the Cluster. Only versions under the same vmwareSoftwareVersion and have been validate by Oracle Cloud VMware Solution will be accepted. To get a list of the available versions, use [ListSupportedVmwareSoftwareVersions](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20230701/SupportedVmwareSoftwareVersionSummary/ListSupportedVmwareSoftwareVersions). */ esxiSoftwareVersion?: pulumi.Input; /** * (Updatable) Free-form tags for this resource. Each tag is a simple key-value pair with no predefined name, type, or namespace. For more information, see [Resource Tags](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcetags.htm). Example: `{"Department": "Finance"}` */ freeformTags?: pulumi.Input<{ [key: string]: pulumi.Input; } | undefined>; /** * The billing option selected during Cluster creation. [ListSupportedCommitments](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedCommitmentSummary/ListSupportedCommitments). */ initialCommitment?: pulumi.Input; /** * The initial OCPU count of the Cluster's ESXi hosts. */ initialHostOcpuCount?: pulumi.Input; /** * The initial compute shape of the Cluster's ESXi hosts. [ListSupportedHostShapes](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20200501/SupportedHostShapes/ListSupportedHostShapes). */ initialHostShapeName?: pulumi.Input; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the initial VMware BYOL Allocation used to deploy VMware Cloud Foundation. */ initialVcfByolAllocationId?: pulumi.Input; /** * A prefix used in the name of each ESXi host and Compute instance in the Cluster. If this isn't set, the Cluster's `displayName` is used as the prefix. * * For example, if the value is `myCluster`, the ESXi hosts are named `myCluster-1`, `myCluster-2`, and so on. */ instanceDisplayNamePrefix?: pulumi.Input; /** * Indicates whether shielded instance is enabled for this Cluster. */ isShieldedInstanceEnabled?: pulumi.Input; /** * (Updatable) The network configurations used by Cluster, including [OCIDs](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the management subnet and VLANs. */ networkConfiguration: pulumi.Input; /** * The [OCID](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/identifiers.htm) of the SDDC that the Cluster belongs to. */ sddcId: pulumi.Input; /** * (Updatable) The VMware software bundle to install on the ESXi hosts in the Cluster. To get a list of the available versions, use [ListSupportedVmwareSoftwareVersions](https://docs.cloud.oracle.com/iaas/api/#/en/vmware/20230701/SupportedVmwareSoftwareVersionSummary/ListSupportedVmwareSoftwareVersions). */ vmwareSoftwareVersion?: pulumi.Input; /** * The CIDR block for the IP addresses that VMware VMs in the Cluster use to run application workloads. * * ** IMPORTANT ** * Any change to a property that does not support update will force the destruction and recreation of the resource with the new property values */ workloadNetworkCidr?: pulumi.Input; } //# sourceMappingURL=cluster.d.ts.map