
com.pulumi.azurenative.kubernetesconfiguration.kotlin.FluxConfigurationArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.azurenative.kubernetesconfiguration.kotlin
import com.pulumi.azurenative.kubernetesconfiguration.FluxConfigurationArgs.builder
import com.pulumi.azurenative.kubernetesconfiguration.kotlin.enums.ScopeType
import com.pulumi.azurenative.kubernetesconfiguration.kotlin.enums.SourceKindType
import com.pulumi.azurenative.kubernetesconfiguration.kotlin.inputs.AzureBlobDefinitionArgs
import com.pulumi.azurenative.kubernetesconfiguration.kotlin.inputs.AzureBlobDefinitionArgsBuilder
import com.pulumi.azurenative.kubernetesconfiguration.kotlin.inputs.BucketDefinitionArgs
import com.pulumi.azurenative.kubernetesconfiguration.kotlin.inputs.BucketDefinitionArgsBuilder
import com.pulumi.azurenative.kubernetesconfiguration.kotlin.inputs.GitRepositoryDefinitionArgs
import com.pulumi.azurenative.kubernetesconfiguration.kotlin.inputs.GitRepositoryDefinitionArgsBuilder
import com.pulumi.azurenative.kubernetesconfiguration.kotlin.inputs.KustomizationDefinitionArgs
import com.pulumi.azurenative.kubernetesconfiguration.kotlin.inputs.KustomizationDefinitionArgsBuilder
import com.pulumi.core.Either
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
import kotlin.jvm.JvmName
/**
* The Flux Configuration object returned in Get & Put response.
* Azure REST API version: 2023-05-01. Prior API version in Azure Native 1.x: 2021-11-01-preview.
* Other available API versions: 2021-11-01-preview, 2022-01-01-preview, 2024-04-01-preview.
* ## Example Usage
* ### Create Flux Configuration
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using AzureNative = Pulumi.AzureNative;
* return await Deployment.RunAsync(() =>
* {
* var fluxConfiguration = new AzureNative.KubernetesConfiguration.FluxConfiguration("fluxConfiguration", new()
* {
* ClusterName = "clusterName1",
* ClusterResourceName = "connectedClusters",
* ClusterRp = "Microsoft.Kubernetes",
* FluxConfigurationName = "srs-fluxconfig",
* GitRepository = new AzureNative.KubernetesConfiguration.Inputs.GitRepositoryDefinitionArgs
* {
* HttpsCACert = "ZXhhbXBsZWNlcnRpZmljYXRl",
* RepositoryRef = new AzureNative.KubernetesConfiguration.Inputs.RepositoryRefDefinitionArgs
* {
* Branch = "master",
* },
* SyncIntervalInSeconds = 600,
* TimeoutInSeconds = 600,
* Url = "https://github.com/Azure/arc-k8s-demo",
* },
* Kustomizations =
* {
* { "srs-kustomization1", new AzureNative.KubernetesConfiguration.Inputs.KustomizationDefinitionArgs
* {
* DependsOn = new() { },
* Path = "./test/path",
* PostBuild = new AzureNative.KubernetesConfiguration.Inputs.PostBuildDefinitionArgs
* {
* Substitute =
* {
* { "cluster_env", "prod" },
* { "replica_count", "2" },
* },
* SubstituteFrom = new[]
* {
* new AzureNative.KubernetesConfiguration.Inputs.SubstituteFromDefinitionArgs
* {
* Kind = "ConfigMap",
* Name = "cluster-test",
* Optional = true,
* },
* },
* },
* SyncIntervalInSeconds = 600,
* TimeoutInSeconds = 600,
* Wait = true,
* } },
* { "srs-kustomization2", new AzureNative.KubernetesConfiguration.Inputs.KustomizationDefinitionArgs
* {
* DependsOn = new[]
* {
* "srs-kustomization1",
* },
* Path = "./other/test/path",
* PostBuild = new AzureNative.KubernetesConfiguration.Inputs.PostBuildDefinitionArgs
* {
* SubstituteFrom = new[]
* {
* new AzureNative.KubernetesConfiguration.Inputs.SubstituteFromDefinitionArgs
* {
* Kind = "ConfigMap",
* Name = "cluster-values",
* Optional = true,
* },
* new AzureNative.KubernetesConfiguration.Inputs.SubstituteFromDefinitionArgs
* {
* Kind = "Secret",
* Name = "secret-name",
* Optional = false,
* },
* },
* },
* Prune = false,
* RetryIntervalInSeconds = 600,
* SyncIntervalInSeconds = 600,
* TimeoutInSeconds = 600,
* Wait = false,
* } },
* },
* Namespace = "srs-namespace",
* ReconciliationWaitDuration = "PT30M",
* ResourceGroupName = "rg1",
* Scope = AzureNative.KubernetesConfiguration.ScopeType.Cluster,
* SourceKind = AzureNative.KubernetesConfiguration.SourceKindType.GitRepository,
* Suspend = false,
* WaitForReconciliation = true,
* });
* });
* ```
* ```go
* package main
* import (
* kubernetesconfiguration "github.com/pulumi/pulumi-azure-native-sdk/kubernetesconfiguration/v2"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := kubernetesconfiguration.NewFluxConfiguration(ctx, "fluxConfiguration", &kubernetesconfiguration.FluxConfigurationArgs{
* ClusterName: pulumi.String("clusterName1"),
* ClusterResourceName: pulumi.String("connectedClusters"),
* ClusterRp: pulumi.String("Microsoft.Kubernetes"),
* FluxConfigurationName: pulumi.String("srs-fluxconfig"),
* GitRepository: &kubernetesconfiguration.GitRepositoryDefinitionArgs{
* HttpsCACert: pulumi.String("ZXhhbXBsZWNlcnRpZmljYXRl"),
* RepositoryRef: &kubernetesconfiguration.RepositoryRefDefinitionArgs{
* Branch: pulumi.String("master"),
* },
* SyncIntervalInSeconds: pulumi.Float64(600),
* TimeoutInSeconds: pulumi.Float64(600),
* Url: pulumi.String("https://github.com/Azure/arc-k8s-demo"),
* },
* Kustomizations: kubernetesconfiguration.KustomizationDefinitionMap{
* "srs-kustomization1": &kubernetesconfiguration.KustomizationDefinitionArgs{
* DependsOn: pulumi.StringArray{},
* Path: pulumi.String("./test/path"),
* PostBuild: &kubernetesconfiguration.PostBuildDefinitionArgs{
* Substitute: pulumi.StringMap{
* "cluster_env": pulumi.String("prod"),
* "replica_count": pulumi.String("2"),
* },
* SubstituteFrom: kubernetesconfiguration.SubstituteFromDefinitionArray{
* &kubernetesconfiguration.SubstituteFromDefinitionArgs{
* Kind: pulumi.String("ConfigMap"),
* Name: pulumi.String("cluster-test"),
* Optional: pulumi.Bool(true),
* },
* },
* },
* SyncIntervalInSeconds: pulumi.Float64(600),
* TimeoutInSeconds: pulumi.Float64(600),
* Wait: pulumi.Bool(true),
* },
* "srs-kustomization2": &kubernetesconfiguration.KustomizationDefinitionArgs{
* DependsOn: pulumi.StringArray{
* pulumi.String("srs-kustomization1"),
* },
* Path: pulumi.String("./other/test/path"),
* PostBuild: &kubernetesconfiguration.PostBuildDefinitionArgs{
* SubstituteFrom: kubernetesconfiguration.SubstituteFromDefinitionArray{
* &kubernetesconfiguration.SubstituteFromDefinitionArgs{
* Kind: pulumi.String("ConfigMap"),
* Name: pulumi.String("cluster-values"),
* Optional: pulumi.Bool(true),
* },
* &kubernetesconfiguration.SubstituteFromDefinitionArgs{
* Kind: pulumi.String("Secret"),
* Name: pulumi.String("secret-name"),
* Optional: pulumi.Bool(false),
* },
* },
* },
* Prune: pulumi.Bool(false),
* RetryIntervalInSeconds: pulumi.Float64(600),
* SyncIntervalInSeconds: pulumi.Float64(600),
* TimeoutInSeconds: pulumi.Float64(600),
* Wait: pulumi.Bool(false),
* },
* },
* Namespace: pulumi.String("srs-namespace"),
* ReconciliationWaitDuration: pulumi.String("PT30M"),
* ResourceGroupName: pulumi.String("rg1"),
* Scope: pulumi.String(kubernetesconfiguration.ScopeTypeCluster),
* SourceKind: pulumi.String(kubernetesconfiguration.SourceKindTypeGitRepository),
* Suspend: pulumi.Bool(false),
* WaitForReconciliation: pulumi.Bool(true),
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.azurenative.kubernetesconfiguration.FluxConfiguration;
* import com.pulumi.azurenative.kubernetesconfiguration.FluxConfigurationArgs;
* import com.pulumi.azurenative.kubernetesconfiguration.inputs.GitRepositoryDefinitionArgs;
* import com.pulumi.azurenative.kubernetesconfiguration.inputs.RepositoryRefDefinitionArgs;
* 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) {
* var fluxConfiguration = new FluxConfiguration("fluxConfiguration", FluxConfigurationArgs.builder()
* .clusterName("clusterName1")
* .clusterResourceName("connectedClusters")
* .clusterRp("Microsoft.Kubernetes")
* .fluxConfigurationName("srs-fluxconfig")
* .gitRepository(GitRepositoryDefinitionArgs.builder()
* .httpsCACert("ZXhhbXBsZWNlcnRpZmljYXRl")
* .repositoryRef(RepositoryRefDefinitionArgs.builder()
* .branch("master")
* .build())
* .syncIntervalInSeconds(600)
* .timeoutInSeconds(600)
* .url("https://github.com/Azure/arc-k8s-demo")
* .build())
* .kustomizations(Map.ofEntries(
* Map.entry("srs-kustomization1", Map.ofEntries(
* Map.entry("dependsOn", ),
* Map.entry("path", "./test/path"),
* Map.entry("postBuild", Map.ofEntries(
* Map.entry("substitute", Map.ofEntries(
* Map.entry("cluster_env", "prod"),
* Map.entry("replica_count", "2")
* )),
* Map.entry("substituteFrom", Map.ofEntries(
* Map.entry("kind", "ConfigMap"),
* Map.entry("name", "cluster-test"),
* Map.entry("optional", true)
* ))
* )),
* Map.entry("syncIntervalInSeconds", 600),
* Map.entry("timeoutInSeconds", 600),
* Map.entry("wait", true)
* )),
* Map.entry("srs-kustomization2", Map.ofEntries(
* Map.entry("dependsOn", "srs-kustomization1"),
* Map.entry("path", "./other/test/path"),
* Map.entry("postBuild", Map.of("substituteFrom",
* Map.ofEntries(
* Map.entry("kind", "ConfigMap"),
* Map.entry("name", "cluster-values"),
* Map.entry("optional", true)
* ),
* Map.ofEntries(
* Map.entry("kind", "Secret"),
* Map.entry("name", "secret-name"),
* Map.entry("optional", false)
* ))),
* Map.entry("prune", false),
* Map.entry("retryIntervalInSeconds", 600),
* Map.entry("syncIntervalInSeconds", 600),
* Map.entry("timeoutInSeconds", 600),
* Map.entry("wait", false)
* ))
* ))
* .namespace("srs-namespace")
* .reconciliationWaitDuration("PT30M")
* .resourceGroupName("rg1")
* .scope("cluster")
* .sourceKind("GitRepository")
* .suspend(false)
* .waitForReconciliation(true)
* .build());
* }
* }
* ```
* ### Create Flux Configuration with Bucket Source Kind
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using AzureNative = Pulumi.AzureNative;
* return await Deployment.RunAsync(() =>
* {
* var fluxConfiguration = new AzureNative.KubernetesConfiguration.FluxConfiguration("fluxConfiguration", new()
* {
* Bucket = new AzureNative.KubernetesConfiguration.Inputs.BucketDefinitionArgs
* {
* AccessKey = "fluxminiotest",
* BucketName = "flux",
* SyncIntervalInSeconds = 1000,
* TimeoutInSeconds = 1000,
* Url = "https://fluxminiotest.az.minio.io",
* },
* ClusterName = "clusterName1",
* ClusterResourceName = "connectedClusters",
* ClusterRp = "Microsoft.Kubernetes",
* FluxConfigurationName = "srs-fluxconfig",
* Kustomizations =
* {
* { "srs-kustomization1", new AzureNative.KubernetesConfiguration.Inputs.KustomizationDefinitionArgs
* {
* DependsOn = new() { },
* Path = "./test/path",
* SyncIntervalInSeconds = 600,
* TimeoutInSeconds = 600,
* } },
* { "srs-kustomization2", new AzureNative.KubernetesConfiguration.Inputs.KustomizationDefinitionArgs
* {
* DependsOn = new[]
* {
* "srs-kustomization1",
* },
* Path = "./other/test/path",
* Prune = false,
* RetryIntervalInSeconds = 600,
* SyncIntervalInSeconds = 600,
* TimeoutInSeconds = 600,
* } },
* },
* Namespace = "srs-namespace",
* ResourceGroupName = "rg1",
* Scope = AzureNative.KubernetesConfiguration.ScopeType.Cluster,
* SourceKind = AzureNative.KubernetesConfiguration.SourceKindType.Bucket,
* Suspend = false,
* });
* });
* ```
* ```go
* package main
* import (
* kubernetesconfiguration "github.com/pulumi/pulumi-azure-native-sdk/kubernetesconfiguration/v2"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := kubernetesconfiguration.NewFluxConfiguration(ctx, "fluxConfiguration", &kubernetesconfiguration.FluxConfigurationArgs{
* Bucket: &kubernetesconfiguration.BucketDefinitionArgs{
* AccessKey: pulumi.String("fluxminiotest"),
* BucketName: pulumi.String("flux"),
* SyncIntervalInSeconds: pulumi.Float64(1000),
* TimeoutInSeconds: pulumi.Float64(1000),
* Url: pulumi.String("https://fluxminiotest.az.minio.io"),
* },
* ClusterName: pulumi.String("clusterName1"),
* ClusterResourceName: pulumi.String("connectedClusters"),
* ClusterRp: pulumi.String("Microsoft.Kubernetes"),
* FluxConfigurationName: pulumi.String("srs-fluxconfig"),
* Kustomizations: kubernetesconfiguration.KustomizationDefinitionMap{
* "srs-kustomization1": &kubernetesconfiguration.KustomizationDefinitionArgs{
* DependsOn: pulumi.StringArray{},
* Path: pulumi.String("./test/path"),
* SyncIntervalInSeconds: pulumi.Float64(600),
* TimeoutInSeconds: pulumi.Float64(600),
* },
* "srs-kustomization2": &kubernetesconfiguration.KustomizationDefinitionArgs{
* DependsOn: pulumi.StringArray{
* pulumi.String("srs-kustomization1"),
* },
* Path: pulumi.String("./other/test/path"),
* Prune: pulumi.Bool(false),
* RetryIntervalInSeconds: pulumi.Float64(600),
* SyncIntervalInSeconds: pulumi.Float64(600),
* TimeoutInSeconds: pulumi.Float64(600),
* },
* },
* Namespace: pulumi.String("srs-namespace"),
* ResourceGroupName: pulumi.String("rg1"),
* Scope: pulumi.String(kubernetesconfiguration.ScopeTypeCluster),
* SourceKind: pulumi.String(kubernetesconfiguration.SourceKindTypeBucket),
* Suspend: pulumi.Bool(false),
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.azurenative.kubernetesconfiguration.FluxConfiguration;
* import com.pulumi.azurenative.kubernetesconfiguration.FluxConfigurationArgs;
* import com.pulumi.azurenative.kubernetesconfiguration.inputs.BucketDefinitionArgs;
* 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) {
* var fluxConfiguration = new FluxConfiguration("fluxConfiguration", FluxConfigurationArgs.builder()
* .bucket(BucketDefinitionArgs.builder()
* .accessKey("fluxminiotest")
* .bucketName("flux")
* .syncIntervalInSeconds(1000)
* .timeoutInSeconds(1000)
* .url("https://fluxminiotest.az.minio.io")
* .build())
* .clusterName("clusterName1")
* .clusterResourceName("connectedClusters")
* .clusterRp("Microsoft.Kubernetes")
* .fluxConfigurationName("srs-fluxconfig")
* .kustomizations(Map.ofEntries(
* Map.entry("srs-kustomization1", Map.ofEntries(
* Map.entry("dependsOn", ),
* Map.entry("path", "./test/path"),
* Map.entry("syncIntervalInSeconds", 600),
* Map.entry("timeoutInSeconds", 600)
* )),
* Map.entry("srs-kustomization2", Map.ofEntries(
* Map.entry("dependsOn", "srs-kustomization1"),
* Map.entry("path", "./other/test/path"),
* Map.entry("prune", false),
* Map.entry("retryIntervalInSeconds", 600),
* Map.entry("syncIntervalInSeconds", 600),
* Map.entry("timeoutInSeconds", 600)
* ))
* ))
* .namespace("srs-namespace")
* .resourceGroupName("rg1")
* .scope("cluster")
* .sourceKind("Bucket")
* .suspend(false)
* .build());
* }
* }
* ```
* ## Import
* An existing resource can be imported using its type token, name, and identifier, e.g.
* ```sh
* $ pulumi import azure-native:kubernetesconfiguration:FluxConfiguration srs-fluxconfig /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/{fluxConfigurationName}
* ```
* @property azureBlob Parameters to reconcile to the AzureBlob source kind type.
* @property bucket Parameters to reconcile to the Bucket source kind type.
* @property clusterName The name of the kubernetes cluster.
* @property clusterResourceName The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters.
* @property clusterRp The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.
* @property configurationProtectedSettings Key-value pairs of protected configuration settings for the configuration
* @property fluxConfigurationName Name of the Flux Configuration.
* @property gitRepository Parameters to reconcile to the GitRepository source kind type.
* @property kustomizations Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster.
* @property namespace The namespace to which this configuration is installed to. Maximum of 253 lower case alphanumeric characters, hyphen and period only.
* @property reconciliationWaitDuration Maximum duration to wait for flux configuration reconciliation. E.g PT1H, PT5M, P1D
* @property resourceGroupName The name of the resource group. The name is case insensitive.
* @property scope Scope at which the operator will be installed.
* @property sourceKind Source Kind to pull the configuration data from.
* @property suspend Whether this configuration should suspend its reconciliation of its kustomizations and sources.
* @property waitForReconciliation Whether flux configuration deployment should wait for cluster to reconcile the kustomizations.
*/
public data class FluxConfigurationArgs(
public val azureBlob: Output? = null,
public val bucket: Output? = null,
public val clusterName: Output? = null,
public val clusterResourceName: Output? = null,
public val clusterRp: Output? = null,
public val configurationProtectedSettings: Output
© 2015 - 2025 Weber Informatics LLC | Privacy Policy