Cluster

class Cluster : KotlinCustomResource

Manages a fully managed Azure Red Hat OpenShift Cluster (also known as ARO).

Note: All arguments including the client secret will be stored in the raw state as plain-text. Read more about sensitive data in state.

Example Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.CoreFunctions;
import com.pulumi.azuread.AzureadFunctions;
import com.pulumi.azuread.Application;
import com.pulumi.azuread.ApplicationArgs;
import com.pulumi.azuread.ServicePrincipal;
import com.pulumi.azuread.ServicePrincipalArgs;
import com.pulumi.azuread.ServicePrincipalPassword;
import com.pulumi.azuread.ServicePrincipalPasswordArgs;
import com.pulumi.azuread.inputs.GetServicePrincipalArgs;
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.authorization.Assignment;
import com.pulumi.azure.authorization.AssignmentArgs;
import com.pulumi.azure.network.Subnet;
import com.pulumi.azure.network.SubnetArgs;
import com.pulumi.azure.redhatopenshift.Cluster;
import com.pulumi.azure.redhatopenshift.ClusterArgs;
import com.pulumi.azure.redhatopenshift.inputs.ClusterClusterProfileArgs;
import com.pulumi.azure.redhatopenshift.inputs.ClusterNetworkProfileArgs;
import com.pulumi.azure.redhatopenshift.inputs.ClusterMainProfileArgs;
import com.pulumi.azure.redhatopenshift.inputs.ClusterApiServerProfileArgs;
import com.pulumi.azure.redhatopenshift.inputs.ClusterIngressProfileArgs;
import com.pulumi.azure.redhatopenshift.inputs.ClusterWorkerProfileArgs;
import com.pulumi.azure.redhatopenshift.inputs.ClusterServicePrincipalArgs;
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) {
final var example = CoreFunctions.getClientConfig();
final var exampleGetClientConfig = AzureadFunctions.getClientConfig();
var exampleApplication = new Application("exampleApplication", ApplicationArgs.builder()
.displayName("example-aro")
.build());
var exampleServicePrincipal = new ServicePrincipal("exampleServicePrincipal", ServicePrincipalArgs.builder()
.clientId(exampleApplication.clientId())
.build());
var exampleServicePrincipalPassword = new ServicePrincipalPassword("exampleServicePrincipalPassword", ServicePrincipalPasswordArgs.builder()
.servicePrincipalId(exampleServicePrincipal.objectId())
.build());
final var redhatopenshift = AzureadFunctions.getServicePrincipal(GetServicePrincipalArgs.builder()
.clientId("f1dd0a37-89c6-4e07-bcd1-ffd3d43d8875")
.build());
var exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
.name("example-resources")
.location("West US")
.build());
var exampleVirtualNetwork = new VirtualNetwork("exampleVirtualNetwork", VirtualNetworkArgs.builder()
.name("example-vnet")
.addressSpaces("10.0.0.0/22")
.location(exampleResourceGroup.location())
.resourceGroupName(exampleResourceGroup.name())
.build());
var roleNetwork1 = new Assignment("roleNetwork1", AssignmentArgs.builder()
.scope(exampleVirtualNetwork.id())
.roleDefinitionName("Network Contributor")
.principalId(exampleServicePrincipal.objectId())
.build());
var roleNetwork2 = new Assignment("roleNetwork2", AssignmentArgs.builder()
.scope(exampleVirtualNetwork.id())
.roleDefinitionName("Network Contributor")
.principalId(redhatopenshift.applyValue(getServicePrincipalResult -> getServicePrincipalResult.objectId()))
.build());
var mainSubnet = new Subnet("mainSubnet", SubnetArgs.builder()
.name("main-subnet")
.resourceGroupName(exampleResourceGroup.name())
.virtualNetworkName(exampleVirtualNetwork.name())
.addressPrefixes("10.0.0.0/23")
.serviceEndpoints(
"Microsoft.Storage",
"Microsoft.ContainerRegistry")
.build());
var workerSubnet = new Subnet("workerSubnet", SubnetArgs.builder()
.name("worker-subnet")
.resourceGroupName(exampleResourceGroup.name())
.virtualNetworkName(exampleVirtualNetwork.name())
.addressPrefixes("10.0.2.0/23")
.serviceEndpoints(
"Microsoft.Storage",
"Microsoft.ContainerRegistry")
.build());
var exampleCluster = new Cluster("exampleCluster", ClusterArgs.builder()
.name("examplearo")
.location(exampleResourceGroup.location())
.resourceGroupName(exampleResourceGroup.name())
.clusterProfile(ClusterClusterProfileArgs.builder()
.domain("aro-example.com")
.version("4.13.23")
.build())
.networkProfile(ClusterNetworkProfileArgs.builder()
.podCidr("10.128.0.0/14")
.serviceCidr("172.30.0.0/16")
.build())
.mainProfile(ClusterMainProfileArgs.builder()
.vmSize("Standard_D8s_v3")
.subnetId(mainSubnet.id())
.build())
.apiServerProfile(ClusterApiServerProfileArgs.builder()
.visibility("Public")
.build())
.ingressProfile(ClusterIngressProfileArgs.builder()
.visibility("Public")
.build())
.workerProfile(ClusterWorkerProfileArgs.builder()
.vmSize("Standard_D4s_v3")
.diskSizeGb(128)
.nodeCount(3)
.subnetId(workerSubnet.id())
.build())
.servicePrincipal(ClusterServicePrincipalArgs.builder()
.clientId(exampleApplication.clientId())
.clientSecret(exampleServicePrincipalPassword.value())
.build())
.build());
ctx.export("consoleUrl", exampleCluster.consoleUrl());
}
}

Import

Red Hat OpenShift Clusters can be imported using the resource id, e.g.

$ pulumi import azure:redhatopenshift/cluster:Cluster cluster1 /subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/group1/providers/Microsoft.RedHatOpenShift/openShiftClusters/cluster1

Properties

Link copied to clipboard

An api_server_profile block as defined below.

Link copied to clipboard

A cluster_profile block as defined below.

Link copied to clipboard
val consoleUrl: Output<String>

The Red Hat OpenShift cluster console URL.

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

An ingress_profile block as defined below.

Link copied to clipboard
val location: Output<String>

The location where the Azure Red Hat OpenShift Cluster should be created. Changing this forces a new resource to be created.

Link copied to clipboard

A main_profile block as defined below.

Link copied to clipboard
val name: Output<String>

The name of the Azure Red Hat OpenShift Cluster to create. Changing this forces a new resource to be created.

Link copied to clipboard

A network_profile block as defined below.

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

Specifies the Resource Group where the Azure Red Hat OpenShift Cluster should exist. Changing this forces a new resource to be created.

Link copied to clipboard

A service_principal block as defined below.

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

A mapping of tags to assign to the resource.

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

A worker_profile block as defined below.