FluxConfigurationArgs

data class FluxConfigurationArgs(val blobStorage: Output<FluxConfigurationBlobStorageArgs>? = null, val bucket: Output<FluxConfigurationBucketArgs>? = null, val clusterId: Output<String>? = null, val continuousReconciliationEnabled: Output<Boolean>? = null, val gitRepository: Output<FluxConfigurationGitRepositoryArgs>? = null, val kustomizations: Output<List<FluxConfigurationKustomizationArgs>>? = null, val name: Output<String>? = null, val namespace: Output<String>? = null, val scope: Output<String>? = null) : ConvertibleToJava<FluxConfigurationArgs>

Manages an Arc Kubernetes Flux Configuration.

Example Usage

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: test.id,
extensionType: "microsoft.flux",
});
const exampleFluxConfiguration = new azure.arckubernetes.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",
}],
}, {
dependsOn: [exampleClusterExtension],
});
import pulumi
import pulumi_azure as azure
import pulumi_std as std
example = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_cluster = azure.arckubernetes.Cluster("example",
name="example-akcc",
resource_group_name=example.name,
location="West Europe",
agent_public_key_certificate=std.filebase64(input="testdata/public.cer").result,
identity={
"type": "SystemAssigned",
},
tags={
"ENV": "Test",
})
example_cluster_extension = azure.arckubernetes.ClusterExtension("example",
name="example-ext",
cluster_id=test["id"],
extension_type="microsoft.flux")
example_flux_configuration = azure.arckubernetes.FluxConfiguration("example",
name="example-fc",
cluster_id=test["id"],
namespace="flux",
git_repository={
"url": "https://github.com/Azure/arc-k8s-demo",
"reference_type": "branch",
"reference_value": "main",
},
kustomizations=[{
"name": "kustomization-1",
}],
opts = pulumi.ResourceOptions(depends_on=[example_cluster_extension]))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var example = new Azure.Core.ResourceGroup("example", new()
{
Name = "example-resources",
Location = "West Europe",
});
var exampleCluster = new Azure.ArcKubernetes.Cluster("example", new()
{
Name = "example-akcc",
ResourceGroupName = example.Name,
Location = "West Europe",
AgentPublicKeyCertificate = Std.Filebase64.Invoke(new()
{
Input = "testdata/public.cer",
}).Apply(invoke => invoke.Result),
Identity = new Azure.ArcKubernetes.Inputs.ClusterIdentityArgs
{
Type = "SystemAssigned",
},
Tags =
{
{ "ENV", "Test" },
},
});
var exampleClusterExtension = new Azure.ArcKubernetes.ClusterExtension("example", new()
{
Name = "example-ext",
ClusterId = test.Id,
ExtensionType = "microsoft.flux",
});
var exampleFluxConfiguration = new Azure.ArcKubernetes.FluxConfiguration("example", new()
{
Name = "example-fc",
ClusterId = test.Id,
Namespace = "flux",
GitRepository = new Azure.ArcKubernetes.Inputs.FluxConfigurationGitRepositoryArgs
{
Url = "https://github.com/Azure/arc-k8s-demo",
ReferenceType = "branch",
ReferenceValue = "main",
},
Kustomizations = new[]
{
new Azure.ArcKubernetes.Inputs.FluxConfigurationKustomizationArgs
{
Name = "kustomization-1",
},
},
}, new CustomResourceOptions
{
DependsOn =
{
exampleClusterExtension,
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/arckubernetes"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("example-resources"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
invokeFilebase64, err := std.Filebase64(ctx, &std.Filebase64Args{
Input: "testdata/public.cer",
}, nil)
if err != nil {
return err
}
_, err = arckubernetes.NewCluster(ctx, "example", &arckubernetes.ClusterArgs{
Name: pulumi.String("example-akcc"),
ResourceGroupName: example.Name,
Location: pulumi.String("West Europe"),
AgentPublicKeyCertificate: pulumi.String(invokeFilebase64.Result),
Identity: &arckubernetes.ClusterIdentityArgs{
Type: pulumi.String("SystemAssigned"),
},
Tags: pulumi.StringMap{
"ENV": pulumi.String("Test"),
},
})
if err != nil {
return err
}
exampleClusterExtension, err := arckubernetes.NewClusterExtension(ctx, "example", &arckubernetes.ClusterExtensionArgs{
Name: pulumi.String("example-ext"),
ClusterId: pulumi.Any(test.Id),
ExtensionType: pulumi.String("microsoft.flux"),
})
if err != nil {
return err
}
_, err = arckubernetes.NewFluxConfiguration(ctx, "example", &arckubernetes.FluxConfigurationArgs{
Name: pulumi.String("example-fc"),
ClusterId: pulumi.Any(test.Id),
Namespace: pulumi.String("flux"),
GitRepository: &arckubernetes.FluxConfigurationGitRepositoryArgs{
Url: pulumi.String("https://github.com/Azure/arc-k8s-demo"),
ReferenceType: pulumi.String("branch"),
ReferenceValue: pulumi.String("main"),
},
Kustomizations: arckubernetes.FluxConfigurationKustomizationArray{
&arckubernetes.FluxConfigurationKustomizationArgs{
Name: pulumi.String("kustomization-1"),
},
},
}, pulumi.DependsOn([]pulumi.Resource{
exampleClusterExtension,
}))
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.arckubernetes.Cluster;
import com.pulumi.azure.arckubernetes.ClusterArgs;
import com.pulumi.azure.arckubernetes.inputs.ClusterIdentityArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.Filebase64Args;
import com.pulumi.azure.arckubernetes.ClusterExtension;
import com.pulumi.azure.arckubernetes.ClusterExtensionArgs;
import com.pulumi.azure.arckubernetes.FluxConfiguration;
import com.pulumi.azure.arckubernetes.FluxConfigurationArgs;
import com.pulumi.azure.arckubernetes.inputs.FluxConfigurationGitRepositoryArgs;
import com.pulumi.azure.arckubernetes.inputs.FluxConfigurationKustomizationArgs;
import com.pulumi.resources.CustomResourceOptions;
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 example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("example-resources")
.location("West Europe")
.build());
var exampleCluster = new Cluster("exampleCluster", ClusterArgs.builder()
.name("example-akcc")
.resourceGroupName(example.name())
.location("West Europe")
.agentPublicKeyCertificate(StdFunctions.filebase64(Filebase64Args.builder()
.input("testdata/public.cer")
.build()).result())
.identity(ClusterIdentityArgs.builder()
.type("SystemAssigned")
.build())
.tags(Map.of("ENV", "Test"))
.build());
var exampleClusterExtension = new ClusterExtension("exampleClusterExtension", ClusterExtensionArgs.builder()
.name("example-ext")
.clusterId(test.id())
.extensionType("microsoft.flux")
.build());
var exampleFluxConfiguration = new FluxConfiguration("exampleFluxConfiguration", FluxConfigurationArgs.builder()
.name("example-fc")
.clusterId(test.id())
.namespace("flux")
.gitRepository(FluxConfigurationGitRepositoryArgs.builder()
.url("https://github.com/Azure/arc-k8s-demo")
.referenceType("branch")
.referenceValue("main")
.build())
.kustomizations(FluxConfigurationKustomizationArgs.builder()
.name("kustomization-1")
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(exampleClusterExtension)
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: example-resources
location: West Europe
exampleCluster:
type: azure:arckubernetes:Cluster
name: example
properties:
name: example-akcc
resourceGroupName: ${example.name}
location: West Europe
agentPublicKeyCertificate:
fn::invoke:
function: std:filebase64
arguments:
input: testdata/public.cer
return: result
identity:
type: SystemAssigned
tags:
ENV: Test
exampleClusterExtension:
type: azure:arckubernetes:ClusterExtension
name: example
properties:
name: example-ext
clusterId: ${test.id}
extensionType: microsoft.flux
exampleFluxConfiguration:
type: azure:arckubernetes:FluxConfiguration
name: example
properties:
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
options:
dependsOn:
- ${exampleClusterExtension}

API Providers

This resource uses the following Azure API Providers:

  • Microsoft.KubernetesConfiguration: 2023-05-01

Import

Arc Kubernetes Flux Configuration can be imported using the resource id for different cluster_resource_name, e.g.

$ pulumi import azure:arckubernetes/fluxConfiguration:FluxConfiguration example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.Kubernetes/connectedClusters/cluster1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/fluxConfiguration1

Constructors

Link copied to clipboard
constructor(blobStorage: Output<FluxConfigurationBlobStorageArgs>? = null, bucket: Output<FluxConfigurationBucketArgs>? = null, clusterId: Output<String>? = null, continuousReconciliationEnabled: Output<Boolean>? = null, gitRepository: Output<FluxConfigurationGitRepositoryArgs>? = null, kustomizations: Output<List<FluxConfigurationKustomizationArgs>>? = null, name: Output<String>? = null, namespace: Output<String>? = null, scope: Output<String>? = null)

Properties

Link copied to clipboard

An blob_storage block as defined below.

Link copied to clipboard
val bucket: Output<FluxConfigurationBucketArgs>? = null

A bucket block as defined below.

Link copied to clipboard
val clusterId: Output<String>? = null

Specifies the Cluster ID. Changing this forces a new Arc Kubernetes Cluster Extension to be created.

Link copied to clipboard

Whether the configuration will keep its reconciliation of its kustomizations and sources with the repository. Defaults to true.

Link copied to clipboard

A git_repository block as defined below.

Link copied to clipboard

A kustomizations block as defined below.

Link copied to clipboard
val name: Output<String>? = null

Specifies the name which should be used for this Arc Kubernetes Flux Configuration. Changing this forces a new Arc Kubernetes Flux Configuration to be created.

Link copied to clipboard
val namespace: Output<String>? = null

Specifies the namespace to which this configuration is installed to. Changing this forces a new Arc Kubernetes Flux Configuration to be created.

Link copied to clipboard
val scope: Output<String>? = null

Specifies the scope at which the operator will be installed. Possible values are cluster and namespace. Defaults to namespace. Changing this forces a new Arc Kubernetes Flux Configuration to be created.

Functions

Link copied to clipboard
open override fun toJava(): FluxConfigurationArgs