CloudVmCluster

class CloudVmCluster : KotlinCustomResource

Manages a Cloud VM Cluster.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
import * as std from "@pulumi/std";
const exampleResourceGroup = new azure.core.ResourceGroup("example", {
name: "example-resources",
location: "West Europe",
});
const exampleExadataInfrastructure = new azure.oracle.ExadataInfrastructure("example", {
name: "example-exadata-infrastructure",
displayName: "example-exadata-infrastructure",
location: exampleResourceGroup.location,
resourceGroupName: exampleResourceGroup.name,
shape: "Exadata.X9M",
storageCount: 3,
computeCount: 2,
zones: ["3"],
});
const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", {
name: "example-virtual-network",
addressSpaces: ["10.0.0.0/16"],
location: exampleResourceGroup.location,
resourceGroupName: exampleResourceGroup.name,
});
const exampleSubnet = new azure.network.Subnet("example", {
name: "example-subnet",
resourceGroupName: exampleResourceGroup.name,
virtualNetworkName: exampleVirtualNetwork.name,
addressPrefixes: ["10.0.1.0/24"],
delegations: [{
name: "delegation",
serviceDelegation: {
actions: [
"Microsoft.Network/networkinterfaces/*",
"Microsoft.Network/virtualNetworks/subnets/join/action",
],
name: "Oracle.Database/networkAttachments",
},
}],
});
const example = azure.oracle.getDbServersOutput({
resourceGroupName: exampleResourceGroup.name,
cloudExadataInfrastructureName: exampleExadataInfrastructure.name,
});
const exampleCloudVmCluster = new azure.oracle.CloudVmCluster("example", {
name: "example-cloud-vm-cluster",
resourceGroupName: exampleResourceGroup.name,
location: exampleResourceGroup.location,
giVersion: "23.0.0.0",
virtualNetworkId: exampleVirtualNetwork.id,
licenseModel: "BringYourOwnLicense",
dbServers: example.apply(example => .map(obj => (obj.ocid))),
sshPublicKeys: [std.file({
input: "~/.ssh/id_rsa.pub",
}).then(invoke => invoke.result)],
displayName: "example-cloud-vm-cluster",
cloudExadataInfrastructureId: exampleExadataInfrastructure.id,
cpuCoreCount: 2,
hostname: "hostname",
subnetId: exampleSubnet.id,
systemVersion: "23.1.19.0.0.241015",
});
import pulumi
import pulumi_azure as azure
import pulumi_std as std
example_resource_group = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_exadata_infrastructure = azure.oracle.ExadataInfrastructure("example",
name="example-exadata-infrastructure",
display_name="example-exadata-infrastructure",
location=example_resource_group.location,
resource_group_name=example_resource_group.name,
shape="Exadata.X9M",
storage_count=3,
compute_count=2,
zones=["3"])
example_virtual_network = azure.network.VirtualNetwork("example",
name="example-virtual-network",
address_spaces=["10.0.0.0/16"],
location=example_resource_group.location,
resource_group_name=example_resource_group.name)
example_subnet = azure.network.Subnet("example",
name="example-subnet",
resource_group_name=example_resource_group.name,
virtual_network_name=example_virtual_network.name,
address_prefixes=["10.0.1.0/24"],
delegations=[{
"name": "delegation",
"service_delegation": {
"actions": [
"Microsoft.Network/networkinterfaces/*",
"Microsoft.Network/virtualNetworks/subnets/join/action",
],
"name": "Oracle.Database/networkAttachments",
},
}])
example = azure.oracle.get_db_servers_output(resource_group_name=example_resource_group.name,
cloud_exadata_infrastructure_name=example_exadata_infrastructure.name)
example_cloud_vm_cluster = azure.oracle.CloudVmCluster("example",
name="example-cloud-vm-cluster",
resource_group_name=example_resource_group.name,
location=example_resource_group.location,
gi_version="23.0.0.0",
virtual_network_id=example_virtual_network.id,
license_model="BringYourOwnLicense",
db_servers=example.apply(lambda example: [obj.ocid for obj in example.db_servers]),
ssh_public_keys=[std.file(input="~/.ssh/id_rsa.pub").result],
display_name="example-cloud-vm-cluster",
cloud_exadata_infrastructure_id=example_exadata_infrastructure.id,
cpu_core_count=2,
hostname="hostname",
subnet_id=example_subnet.id,
system_version="23.1.19.0.0.241015")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var exampleResourceGroup = new Azure.Core.ResourceGroup("example", new()
{
Name = "example-resources",
Location = "West Europe",
});
var exampleExadataInfrastructure = new Azure.Oracle.ExadataInfrastructure("example", new()
{
Name = "example-exadata-infrastructure",
DisplayName = "example-exadata-infrastructure",
Location = exampleResourceGroup.Location,
ResourceGroupName = exampleResourceGroup.Name,
Shape = "Exadata.X9M",
StorageCount = 3,
ComputeCount = 2,
Zones = new[]
{
"3",
},
});
var exampleVirtualNetwork = new Azure.Network.VirtualNetwork("example", new()
{
Name = "example-virtual-network",
AddressSpaces = new[]
{
"10.0.0.0/16",
},
Location = exampleResourceGroup.Location,
ResourceGroupName = exampleResourceGroup.Name,
});
var exampleSubnet = new Azure.Network.Subnet("example", new()
{
Name = "example-subnet",
ResourceGroupName = exampleResourceGroup.Name,
VirtualNetworkName = exampleVirtualNetwork.Name,
AddressPrefixes = new[]
{
"10.0.1.0/24",
},
Delegations = new[]
{
new Azure.Network.Inputs.SubnetDelegationArgs
{
Name = "delegation",
ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs
{
Actions = new[]
{
"Microsoft.Network/networkinterfaces/*",
"Microsoft.Network/virtualNetworks/subnets/join/action",
},
Name = "Oracle.Database/networkAttachments",
},
},
},
});
var example = Azure.Oracle.GetDbServers.Invoke(new()
{
ResourceGroupName = exampleResourceGroup.Name,
CloudExadataInfrastructureName = exampleExadataInfrastructure.Name,
});
var exampleCloudVmCluster = new Azure.Oracle.CloudVmCluster("example", new()
{
Name = "example-cloud-vm-cluster",
ResourceGroupName = exampleResourceGroup.Name,
Location = exampleResourceGroup.Location,
GiVersion = "23.0.0.0",
VirtualNetworkId = exampleVirtualNetwork.Id,
LicenseModel = "BringYourOwnLicense",
DbServers = .Select(obj =>
{
return obj.Ocid;
}).ToList(),
SshPublicKeys = new[]
{
Std.File.Invoke(new()
{
Input = "~/.ssh/id_rsa.pub",
}).Apply(invoke => invoke.Result),
},
DisplayName = "example-cloud-vm-cluster",
CloudExadataInfrastructureId = exampleExadataInfrastructure.Id,
CpuCoreCount = 2,
Hostname = "hostname",
SubnetId = exampleSubnet.Id,
SystemVersion = "23.1.19.0.0.241015",
});
});

