diff --git a/Multicloud/Azure/exa_vmcluster_create.tf b/Multicloud/Azure/exa_vmcluster_create.tf index f1d599c5..89bcd1d4 100644 --- a/Multicloud/Azure/exa_vmcluster_create.tf +++ b/Multicloud/Azure/exa_vmcluster_create.tf @@ -1,95 +1,119 @@ + variable "resource_group_name" { + description = "Name of the Resource Group" + default = "ExampleRG" +} + +variable "location" { + description = "Location for the resources" + default = "eastus" +} + +variable "exa_cluster_name" { + description = "Name of the Exadata Cluster" + default = "ExampleName" +} + +variable "ssh_public_key" { + description = "SSH Public Key for the VM Cluster" + default = "ssh-rsa AAAAB3...yourkeyhere" +} + +variable "cloud_exadata_infra_id" { + description = "Cloud Exadata Infrastructure Resource ID" + default = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg000/providers/Oracle.Database/cloudExadataInfrastructures/infra1" +} + +variable "vnet_id" { + description = "Virtual Network Resource ID" + default = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg000/providers/Microsoft.Network/virtualNetworks/vnet1" +} + +variable "subnet_id" { + description = "Subnet Resource ID" + default = "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg000/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1" +} + resource "azapi_resource" "resource_group" { type = "Microsoft.Resources/resourceGroups@2023-07-01" - name = "ExampleRG" location = "eastus" + name = var.resource_group_name + location = var.location } -// OperationId: CloudExadataInfrastructures_CreateOrUpdate, CloudExadataInfrastructures_Get, CloudExadataInfrastructures_Delete -// PUT /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/cloudExadataInfrastructures/{cloudexadatainfrastructurename} -resource "azapi_resource" "cloudExadataInfrastructure" { +resource "azapi_resource" "cloud_exadata_infrastructure" { type = "Oracle.Database/cloudExadataInfrastructures@2023-09-01-preview" parent_id = azapi_resource.resource_group.id - name = "ExampleName" + name = var.exa_cluster_name body = jsonencode({ - "location" : "eastus", - "zones" : [ - "2" - ], - "tags" : { - "createdby" : "ExampleName" + location = var.location, + zones = ["2"], + tags = { + createdby = var.exa_cluster_name }, - "properties" : { - "computeCount" : 2, - "displayName" : "ExampleName", - "maintenanceWindow" : { - "leadTimeInWeeks" : 0, - "preference" : "NoPreference", - "patchingMode" : "Rolling" + properties = { + computeCount = 2, + displayName = var.exa_cluster_name, + maintenanceWindow = { + leadTimeInWeeks = 0, + preference = "NoPreference", + patchingMode = "Rolling" }, - "shape" : "Exadata.X9M", - "storageCount" : 3 + shape = "Exadata.X9M", + storageCount = 3 } }) schema_validation_enabled = false } -//-------------VMCluster resources ------------ -// OperationId: CloudVmClusters_CreateOrUpdate, CloudVmClusters_Get, CloudVmClusters_Delete -// PUT GET DELETE /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Oracle.Database/cloudVmClusters/{cloudvmclustername} -resource "azapi_resource" "cloudVmCluster" { +resource "azapi_resource" "cloud_vm_cluster" { type = "Oracle.Database/cloudVmClusters@2023-09-01-preview" - parent_id = azapi_resource.resourceGroup.id - name = local.exa_cluster_name + parent_id = azapi_resource.resource_group.id + name = var.exa_cluster_name schema_validation_enabled = false - depends_on = [azapi_resource.cloudExadataInfrastructure] - body = jsonencode({ - "properties": { - "dataStorageSizeInTbs": 1000, - "dbNodeStorageSizeInGbs": 1000, - "memorySizeInGbs": 1000, - "timeZone": "UTC", - "hostname": "hostname1", - "domain": "domain1", - "cpuCoreCount": 2, - "ocpuCount": 3, - "clusterName": "cluster1", - "dataStoragePercentage": 100, - "isLocalBackupEnabled": false, - "cloudExadataInfrastructureId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg000/providers/Oracle.Database/cloudExadataInfrastructures/infra1", - "isSparseDiskgroupEnabled": false, - "sshPublicKeys": [ - "ssh-key 1" - ], - "nsgCidrs": [ - { - "source": "10.0.0.0/16", - "destinationPortRange": { - "min": 1520, - "max": 1522 - } - }, - { - "source": "10.10.0.0/24" + depends_on = [azapi_resource.cloud_exadata_infrastructure] + body = jsonencode({ + properties = { + dataStorageSizeInTbs = 1000, + dbNodeStorageSizeInGbs = 1000, + memorySizeInGbs = 1000, + timeZone = "UTC", + hostname = "hostname1", + domain = "domain1", + cpuCoreCount = 2, + ocpuCount = 3, + clusterName = "cluster1", + dataStoragePercentage = 100, + isLocalBackupEnabled = false, + cloudExadataInfrastructureId = var.cloud_exadata_infra_id, + isSparseDiskgroupEnabled = false, + sshPublicKeys = [var.ssh_public_key], + nsgCidrs = [ + { + source = "10.0.0.0/16" + destinationPortRange = { + min = 1520 + max = 1522 } - ], - "licenseModel": "LicenseIncluded", - "scanListenerPortTcp": 1050, - "scanListenerPortTcpSsl": 1025, - "vnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg000/providers/Microsoft.Network/virtualNetworks/vnet1", - "giVersion": "19.0.0.0", - "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg000/providers/Microsoft.Network/virtualNetworks/vnet1/subnets/subnet1", - "backupSubnetCidr": "172.17.5.0/24", - "dataCollectionOptions": { - "isDiagnosticsEventsEnabled": false, - "isHealthMonitoringEnabled": false, - "isIncidentLogsEnabled": false }, - "displayName": "cluster 1", - "dbServers": [ - "ocid1..aaaa" - ] + { + source = "10.10.0.0/24" + } + ], + licenseModel = "LicenseIncluded", + scanListenerPortTcp = 1050, + scanListenerPortTcpSsl = 1025, + vnetId = var.vnet_id, + giVersion = "19.0.0.0", + subnetId = var.subnet_id, + backupSubnetCidr = "172.17.5.0/24", + dataCollectionOptions = { + isDiagnosticsEventsEnabled = false, + isHealthMonitoringEnabled = false, + isIncidentLogsEnabled = false }, - "location": "eastus" - } -}) + displayName = "Cluster 1", + dbServers = ["ocid1..aaaa"] + }, + location = var.location + }) response_export_values = ["properties.ocid"] }