import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Manages an Arc Kubernetes Cluster. * * > **Note:** Installing and configuring the Azure Arc Agent on your Kubernetes Cluster to establish connectivity is outside the scope of this document. For more details refer to [Deploy agents to your cluster](https://learn.microsoft.com/en-us/azure/azure-arc/kubernetes/conceptual-agent-overview#deploy-agents-to-your-cluster) and [Connect an existing Kubernetes Cluster](https://learn.microsoft.com/en-us/azure/azure-arc/kubernetes/quickstart-connect-cluster?tabs=azure-cli#connect-an-existing-kubernetes-cluster). If you encounter issues connecting your Kubernetes Cluster to Azure Arc, we'd recommend opening a ticket with Microsoft Support. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * import * as std from "@pulumi/std"; * * const example = new azure.core.ResourceGroup("example", { * name: "example-resources", * location: "West Europe", * }); * const exampleCluster = new azure.arckubernetes.Cluster("example", { * name: "example-akcc", * resourceGroupName: example.name, * location: "West Europe", * agentPublicKeyCertificate: std.filebase64({ * input: "testdata/public.cer", * }).then(invoke => invoke.result), * identity: { * type: "SystemAssigned", * }, * tags: { * ENV: "Test", * }, * }); * ``` * * > **Note:** An extensive example on connecting the `azure.arckubernetes.Cluster` to an external kubernetes cluster can be found in the `./examples/arckubernetes` directory within the GitHub Repository. * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.Kubernetes` - 2024-01-01 * * ## Import * * Arc Kubernetes Cluster can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:arckubernetes/cluster:Cluster example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.Kubernetes/connectedClusters/cluster1 * ``` */ 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; /** * Specifies the base64-encoded public certificate used by the agent to do the initial handshake to the backend services in Azure. Changing this forces a new Arc Kubernetes Cluster to be created. */ readonly agentPublicKeyCertificate: pulumi.Output; /** * Version of the agent running on the cluster resource. */ readonly agentVersion: pulumi.Output; /** * The distribution running on this Arc Kubernetes Cluster. */ readonly distribution: pulumi.Output; /** * An `identity` block as defined below. Changing this forces a new Arc Kubernetes Cluster to be created. */ readonly identity: pulumi.Output; /** * The infrastructure on which the Arc Kubernetes Cluster is running on. */ readonly infrastructure: pulumi.Output; /** * The Kubernetes version of the cluster resource. */ readonly kubernetesVersion: pulumi.Output; /** * Specifies the Azure Region where the Arc Kubernetes Cluster should exist. Changing this forces a new Arc Kubernetes Cluster to be created. */ readonly location: pulumi.Output; /** * Specifies the name which should be used for this Arc Kubernetes Cluster. Changing this forces a new Arc Kubernetes Cluster to be created. */ readonly name: pulumi.Output; /** * The cluster offering. */ readonly offering: pulumi.Output; /** * Specifies the name of the Resource Group where the Arc Kubernetes Cluster should exist. Changing this forces a new Arc Kubernetes Cluster to be created. */ readonly resourceGroupName: pulumi.Output; /** * A mapping of tags which should be assigned to the Arc Kubernetes Cluster. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Number of CPU cores present in the cluster resource. */ readonly totalCoreCount: pulumi.Output; /** * Number of nodes present in the cluster resource. */ readonly totalNodeCount: 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 { /** * Specifies the base64-encoded public certificate used by the agent to do the initial handshake to the backend services in Azure. Changing this forces a new Arc Kubernetes Cluster to be created. */ agentPublicKeyCertificate?: pulumi.Input; /** * Version of the agent running on the cluster resource. */ agentVersion?: pulumi.Input; /** * The distribution running on this Arc Kubernetes Cluster. */ distribution?: pulumi.Input; /** * An `identity` block as defined below. Changing this forces a new Arc Kubernetes Cluster to be created. */ identity?: pulumi.Input; /** * The infrastructure on which the Arc Kubernetes Cluster is running on. */ infrastructure?: pulumi.Input; /** * The Kubernetes version of the cluster resource. */ kubernetesVersion?: pulumi.Input; /** * Specifies the Azure Region where the Arc Kubernetes Cluster should exist. Changing this forces a new Arc Kubernetes Cluster to be created. */ location?: pulumi.Input; /** * Specifies the name which should be used for this Arc Kubernetes Cluster. Changing this forces a new Arc Kubernetes Cluster to be created. */ name?: pulumi.Input; /** * The cluster offering. */ offering?: pulumi.Input; /** * Specifies the name of the Resource Group where the Arc Kubernetes Cluster should exist. Changing this forces a new Arc Kubernetes Cluster to be created. */ resourceGroupName?: pulumi.Input; /** * A mapping of tags which should be assigned to the Arc Kubernetes Cluster. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Number of CPU cores present in the cluster resource. */ totalCoreCount?: pulumi.Input; /** * Number of nodes present in the cluster resource. */ totalNodeCount?: pulumi.Input; } /** * The set of arguments for constructing a Cluster resource. */ export interface ClusterArgs { /** * Specifies the base64-encoded public certificate used by the agent to do the initial handshake to the backend services in Azure. Changing this forces a new Arc Kubernetes Cluster to be created. */ agentPublicKeyCertificate: pulumi.Input; /** * An `identity` block as defined below. Changing this forces a new Arc Kubernetes Cluster to be created. */ identity: pulumi.Input; /** * Specifies the Azure Region where the Arc Kubernetes Cluster should exist. Changing this forces a new Arc Kubernetes Cluster to be created. */ location?: pulumi.Input; /** * Specifies the name which should be used for this Arc Kubernetes Cluster. Changing this forces a new Arc Kubernetes Cluster to be created. */ name?: pulumi.Input; /** * Specifies the name of the Resource Group where the Arc Kubernetes Cluster should exist. Changing this forces a new Arc Kubernetes Cluster to be created. */ resourceGroupName: pulumi.Input; /** * A mapping of tags which should be assigned to the Arc Kubernetes Cluster. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; }