import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Manages a Kubernetes Flux Configuration. * * ## 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: test.id, * extensionType: "microsoft.flux", * }); * const exampleFluxConfiguration = new azure.containerservice.FluxConfiguration("example", { * name: "example-fc", * clusterId: test.id, * namespace: "flux", * gitRepository: { * url: "https://github.com/Azure/arc-k8s-demo", * referenceType: "branch", * referenceValue: "main", * }, * kustomizations: [{ * name: "kustomization-1", * postBuild: { * substitute: { * example_var: "substitute_with_this", * }, * substituteFroms: [{ * kind: "ConfigMap", * name: "example-configmap", * }], * }, * }], * }, { * dependsOn: [exampleKubernetesClusterExtension], * }); * ``` * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.KubernetesConfiguration` - 2025-04-01 * * ## Import * * Kubernetes Flux Configuration can be imported using the `resource id` for different `clusterResourceName`, e.g. * * ```sh * $ pulumi import azure:containerservice/fluxConfiguration:FluxConfiguration example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/fluxConfiguration1 * ``` */ export declare class FluxConfiguration extends pulumi.CustomResource { /** * Get an existing FluxConfiguration 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?: FluxConfigurationState, opts?: pulumi.CustomResourceOptions): FluxConfiguration; /** * Returns true if the given object is an instance of FluxConfiguration. 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 FluxConfiguration; /** * An `blobStorage` block as defined below. */ readonly blobStorage: pulumi.Output; /** * A `bucket` block as defined below. */ readonly bucket: pulumi.Output; /** * Specifies the Cluster ID. Changing this forces a new Kubernetes Cluster Extension to be created. */ readonly clusterId: pulumi.Output; /** * Whether the configuration will keep its reconciliation of its kustomizations and sources with the repository. Defaults to `true`. */ readonly continuousReconciliationEnabled: pulumi.Output; /** * A `gitRepository` block as defined below. */ readonly gitRepository: pulumi.Output; /** * A `kustomizations` block as defined below. */ readonly kustomizations: pulumi.Output; /** * Specifies the name which should be used for this Kubernetes Flux Configuration. Changing this forces a new Kubernetes Flux Configuration to be created. */ readonly name: pulumi.Output; /** * Specifies the namespace to which this configuration is installed to. Changing this forces a new Kubernetes Flux Configuration to be created. */ readonly namespace: pulumi.Output; /** * Specifies the scope at which the operator will be installed. Possible values are `cluster` and `namespace`. Defaults to `namespace`. Changing this forces a new Kubernetes Flux Configuration to be created. */ readonly scope: pulumi.Output; /** * Create a FluxConfiguration 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: FluxConfigurationArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering FluxConfiguration resources. */ export interface FluxConfigurationState { /** * An `blobStorage` block as defined below. */ blobStorage?: pulumi.Input; /** * A `bucket` block as defined below. */ bucket?: pulumi.Input; /** * Specifies the Cluster ID. Changing this forces a new Kubernetes Cluster Extension to be created. */ clusterId?: pulumi.Input; /** * Whether the configuration will keep its reconciliation of its kustomizations and sources with the repository. Defaults to `true`. */ continuousReconciliationEnabled?: pulumi.Input; /** * A `gitRepository` block as defined below. */ gitRepository?: pulumi.Input; /** * A `kustomizations` block as defined below. */ kustomizations?: pulumi.Input[]>; /** * Specifies the name which should be used for this Kubernetes Flux Configuration. Changing this forces a new Kubernetes Flux Configuration to be created. */ name?: pulumi.Input; /** * Specifies the namespace to which this configuration is installed to. Changing this forces a new Kubernetes Flux Configuration to be created. */ namespace?: pulumi.Input; /** * Specifies the scope at which the operator will be installed. Possible values are `cluster` and `namespace`. Defaults to `namespace`. Changing this forces a new Kubernetes Flux Configuration to be created. */ scope?: pulumi.Input; } /** * The set of arguments for constructing a FluxConfiguration resource. */ export interface FluxConfigurationArgs { /** * An `blobStorage` block as defined below. */ blobStorage?: pulumi.Input; /** * A `bucket` block as defined below. */ bucket?: pulumi.Input; /** * Specifies the Cluster ID. Changing this forces a new Kubernetes Cluster Extension to be created. */ clusterId: pulumi.Input; /** * Whether the configuration will keep its reconciliation of its kustomizations and sources with the repository. Defaults to `true`. */ continuousReconciliationEnabled?: pulumi.Input; /** * A `gitRepository` block as defined below. */ gitRepository?: pulumi.Input; /** * A `kustomizations` block as defined below. */ kustomizations: pulumi.Input[]>; /** * Specifies the name which should be used for this Kubernetes Flux Configuration. Changing this forces a new Kubernetes Flux Configuration to be created. */ name?: pulumi.Input; /** * Specifies the namespace to which this configuration is installed to. Changing this forces a new Kubernetes Flux Configuration to be created. */ namespace: pulumi.Input; /** * Specifies the scope at which the operator will be installed. Possible values are `cluster` and `namespace`. Defaults to `namespace`. Changing this forces a new Kubernetes Flux Configuration to be created. */ scope?: pulumi.Input; }