import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Manages an Arc Kubernetes Cluster Extension. * * ## 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", * }, * }); * const exampleClusterExtension = new azure.arckubernetes.ClusterExtension("example", { * name: "example-ext", * clusterId: exampleCluster.id, * extensionType: "microsoft.flux", * }); * ``` * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.KubernetesConfiguration` - 2024-11-01 * * ## Import * * Arc Kubernetes Cluster Extension can be imported using the `resource id` for different `clusterResourceName`, e.g. * * ```sh * $ pulumi import azure:arckubernetes/clusterExtension:ClusterExtension example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.Kubernetes/connectedClusters/cluster1/providers/Microsoft.KubernetesConfiguration/extensions/extension1 * ``` */ export declare class ClusterExtension extends pulumi.CustomResource { /** * Get an existing ClusterExtension 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?: ClusterExtensionState, opts?: pulumi.CustomResourceOptions): ClusterExtension; /** * Returns true if the given object is an instance of ClusterExtension. 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 ClusterExtension; /** * Specifies the Cluster ID. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ readonly clusterId: pulumi.Output; /** * Configuration settings that are sensitive, as name-value pairs for configuring this extension. */ readonly configurationProtectedSettings: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Configuration settings, as name-value pairs for configuring this extension. */ readonly configurationSettings: pulumi.Output<{ [key: string]: string; } | undefined>; /** * The current version of the extension. */ readonly currentVersion: pulumi.Output; /** * Specifies the type of extension. It must be one of the extension types registered with Microsoft.KubernetesConfiguration by the Extension publisher. For more information, please refer to [Available Extensions for Arc-enabled Kubernetes clusters](https://learn.microsoft.com/en-us/azure/azure-arc/kubernetes/extensions-release). Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ readonly extensionType: pulumi.Output; /** * An `identity` block as defined below. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ readonly identity: pulumi.Output; /** * Specifies the name which should be used for this Arc Kubernetes Cluster Extension. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ readonly name: pulumi.Output; /** * Namespace where the extension release must be placed for a cluster scoped extension. If this namespace does not exist, it will be created. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ readonly releaseNamespace: pulumi.Output; /** * The release train used by this extension. Possible values include but are not limited to `Stable`, `Preview`. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ readonly releaseTrain: pulumi.Output; /** * Namespace where the extension will be created for a namespace scoped extension. If this namespace does not exist, it will be created. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ readonly targetNamespace: pulumi.Output; /** * User-specified version that the extension should pin to. If it is not set, Azure will use the latest version and auto upgrade it. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ readonly version: pulumi.Output; /** * Create a ClusterExtension 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: ClusterExtensionArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering ClusterExtension resources. */ export interface ClusterExtensionState { /** * Specifies the Cluster ID. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ clusterId?: pulumi.Input; /** * Configuration settings that are sensitive, as name-value pairs for configuring this extension. */ configurationProtectedSettings?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Configuration settings, as name-value pairs for configuring this extension. */ configurationSettings?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The current version of the extension. */ currentVersion?: pulumi.Input; /** * Specifies the type of extension. It must be one of the extension types registered with Microsoft.KubernetesConfiguration by the Extension publisher. For more information, please refer to [Available Extensions for Arc-enabled Kubernetes clusters](https://learn.microsoft.com/en-us/azure/azure-arc/kubernetes/extensions-release). Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ extensionType?: pulumi.Input; /** * An `identity` block as defined below. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ identity?: pulumi.Input; /** * Specifies the name which should be used for this Arc Kubernetes Cluster Extension. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ name?: pulumi.Input; /** * Namespace where the extension release must be placed for a cluster scoped extension. If this namespace does not exist, it will be created. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ releaseNamespace?: pulumi.Input; /** * The release train used by this extension. Possible values include but are not limited to `Stable`, `Preview`. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ releaseTrain?: pulumi.Input; /** * Namespace where the extension will be created for a namespace scoped extension. If this namespace does not exist, it will be created. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ targetNamespace?: pulumi.Input; /** * User-specified version that the extension should pin to. If it is not set, Azure will use the latest version and auto upgrade it. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ version?: pulumi.Input; } /** * The set of arguments for constructing a ClusterExtension resource. */ export interface ClusterExtensionArgs { /** * Specifies the Cluster ID. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ clusterId: pulumi.Input; /** * Configuration settings that are sensitive, as name-value pairs for configuring this extension. */ configurationProtectedSettings?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Configuration settings, as name-value pairs for configuring this extension. */ configurationSettings?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * Specifies the type of extension. It must be one of the extension types registered with Microsoft.KubernetesConfiguration by the Extension publisher. For more information, please refer to [Available Extensions for Arc-enabled Kubernetes clusters](https://learn.microsoft.com/en-us/azure/azure-arc/kubernetes/extensions-release). Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ extensionType: pulumi.Input; /** * An `identity` block as defined below. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ identity: pulumi.Input; /** * Specifies the name which should be used for this Arc Kubernetes Cluster Extension. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ name?: pulumi.Input; /** * Namespace where the extension release must be placed for a cluster scoped extension. If this namespace does not exist, it will be created. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ releaseNamespace?: pulumi.Input; /** * The release train used by this extension. Possible values include but are not limited to `Stable`, `Preview`. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ releaseTrain?: pulumi.Input; /** * Namespace where the extension will be created for a namespace scoped extension. If this namespace does not exist, it will be created. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ targetNamespace?: pulumi.Input; /** * User-specified version that the extension should pin to. If it is not set, Azure will use the latest version and auto upgrade it. Changing this forces a new Arc Kubernetes Cluster Extension to be created. */ version?: pulumi.Input; }