import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Manages a Kubernetes Cluster Extension. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * * const example = new azure.core.ResourceGroup("example", { * name: "example-resources", * location: "West Europe", * }); * const exampleKubernetesCluster = new azure.containerservice.KubernetesCluster("example", { * name: "example-aks", * location: "West Europe", * resourceGroupName: example.name, * dnsPrefix: "example-aks", * defaultNodePool: { * name: "default", * nodeCount: 1, * vmSize: "Standard_DS2_v2", * }, * identity: { * type: "SystemAssigned", * }, * }); * const exampleKubernetesClusterExtension = new azure.containerservice.KubernetesClusterExtension("example", { * name: "example-ext", * clusterId: exampleKubernetesCluster.id, * extensionType: "microsoft.flux", * }); * ``` * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.KubernetesConfiguration` - 2024-11-01 * * ## Import * * Kubernetes Cluster Extension can be imported using the `resource id` for different `clusterResourceName`, e.g. * * ```sh * $ pulumi import azure:containerservice/kubernetesClusterExtension:KubernetesClusterExtension example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1/providers/Microsoft.KubernetesConfiguration/extensions/extension1 * ``` */ export declare class KubernetesClusterExtension extends pulumi.CustomResource { /** * Get an existing KubernetesClusterExtension 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?: KubernetesClusterExtensionState, opts?: pulumi.CustomResourceOptions): KubernetesClusterExtension; /** * Returns true if the given object is an instance of KubernetesClusterExtension. 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 KubernetesClusterExtension; /** * An `aksAssignedIdentity` block as defined below. */ readonly aksAssignedIdentities: pulumi.Output; /** * Specifies the Cluster ID. Changing this forces a new 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 AKS](https://learn.microsoft.com/en-us/azure/aks/cluster-extensions?tabs=azure-cli#currently-available-extensions). Changing this forces a new Kubernetes Cluster Extension to be created. */ readonly extensionType: pulumi.Output; /** * Specifies the name which should be used for this Kubernetes Cluster Extension. Changing this forces a new Kubernetes Cluster Extension to be created. */ readonly name: pulumi.Output; /** * A `plan` block as defined below. Changing this forces a new resource to be created. */ readonly plan: 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 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 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 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 Kubernetes Cluster Extension to be created. */ readonly version: pulumi.Output; /** * Create a KubernetesClusterExtension 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: KubernetesClusterExtensionArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering KubernetesClusterExtension resources. */ export interface KubernetesClusterExtensionState { /** * An `aksAssignedIdentity` block as defined below. */ aksAssignedIdentities?: pulumi.Input[]>; /** * Specifies the Cluster ID. Changing this forces a new 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 AKS](https://learn.microsoft.com/en-us/azure/aks/cluster-extensions?tabs=azure-cli#currently-available-extensions). Changing this forces a new Kubernetes Cluster Extension to be created. */ extensionType?: pulumi.Input; /** * Specifies the name which should be used for this Kubernetes Cluster Extension. Changing this forces a new Kubernetes Cluster Extension to be created. */ name?: pulumi.Input; /** * A `plan` block as defined below. Changing this forces a new resource to be created. */ plan?: 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 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 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 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 Kubernetes Cluster Extension to be created. */ version?: pulumi.Input; } /** * The set of arguments for constructing a KubernetesClusterExtension resource. */ export interface KubernetesClusterExtensionArgs { /** * Specifies the Cluster ID. Changing this forces a new 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 AKS](https://learn.microsoft.com/en-us/azure/aks/cluster-extensions?tabs=azure-cli#currently-available-extensions). Changing this forces a new Kubernetes Cluster Extension to be created. */ extensionType: pulumi.Input; /** * Specifies the name which should be used for this Kubernetes Cluster Extension. Changing this forces a new Kubernetes Cluster Extension to be created. */ name?: pulumi.Input; /** * A `plan` block as defined below. Changing this forces a new resource to be created. */ plan?: 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 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 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 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 Kubernetes Cluster Extension to be created. */ version?: pulumi.Input; }