API Providers

This resource uses the following Azure API Providers:

  • Oracle.Database: 2024-06-01

Import

Cloud VM Clusters can be imported using the resource id, e.g.

$ pulumi import azure:oracle/cloudVmCluster:CloudVmCluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup/providers/Oracle.Database/cloudVmClusters/cloudVmClusters1

//*/

Properties

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

The backup subnet CIDR of the Virtual Network associated with the Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard

The OCID of the Cloud Exadata infrastructure. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val clusterName: Output<String>

The cluster name for Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val cpuCoreCount: Output<Int>

The number of CPU cores enabled on the Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard

A data_collection_options block as defined below. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard

The percentage assigned to DATA storage (user data and database files). Changing this forces a new Cloud VM Cluster to be created. The remaining percentage is assigned to RECO storage (database redo logs, archive logs, and recovery manager backups). Accepted values are 35, 40, 60 and 80.

Link copied to clipboard

The data disk group size to be allocated in TBs. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard

The local node storage to be allocated in GBs. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val dbServers: Output<List<String>>

The list of DB servers. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val displayName: Output<String>

The user-friendly name for the Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created. The name does not need to be unique.

Link copied to clipboard
val domain: Output<String>

The name of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val giVersion: Output<String>

A valid Oracle Grid Infrastructure (GI) software version. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val hostname: Output<String>

The hostname for the Cloud VM Cluster without suffix. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val hostnameActual: Output<String>

The hostname for the Cloud VM Cluster with suffix.

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

The Oracle license model that applies to the Cloud VM Cluster, either BringYourOwnLicense or LicenseIncluded. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard

If true, database backup on local Exadata storage is configured for the Cloud VM Cluster. If false, database backup on local Exadata storage is not available in the Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val location: Output<String>

The Azure Region where the Cloud VM Cluster should exist. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val memorySizeInGbs: Output<Int>

The memory to be allocated in GBs. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val name: Output<String>

The name which should be used for this Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val ocid: Output<String>

The OCID of the Cloud VM Cluster.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

The name of the Resource Group where the Cloud VM Cluster should exist. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val scanListenerPortTcp: Output<Int>?

The TCP Single Client Access Name (SCAN) port. The default port to 1521. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard

The TCPS Single Client Access Name (SCAN) port. The default port to 2484. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard

If true, the sparse disk group is configured for the Cloud VM Cluster. If false, the sparse disk group is not created. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val sshPublicKeys: Output<List<String>>

The public key portion of one or more key pairs used for SSH access to the Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val subnetId: Output<String>

The ID of the subnet associated with the Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

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

Operating system version of the Exadata image. System version must be <= Db server major version (the first two parts of the DB server version eg 23.1.X.X.XXXX). Accepted Values for Grid Infrastructure (GI) version 19.0.0.0 are 22.1.30.0.0.241204, 22.1.32.0.0.250205, 22.1.31.0.0.250110, 23.1.20.0.0.241112, 23.1.21.0.0.241204, 23.1.22.0.0.250119, 23.1.23.0.0.250207. For Grid Infrastructure (GI) version 23.0.0.0 allowed system versions are 23.1.19.0.0.241015, 23.1.20.0.0.241112, 23.1.22.0.0.250119, 23.1.21.0.0.241204, 23.1.23.0.0.250207.

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

A mapping of tags which should be assigned to the Cloud VM Cluster.

Link copied to clipboard
val timeZone: Output<String>

The time zone of the Cloud VM Cluster. For details, see Exadata Infrastructure Time Zones. Changing this forces a new Cloud VM Cluster to be created.

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

The ID of the Virtual Network associated with the Cloud VM Cluster. Changing this forces a new Cloud VM Cluster to be created.

Link copied to clipboard
val zoneId: Output<String>

The OCID of the OCI Private DNS Zone to be associated with the Cloud VM Cluster. This is required for specifying your own private domain name. Changing this forces a new Cloud VM Cluster to be created.