Cassandra Cluster Args
Manages a Cassandra Cluster.
NOTE: In order for the
Azure Managed Instances for Apache Cassandra
to work properly the product requires theAzure Cosmos DB
Application ID to be present and working in your tenant. If theAzure Cosmos DB
Application ID is missing in your environment you will need to have an administrator of your tenant run the following command to add theAzure Cosmos DB
Application ID to your tenant:
New-AzADServicePrincipal -ApplicationId a232010e-820c-4083-83bb-3ace5fc29d0b
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
import * as azuread from "@pulumi/azuread";
const exampleResourceGroup = new azure.core.ResourceGroup("example", {
name: "accexample-rg",
location: "West Europe",
});
const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", {
name: "example-vnet",
location: exampleResourceGroup.location,
resourceGroupName: exampleResourceGroup.name,
addressSpaces: ["10.0.0.0/16"],
});
const exampleSubnet = new azure.network.Subnet("example", {
name: "example-subnet",
resourceGroupName: exampleResourceGroup.name,
virtualNetworkName: exampleVirtualNetwork.name,
addressPrefixes: ["10.0.1.0/24"],
});
const example = azuread.getServicePrincipal({
displayName: "Azure Cosmos DB",
});
const exampleAssignment = new azure.authorization.Assignment("example", {
scope: exampleVirtualNetwork.id,
roleDefinitionName: "Network Contributor",
principalId: example.then(example => example.objectId),
});
const exampleCassandraCluster = new azure.cosmosdb.CassandraCluster("example", {
name: "example-cluster",
resourceGroupName: exampleResourceGroup.name,
location: exampleResourceGroup.location,
delegatedManagementSubnetId: exampleSubnet.id,
defaultAdminPassword: "Password1234",
}, {
dependsOn: [exampleAssignment],
});
import pulumi
import pulumi_azure as azure
import pulumi_azuread as azuread
example_resource_group = azure.core.ResourceGroup("example",
name="accexample-rg",
location="West Europe")
example_virtual_network = azure.network.VirtualNetwork("example",
name="example-vnet",
location=example_resource_group.location,
resource_group_name=example_resource_group.name,
address_spaces=["10.0.0.0/16"])
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"])
example = azuread.get_service_principal(display_name="Azure Cosmos DB")
example_assignment = azure.authorization.Assignment("example",
scope=example_virtual_network.id,
role_definition_name="Network Contributor",
principal_id=example.object_id)
example_cassandra_cluster = azure.cosmosdb.CassandraCluster("example",
name="example-cluster",
resource_group_name=example_resource_group.name,
location=example_resource_group.location,
delegated_management_subnet_id=example_subnet.id,
default_admin_password="Password1234",
opts = pulumi.ResourceOptions(depends_on=[example_assignment]))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
using AzureAD = Pulumi.AzureAD;
return await Deployment.RunAsync(() =>
{
var exampleResourceGroup = new Azure.Core.ResourceGroup("example", new()
{
Name = "accexample-rg",
Location = "West Europe",
});
var exampleVirtualNetwork = new Azure.Network.VirtualNetwork("example", new()
{
Name = "example-vnet",
Location = exampleResourceGroup.Location,
ResourceGroupName = exampleResourceGroup.Name,
AddressSpaces = new[]
{
"10.0.0.0/16",
},
});
var exampleSubnet = new Azure.Network.Subnet("example", new()
{
Name = "example-subnet",
ResourceGroupName = exampleResourceGroup.Name,
VirtualNetworkName = exampleVirtualNetwork.Name,
AddressPrefixes = new[]
{
"10.0.1.0/24",
},
});
var example = AzureAD.GetServicePrincipal.Invoke(new()
{
DisplayName = "Azure Cosmos DB",
});
var exampleAssignment = new Azure.Authorization.Assignment("example", new()
{
Scope = exampleVirtualNetwork.Id,
RoleDefinitionName = "Network Contributor",
PrincipalId = example.Apply(getServicePrincipalResult => getServicePrincipalResult.ObjectId),
});
var exampleCassandraCluster = new Azure.CosmosDB.CassandraCluster("example", new()
{
Name = "example-cluster",
ResourceGroupName = exampleResourceGroup.Name,
Location = exampleResourceGroup.Location,
DelegatedManagementSubnetId = exampleSubnet.Id,
DefaultAdminPassword = "Password1234",
}, new CustomResourceOptions
{
DependsOn =
{
exampleAssignment,
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/authorization"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/cosmosdb"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network"
"github.com/pulumi/pulumi-azuread/sdk/v5/go/azuread"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
exampleResourceGroup, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("accexample-rg"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, "example", &network.VirtualNetworkArgs{
Name: pulumi.String("example-vnet"),
Location: exampleResourceGroup.Location,
ResourceGroupName: exampleResourceGroup.Name,
AddressSpaces: pulumi.StringArray{
pulumi.String("10.0.0.0/16"),
},
})
if err != nil {
return err
}
exampleSubnet, err := network.NewSubnet(ctx, "example", &network.SubnetArgs{
Name: pulumi.String("example-subnet"),
ResourceGroupName: exampleResourceGroup.Name,
VirtualNetworkName: exampleVirtualNetwork.Name,
AddressPrefixes: pulumi.StringArray{
pulumi.String("10.0.1.0/24"),
},
})
if err != nil {
return err
}
example, err := azuread.LookupServicePrincipal(ctx, &azuread.LookupServicePrincipalArgs{
DisplayName: pulumi.StringRef("Azure Cosmos DB"),
}, nil)
if err != nil {
return err
}
exampleAssignment, err := authorization.NewAssignment(ctx, "example", &authorization.AssignmentArgs{
Scope: exampleVirtualNetwork.ID(),
RoleDefinitionName: pulumi.String("Network Contributor"),
PrincipalId: pulumi.String(example.ObjectId),
})
if err != nil {
return err
}
_, err = cosmosdb.NewCassandraCluster(ctx, "example", &cosmosdb.CassandraClusterArgs{
Name: pulumi.String("example-cluster"),
ResourceGroupName: exampleResourceGroup.Name,
Location: exampleResourceGroup.Location,
DelegatedManagementSubnetId: exampleSubnet.ID(),
DefaultAdminPassword: pulumi.String("Password1234"),
}, pulumi.DependsOn([]pulumi.Resource{
exampleAssignment,
}))
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.network.VirtualNetwork;
import com.pulumi.azure.network.VirtualNetworkArgs;
import com.pulumi.azure.network.Subnet;
import com.pulumi.azure.network.SubnetArgs;
import com.pulumi.azuread.AzureadFunctions;
import com.pulumi.azuread.inputs.GetServicePrincipalArgs;
import com.pulumi.azure.authorization.Assignment;
import com.pulumi.azure.authorization.AssignmentArgs;
import com.pulumi.azure.cosmosdb.CassandraCluster;
import com.pulumi.azure.cosmosdb.CassandraClusterArgs;
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 exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
.name("accexample-rg")
.location("West Europe")
.build());
var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder()
.name("example-vnet")
.location(exampleResourceGroup.location())
.resourceGroupName(exampleResourceGroup.name())
.addressSpaces("10.0.0.0/16")
.build());
var exampleSubnet = new Subnet("exampleSubnet", SubnetArgs.builder()
.name("example-subnet")
.resourceGroupName(exampleResourceGroup.name())
.virtualNetworkName(exampleVirtualNetwork.name())
.addressPrefixes("10.0.1.0/24")
.build());
final var example = AzureadFunctions.getServicePrincipal(GetServicePrincipalArgs.builder()
.displayName("Azure Cosmos DB")
.build());
var exampleAssignment = new Assignment("exampleAssignment", AssignmentArgs.builder()
.scope(exampleVirtualNetwork.id())
.roleDefinitionName("Network Contributor")
.principalId(example.applyValue(getServicePrincipalResult -> getServicePrincipalResult.objectId()))
.build());
var exampleCassandraCluster = new CassandraCluster("exampleCassandraCluster", CassandraClusterArgs.builder()
.name("example-cluster")
.resourceGroupName(exampleResourceGroup.name())
.location(exampleResourceGroup.location())
.delegatedManagementSubnetId(exampleSubnet.id())
.defaultAdminPassword("Password1234")
.build(), CustomResourceOptions.builder()
.dependsOn(exampleAssignment)
.build());
}
}
resources:
exampleResourceGroup:
type: azure:core:ResourceGroup
name: example
properties:
name: accexample-rg
location: West Europe
exampleVirtualNetwork:
type: azure:network:VirtualNetwork
name: example
properties:
name: example-vnet
location: ${exampleResourceGroup.location}
resourceGroupName: ${exampleResourceGroup.name}
addressSpaces:
- 10.0.0.0/16
exampleSubnet:
type: azure:network:Subnet
name: example
properties:
name: example-subnet
resourceGroupName: ${exampleResourceGroup.name}
virtualNetworkName: ${exampleVirtualNetwork.name}
addressPrefixes:
- 10.0.1.0/24
exampleAssignment:
type: azure:authorization:Assignment
name: example
properties:
scope: ${exampleVirtualNetwork.id}
roleDefinitionName: Network Contributor
principalId: ${example.objectId}
exampleCassandraCluster:
type: azure:cosmosdb:CassandraCluster
name: example
properties:
name: example-cluster
resourceGroupName: ${exampleResourceGroup.name}
location: ${exampleResourceGroup.location}
delegatedManagementSubnetId: ${exampleSubnet.id}
defaultAdminPassword: Password1234
options:
dependsOn:
- ${exampleAssignment}
variables:
example:
fn::invoke:
function: azuread:getServicePrincipal
arguments:
displayName: Azure Cosmos DB
Import
Cassandra Clusters can be imported using the resource id
, e.g.
$ pulumi import azure:cosmosdb/cassandraCluster:CassandraCluster example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/resGroup1/providers/Microsoft.DocumentDB/cassandraClusters/cluster1
Constructors
Properties
The authentication method that is used to authenticate clients. Possible values are None
and Cassandra
. Defaults to Cassandra
.
A list of TLS certificates that is used to authorize client connecting to the Cassandra Cluster.
The initial admin password for this Cassandra Cluster. Changing this forces a new resource to be created.
The ID of the delegated management subnet for this Cassandra Cluster. Changing this forces a new Cassandra Cluster to be created.
A list of TLS certificates that is used to authorize gossip from unmanaged Cassandra Data Center.
A list of IP Addresses of the seed nodes in unmanaged the Cassandra Data Center which will be added to the seed node lists of all managed nodes.
The number of hours to wait between taking a backup of the Cassandra Cluster. Defaults to 24
.
An identity
block as defined below.
Is the automatic repair enabled on the Cassandra Cluster? Defaults to true
.
The name of the Resource Group where the Cassandra Cluster should exist. Changing this forces a new Cassandra Cluster to be created.