Share via


Flux Configurations - Create Or Update

Create a new Kubernetes Flux Configuration.

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/{fluxConfigurationName}?api-version=2025-04-01

URI Parameters

Name In Required Type Description
clusterName
path True

string

pattern: ^.*

The name of the kubernetes cluster.

clusterResourceName
path True

string

pattern: ^[a-zA-Z]*$

The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.

clusterRp
path True

string

The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.

fluxConfigurationName
path True

string

Name of the Flux Configuration.

resourceGroupName
path True

string

minLength: 1
maxLength: 90

The name of the resource group. The name is case insensitive.

subscriptionId
path True

string

minLength: 1

The ID of the target subscription.

api-version
query True

string

minLength: 1

The API version to use for this operation.

Request Body

Name Type Description
properties.azureBlob

AzureBlobDefinition

Parameters to reconcile to the AzureBlob source kind type.

properties.bucket

BucketDefinition

Parameters to reconcile to the Bucket source kind type.

properties.configurationProtectedSettings

object

Key-value pairs of protected configuration settings for the configuration

properties.gitRepository

GitRepositoryDefinition

Parameters to reconcile to the GitRepository source kind type.

properties.kustomizations

<string,  KustomizationDefinition>

Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster.

properties.namespace

string

The namespace to which this configuration is installed to. Maximum of 253 lower case alphanumeric characters, hyphen and period only.

properties.ociRepository

OCIRepositoryDefinition

Parameters to reconcile to the OCIRepository source kind type.

properties.reconciliationWaitDuration

string

Maximum duration to wait for flux configuration reconciliation. E.g PT1H, PT5M, P1D

properties.scope

ScopeType

Scope at which the operator will be installed.

properties.sourceKind

SourceKindType

Source Kind to pull the configuration data from.

properties.suspend

boolean

Whether this configuration should suspend its reconciliation of its kustomizations and sources.

properties.waitForReconciliation

boolean

Whether flux configuration deployment should wait for cluster to reconcile the kustomizations.

Responses

Name Type Description
200 OK

FluxConfiguration

Request received successfully for an existing resource.

201 Created

FluxConfiguration

Request received successfully.

Other Status Codes

ErrorResponse

Error response describing why the operation failed.

Security

azure_auth

Azure Active Directory OAuth2 Flow

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

Name Description
user_impersonation impersonate your user account

Examples

Create Flux Configuration
Create Flux Configuration with Bucket Source Kind
Create Flux Configuration with Git Repository Provider
Create Flux Configuration with OCIRepository Source Kind

Create Flux Configuration

Sample request

PUT https://management.azure.com/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig?api-version=2025-04-01

{
  "properties": {
    "scope": "cluster",
    "namespace": "srs-namespace",
    "sourceKind": "GitRepository",
    "suspend": false,
    "gitRepository": {
      "url": "https://github.com/Azure/arc-k8s-demo",
      "timeoutInSeconds": 600,
      "syncIntervalInSeconds": 600,
      "repositoryRef": {
        "branch": "master"
      },
      "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl"
    },
    "kustomizations": {
      "srs-kustomization1": {
        "path": "./test/path",
        "dependsOn": [],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "wait": true,
        "postBuild": {
          "substitute": {
            "cluster_env": "prod",
            "replica_count": "2"
          },
          "substituteFrom": [
            {
              "kind": "ConfigMap",
              "name": "cluster-test",
              "optional": true
            }
          ]
        }
      },
      "srs-kustomization2": {
        "path": "./other/test/path",
        "dependsOn": [
          "srs-kustomization1"
        ],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "retryIntervalInSeconds": 600,
        "prune": false,
        "wait": false,
        "postBuild": {
          "substituteFrom": [
            {
              "kind": "ConfigMap",
              "name": "cluster-values",
              "optional": true
            },
            {
              "kind": "Secret",
              "name": "secret-name",
              "optional": false
            }
          ]
        }
      }
    },
    "waitForReconciliation": true,
    "reconciliationWaitDuration": "PT30M"
  }
}

Sample response

Operation-Location: /subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}
x-ms-async-operation-timeout: PT48H
{
  "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig",
  "type": "Microsoft.KubernetesConfiguration/fluxConfigurations",
  "name": "srs-fluxconfig",
  "systemData": {
    "createdBy": "string",
    "createdByType": "Application",
    "createdAt": "2021-05-19T05:10:57.027Z",
    "lastModifiedBy": "string",
    "lastModifiedByType": "Application",
    "lastModifiedAt": "2020-05-19T05:10:57.027Z"
  },
  "properties": {
    "scope": "cluster",
    "namespace": "srs-namespace",
    "sourceKind": "GitRepository",
    "suspend": false,
    "gitRepository": {
      "url": "https://github.com/Azure/arc-k8s-demo",
      "timeoutInSeconds": 600,
      "syncIntervalInSeconds": 600,
      "repositoryRef": {
        "branch": "master",
        "tag": null,
        "semver": null,
        "commit": null
      },
      "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl"
    },
    "kustomizations": {
      "srs-kustomization1": {
        "name": "srs-kustomization1",
        "path": "./test/path",
        "dependsOn": [],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "wait": true,
        "postBuild": {
          "substitute": {
            "cluster_env": "prod",
            "replica_count": "2"
          },
          "substituteFrom": [
            {
              "kind": "ConfigMap",
              "name": "cluster-test",
              "optional": true
            }
          ]
        }
      },
      "srs-kustomization2": {
        "name": "srs-kustomization2",
        "path": "./other/test/path",
        "dependsOn": [
          "srs-kustomization1"
        ],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "retryIntervalInSeconds": 600,
        "prune": false,
        "wait": false,
        "postBuild": {
          "substituteFrom": [
            {
              "kind": "ConfigMap",
              "name": "cluster-values",
              "optional": true
            },
            {
              "kind": "Secret",
              "name": "secret-name",
              "optional": false
            }
          ]
        }
      }
    },
    "statuses": [
      {
        "name": "srs-fluxconfig",
        "kind": "GitRepository",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": null,
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "GitOperationSucceed",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization1",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization2",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      }
    ],
    "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF",
    "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590",
    "sourceUpdatedAt": "2021-05-19T18:17:12Z",
    "statusUpdatedAt": "2021-05-19T18:17:12Z",
    "complianceState": "Compliant",
    "provisioningState": "Succeeded",
    "errorMessage": ""
  }
}
Operation-Location: /subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}
x-ms-async-operation-timeout: PT48H
Azure-AsyncOperation: http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/operationId?api-version=2025-04-01
{
  "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig",
  "type": "Microsoft.KubernetesConfiguration/fluxConfigurations",
  "name": "srs-fluxconfig",
  "systemData": {
    "createdBy": "string",
    "createdByType": "Application",
    "createdAt": "2021-05-19T05:10:57.027Z",
    "lastModifiedBy": "string",
    "lastModifiedByType": "Application",
    "lastModifiedAt": "2020-05-19T05:10:57.027Z"
  },
  "properties": {
    "scope": "cluster",
    "namespace": "srs-namespace",
    "sourceKind": "GitRepository",
    "suspend": false,
    "gitRepository": {
      "url": "https://github.com/Azure/arc-k8s-demo",
      "timeoutInSeconds": 600,
      "syncIntervalInSeconds": 600,
      "repositoryRef": {
        "branch": "master",
        "tag": null,
        "semver": null,
        "commit": null
      },
      "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl"
    },
    "kustomizations": {
      "srs-kustomization1": {
        "name": "srs-",
        "path": "./test/path",
        "dependsOn": [],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "wait": true,
        "postBuild": {
          "substitute": {
            "cluster_env": "prod",
            "replica_count": "2"
          },
          "substituteFrom": [
            {
              "kind": "ConfigMap",
              "name": "cluster-test",
              "optional": true
            }
          ]
        }
      },
      "srs-kustomization2": {
        "name": "srs-kustomization2",
        "path": "./other/test/path",
        "dependsOn": [
          "srs-kustomization1"
        ],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "retryIntervalInSeconds": 600,
        "prune": false,
        "wait": false,
        "postBuild": {
          "substituteFrom": [
            {
              "kind": "ConfigMap",
              "name": "cluster-values",
              "optional": true
            },
            {
              "kind": "Secret",
              "name": "secret-name",
              "optional": false
            }
          ]
        }
      }
    },
    "statuses": [
      {
        "name": "srs-fluxconfig",
        "kind": "GitRepository",
        "complianceState": "Compliant",
        "appliedBy": null,
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "GitOperationSucceed",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization1",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization2",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      }
    ],
    "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF",
    "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590",
    "sourceUpdatedAt": "2021-05-19T18:17:12Z",
    "statusUpdatedAt": "2021-05-19T18:17:12Z",
    "complianceState": "Compliant",
    "provisioningState": "Succeeded",
    "errorMessage": ""
  }
}

Create Flux Configuration with Bucket Source Kind

Sample request

PUT https://management.azure.com/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig?api-version=2025-04-01

{
  "properties": {
    "scope": "cluster",
    "namespace": "srs-namespace",
    "sourceKind": "Bucket",
    "suspend": false,
    "bucket": {
      "url": "https://fluxminiotest.az.minio.io",
      "bucketName": "flux",
      "syncIntervalInSeconds": 1000,
      "timeoutInSeconds": 1000,
      "accessKey": "fluxminiotest"
    },
    "kustomizations": {
      "srs-kustomization1": {
        "path": "./test/path",
        "dependsOn": [],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600
      },
      "srs-kustomization2": {
        "path": "./other/test/path",
        "dependsOn": [
          "srs-kustomization1"
        ],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "retryIntervalInSeconds": 600,
        "prune": false
      }
    }
  }
}

Sample response

Operation-Location: /subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}
x-ms-async-operation-timeout: PT48H
{
  "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig",
  "type": "Microsoft.KubernetesConfiguration/fluxConfigurations",
  "name": "srs-fluxconfig",
  "systemData": {
    "createdBy": "string",
    "createdByType": "Application",
    "createdAt": "2021-05-19T05:10:57.027Z",
    "lastModifiedBy": "string",
    "lastModifiedByType": "Application",
    "lastModifiedAt": "2020-05-19T05:10:57.027Z"
  },
  "properties": {
    "scope": "cluster",
    "namespace": "srs-namespace",
    "sourceKind": "Bucket",
    "suspend": false,
    "gitRepository": null,
    "bucket": {
      "url": "https://fluxminiotest.az.minio.io",
      "bucketName": "flux",
      "syncIntervalInSeconds": 1000,
      "timeoutInSeconds": 1000,
      "accessKey": "fluxminiotest"
    },
    "kustomizations": {
      "srs-kustomization1": {
        "name": "srs-kustomization1",
        "path": "./test/path",
        "dependsOn": [],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600
      },
      "srs-kustomization2": {
        "name": "srs-kustomization2",
        "path": "./other/test/path",
        "dependsOn": [
          "srs-kustomization1"
        ],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "retryIntervalInSeconds": 600,
        "prune": false
      }
    },
    "statuses": [
      {
        "name": "srs-fluxconfig",
        "kind": "Bucket",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": null,
        "statusConditions": [
          {
            "lastTransitionTime": "2022-05-04T07:17:30+00:00",
            "message": "stored artifact for revision '55396be14f18fa2b977c1f22becef26a94d1d9a7ccb1e19d12f9cac52d757a84'",
            "reason": "Succeeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization1",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization2",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      }
    ],
    "repositoryPublicKey": "",
    "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590",
    "sourceUpdatedAt": "2021-05-19T18:17:12Z",
    "statusUpdatedAt": "2021-05-19T18:17:12Z",
    "complianceState": "Compliant",
    "provisioningState": "Succeeded",
    "errorMessage": ""
  }
}
Operation-Location: /subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}
x-ms-async-operation-timeout: PT48H
{
  "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig",
  "type": "Microsoft.KubernetesConfiguration/fluxConfigurations",
  "name": "srs-fluxconfig",
  "systemData": {
    "createdBy": "string",
    "createdByType": "Application",
    "createdAt": "2021-05-19T05:10:57.027Z",
    "lastModifiedBy": "string",
    "lastModifiedByType": "Application",
    "lastModifiedAt": "2020-05-19T05:10:57.027Z"
  },
  "properties": {
    "scope": "cluster",
    "namespace": "srs-namespace",
    "sourceKind": "Bucket",
    "suspend": false,
    "gitRepository": null,
    "bucket": {
      "url": "https://fluxminiotest.az.minio.io",
      "bucketName": "flux",
      "syncIntervalInSeconds": 1000,
      "timeoutInSeconds": 1000,
      "accessKey": "fluxminiotest"
    },
    "kustomizations": {
      "srs-kustomization1": {
        "name": "srs-kustomization1",
        "path": "./test/path",
        "dependsOn": [],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600
      },
      "srs-kustomization2": {
        "name": "srs-kustomization2",
        "path": "./other/test/path",
        "dependsOn": [
          "srs-kustomization1"
        ],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "retryIntervalInSeconds": 600,
        "prune": false
      }
    },
    "statuses": [
      {
        "name": "srs-fluxconfig",
        "kind": "Bucket",
        "complianceState": "Compliant",
        "appliedBy": null,
        "statusConditions": [
          {
            "lastTransitionTime": "2022-05-04T07:17:30+00:00",
            "message": "stored artifact for revision '55396be14f18fa2b977c1f22becef26a94d1d9a7ccb1e19d12f9cac52d757a84'",
            "reason": "Succeeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization1",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization2",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      }
    ],
    "repositoryPublicKey": "",
    "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590",
    "sourceUpdatedAt": "2021-05-19T18:17:12Z",
    "statusUpdatedAt": "2021-05-19T18:17:12Z",
    "complianceState": "Compliant",
    "provisioningState": "Succeeded",
    "errorMessage": ""
  }
}

Create Flux Configuration with Git Repository Provider

Sample request

PUT https://management.azure.com/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig?api-version=2025-04-01

{
  "properties": {
    "scope": "cluster",
    "namespace": "srs-namespace",
    "sourceKind": "GitRepository",
    "suspend": false,
    "gitRepository": {
      "url": "https://dev.azure.com/org/proj/_git/arc-k8s-demo",
      "timeoutInSeconds": 600,
      "syncIntervalInSeconds": 600,
      "provider": "Azure",
      "repositoryRef": {
        "branch": "master"
      },
      "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl"
    },
    "kustomizations": {
      "srs-kustomization1": {
        "path": "./test/path",
        "dependsOn": [],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "wait": true,
        "postBuild": {
          "substitute": {
            "cluster_env": "prod",
            "replica_count": "2"
          },
          "substituteFrom": [
            {
              "kind": "ConfigMap",
              "name": "cluster-test",
              "optional": true
            }
          ]
        }
      },
      "srs-kustomization2": {
        "path": "./other/test/path",
        "dependsOn": [
          "srs-kustomization1"
        ],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "retryIntervalInSeconds": 600,
        "prune": false,
        "wait": false,
        "postBuild": {
          "substituteFrom": [
            {
              "kind": "ConfigMap",
              "name": "cluster-values",
              "optional": true
            },
            {
              "kind": "Secret",
              "name": "secret-name",
              "optional": false
            }
          ]
        }
      }
    },
    "waitForReconciliation": true,
    "reconciliationWaitDuration": "PT30M"
  }
}

Sample response

Operation-Location: /subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}
x-ms-async-operation-timeout: PT48H
{
  "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig",
  "type": "Microsoft.KubernetesConfiguration/fluxConfigurations",
  "name": "srs-fluxconfig",
  "systemData": {
    "createdBy": "string",
    "createdByType": "Application",
    "createdAt": "2021-05-19T05:10:57.027Z",
    "lastModifiedBy": "string",
    "lastModifiedByType": "Application",
    "lastModifiedAt": "2020-05-19T05:10:57.027Z"
  },
  "properties": {
    "scope": "cluster",
    "namespace": "srs-namespace",
    "sourceKind": "GitRepository",
    "suspend": false,
    "gitRepository": {
      "url": "https://github.com/Azure/arc-k8s-demo",
      "timeoutInSeconds": 600,
      "syncIntervalInSeconds": 600,
      "repositoryRef": {
        "branch": "master",
        "tag": null,
        "semver": null,
        "commit": null
      },
      "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl"
    },
    "kustomizations": {
      "srs-kustomization1": {
        "name": "srs-kustomization1",
        "path": "./test/path",
        "dependsOn": [],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "wait": true,
        "postBuild": {
          "substitute": {
            "cluster_env": "prod",
            "replica_count": "2"
          },
          "substituteFrom": [
            {
              "kind": "ConfigMap",
              "name": "cluster-test",
              "optional": true
            }
          ]
        }
      },
      "srs-kustomization2": {
        "name": "srs-kustomization2",
        "path": "./other/test/path",
        "dependsOn": [
          "srs-kustomization1"
        ],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "retryIntervalInSeconds": 600,
        "prune": false,
        "wait": false,
        "postBuild": {
          "substituteFrom": [
            {
              "kind": "ConfigMap",
              "name": "cluster-values",
              "optional": true
            },
            {
              "kind": "Secret",
              "name": "secret-name",
              "optional": false
            }
          ]
        }
      }
    },
    "statuses": [
      {
        "name": "srs-fluxconfig",
        "kind": "GitRepository",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": null,
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "GitOperationSucceed",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization1",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization2",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      }
    ],
    "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF",
    "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590",
    "sourceUpdatedAt": "2021-05-19T18:17:12Z",
    "statusUpdatedAt": "2021-05-19T18:17:12Z",
    "complianceState": "Compliant",
    "provisioningState": "Succeeded",
    "errorMessage": ""
  }
}
Operation-Location: /subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}
x-ms-async-operation-timeout: PT48H
Azure-AsyncOperation: http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/operationId?api-version=2025-04-01
{
  "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig",
  "type": "Microsoft.KubernetesConfiguration/fluxConfigurations",
  "name": "srs-fluxconfig",
  "systemData": {
    "createdBy": "string",
    "createdByType": "Application",
    "createdAt": "2021-05-19T05:10:57.027Z",
    "lastModifiedBy": "string",
    "lastModifiedByType": "Application",
    "lastModifiedAt": "2020-05-19T05:10:57.027Z"
  },
  "properties": {
    "scope": "cluster",
    "namespace": "srs-namespace",
    "sourceKind": "GitRepository",
    "suspend": false,
    "gitRepository": {
      "url": "https://github.com/Azure/arc-k8s-demo",
      "timeoutInSeconds": 600,
      "syncIntervalInSeconds": 600,
      "repositoryRef": {
        "branch": "master",
        "tag": null,
        "semver": null,
        "commit": null
      },
      "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl"
    },
    "kustomizations": {
      "srs-kustomization1": {
        "name": "srs-",
        "path": "./test/path",
        "dependsOn": [],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "wait": true,
        "postBuild": {
          "substitute": {
            "cluster_env": "prod",
            "replica_count": "2"
          },
          "substituteFrom": [
            {
              "kind": "ConfigMap",
              "name": "cluster-test",
              "optional": true
            }
          ]
        }
      },
      "srs-kustomization2": {
        "name": "srs-kustomization2",
        "path": "./other/test/path",
        "dependsOn": [
          "srs-kustomization1"
        ],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "retryIntervalInSeconds": 600,
        "prune": false,
        "wait": false,
        "postBuild": {
          "substituteFrom": [
            {
              "kind": "ConfigMap",
              "name": "cluster-values",
              "optional": true
            },
            {
              "kind": "Secret",
              "name": "secret-name",
              "optional": false
            }
          ]
        }
      }
    },
    "statuses": [
      {
        "name": "srs-fluxconfig",
        "kind": "GitRepository",
        "complianceState": "Compliant",
        "appliedBy": null,
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "GitOperationSucceed",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization1",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization2",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      }
    ],
    "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF",
    "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590",
    "sourceUpdatedAt": "2021-05-19T18:17:12Z",
    "statusUpdatedAt": "2021-05-19T18:17:12Z",
    "complianceState": "Compliant",
    "provisioningState": "Succeeded",
    "errorMessage": ""
  }
}

Create Flux Configuration with OCIRepository Source Kind

Sample request

PUT https://management.azure.com/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig?api-version=2025-04-01

{
  "properties": {
    "scope": "cluster",
    "namespace": "srs-namespace",
    "sourceKind": "OCIRepository",
    "suspend": false,
    "ociRepository": {
      "url": "oci://ghcr.io/stefanprodan/manifests/podinfo",
      "syncIntervalInSeconds": 1000,
      "timeoutInSeconds": 1000,
      "serviceAccountName": "testserviceaccount"
    },
    "kustomizations": {
      "srs-kustomization1": {
        "path": "./test/path",
        "dependsOn": [],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600
      },
      "srs-kustomization2": {
        "path": "./other/test/path",
        "dependsOn": [
          "srs-kustomization1"
        ],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "retryIntervalInSeconds": 600,
        "prune": false
      }
    }
  }
}

Sample response

Operation-Location: /subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}
x-ms-async-operation-timeout: PT48H
{
  "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig",
  "type": "Microsoft.KubernetesConfiguration/fluxConfigurations",
  "name": "srs-fluxconfig",
  "systemData": {
    "createdBy": "string",
    "createdByType": "Application",
    "createdAt": "2021-05-19T05:10:57.027Z",
    "lastModifiedBy": "string",
    "lastModifiedByType": "Application",
    "lastModifiedAt": "2020-05-19T05:10:57.027Z"
  },
  "properties": {
    "scope": "cluster",
    "namespace": "srs-namespace",
    "sourceKind": "OCIRepository",
    "suspend": false,
    "gitRepository": null,
    "bucket": null,
    "azureBlob": null,
    "ociRepository": {
      "url": "oci://ghcr.io/stefanprodan/manifests/podinfo",
      "syncIntervalInSeconds": 1000,
      "timeoutInSeconds": 1000,
      "serviceAccountName": "testserviceaccount"
    },
    "kustomizations": {
      "srs-kustomization1": {
        "name": "srs-kustomization1",
        "path": "./test/path",
        "dependsOn": [],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600
      },
      "srs-kustomization2": {
        "name": "srs-kustomization2",
        "path": "./other/test/path",
        "dependsOn": [
          "srs-kustomization1"
        ],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "retryIntervalInSeconds": 600,
        "prune": false
      }
    },
    "statuses": [
      {
        "name": "srs-fluxconfig",
        "kind": "OCIRepository",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": null,
        "statusConditions": [
          {
            "lastTransitionTime": "2022-05-04T07:17:30+00:00",
            "message": "stored artifact for revision '55396be14f18fa2b977c1f22becef26a94d1d9a7ccb1e19d12f9cac52d757a84'",
            "reason": "Succeeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization1",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization2",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      }
    ],
    "repositoryPublicKey": "",
    "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590",
    "sourceUpdatedAt": "2021-05-19T18:17:12Z",
    "statusUpdatedAt": "2021-05-19T18:17:12Z",
    "complianceState": "Compliant",
    "provisioningState": "Succeeded",
    "errorMessage": ""
  }
}
Operation-Location: /subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}
x-ms-async-operation-timeout: PT48H
{
  "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig",
  "type": "Microsoft.KubernetesConfiguration/fluxConfigurations",
  "name": "srs-fluxconfig",
  "systemData": {
    "createdBy": "string",
    "createdByType": "Application",
    "createdAt": "2021-05-19T05:10:57.027Z",
    "lastModifiedBy": "string",
    "lastModifiedByType": "Application",
    "lastModifiedAt": "2020-05-19T05:10:57.027Z"
  },
  "properties": {
    "scope": "cluster",
    "namespace": "srs-namespace",
    "sourceKind": "OCIRepository",
    "suspend": false,
    "gitRepository": null,
    "bucket": null,
    "azureBlob": null,
    "ociRepository": {
      "url": "oci://ghcr.io/stefanprodan/manifests/podinfo",
      "syncIntervalInSeconds": 1000,
      "timeoutInSeconds": 1000,
      "serviceAccountName": "testserviceaccount"
    },
    "kustomizations": {
      "srs-kustomization1": {
        "name": "srs-kustomization1",
        "path": "./test/path",
        "dependsOn": [],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600
      },
      "srs-kustomization2": {
        "name": "srs-kustomization2",
        "path": "./other/test/path",
        "dependsOn": [
          "srs-kustomization1"
        ],
        "timeoutInSeconds": 600,
        "syncIntervalInSeconds": 600,
        "retryIntervalInSeconds": 600,
        "prune": false
      }
    },
    "statuses": [
      {
        "name": "srs-fluxconfig",
        "kind": "OCIRepository",
        "complianceState": "Compliant",
        "appliedBy": null,
        "statusConditions": [
          {
            "lastTransitionTime": "2022-05-04T07:17:30+00:00",
            "message": "stored artifact for revision '55396be14f18fa2b977c1f22becef26a94d1d9a7ccb1e19d12f9cac52d757a84'",
            "reason": "Succeeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization1",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      },
      {
        "name": "srs-fluxconfig-srs-kustomization2",
        "kind": "Kustomization",
        "complianceState": "Compliant",
        "appliedBy": null,
        "helmReleaseProperties": {
          "lastRevisionApplied": 1,
          "helmChartRef": {
            "name": "myname",
            "namespace": "mynamespace"
          },
          "failureCount": null,
          "upgradeFailureCount": null,
          "installFailureCount": null
        },
        "statusConditions": [
          {
            "lastTransitionTime": "2021-05-19T18:12:40Z",
            "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'",
            "reason": "ReconciliationSucceeded",
            "status": "True",
            "type": "Ready"
          }
        ]
      }
    ],
    "repositoryPublicKey": "",
    "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590",
    "sourceUpdatedAt": "2021-05-19T18:17:12Z",
    "statusUpdatedAt": "2021-05-19T18:17:12Z",
    "complianceState": "Compliant",
    "provisioningState": "Succeeded",
    "errorMessage": ""
  }
}

Definitions

Name Description
AzureBlobDefinition

Parameters to reconcile to the AzureBlob source kind type.

BucketDefinition

Parameters to reconcile to the Bucket source kind type.

createdByType

The type of identity that created the resource.

ErrorAdditionalInfo

The resource management error additional info.

ErrorDetail

The error detail.

ErrorResponse

Error response

FluxComplianceState

Compliance state of the applied object showing whether the applied object has come into a ready state on the cluster.

FluxConfiguration

The Flux Configuration object returned in Get & Put response.

GitRepositoryDefinition

Parameters to reconcile to the GitRepository source kind type.

HelmReleasePropertiesDefinition

Properties for HelmRelease objects

KustomizationDefinition

The Kustomization defining how to reconcile the artifact pulled by the source type on the cluster.

LayerSelectorDefinition

Parameters to specify which layer to pull from the OCI artifact. By default, the first layer in the artifact is pulled.

ManagedIdentityDefinition

Parameters to authenticate using a Managed Identity.

MatchOidcIdentityDefinition

MatchOIDCIdentity defines the criteria for matching the identity while verifying an OCI artifact.

ObjectReferenceDefinition

Object reference to a Kubernetes object on a cluster

ObjectStatusConditionDefinition

Status condition of Kubernetes object

ObjectStatusDefinition

Statuses of objects deployed by the user-specified kustomizations from the git repository.

OCIRepositoryDefinition

Parameters to reconcile to the OCIRepository source kind type.

OCIRepositoryRefDefinition

The source reference for the OCIRepository object.

OperationType

The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'.

PostBuildDefinition

The postBuild definitions defining variable substitutions for this Kustomization after kustomize build.

ProviderType

Name of the provider used for authentication.

ProvisioningState

Status of the creation of the fluxConfiguration.

RepositoryRefDefinition

The source reference for the GitRepository object.

ScopeType

Scope at which the operator will be installed.

ServicePrincipalDefinition

Parameters to authenticate using Service Principal.

SourceKindType

Source Kind to pull the configuration data from.

SubstituteFromDefinition

Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.

systemData

Metadata pertaining to creation and last modification of the resource.

TlsConfigDefinition

Parameters to authenticate using TLS config for OCI repository.

VerifyDefinition

Parameters to verify the authenticity of an OCI Artifact.

AzureBlobDefinition

Parameters to reconcile to the AzureBlob source kind type.

Name Type Default value Description
accountKey

string

The account key (shared key) to access the storage account

containerName

string

The Azure Blob container name to sync from the url endpoint for the flux configuration.

localAuthRef

string

Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.

managedIdentity

ManagedIdentityDefinition

Parameters to authenticate using a Managed Identity.

sasToken

string

The Shared Access token to access the storage container

servicePrincipal

ServicePrincipalDefinition

Parameters to authenticate using Service Principal.

syncIntervalInSeconds

integer (int64)

600

The interval at which to re-reconcile the cluster Azure Blob source with the remote.

timeoutInSeconds

integer (int64)

600

The maximum time to attempt to reconcile the cluster Azure Blob source with the remote.

url

string

The URL to sync for the flux configuration Azure Blob storage account.

BucketDefinition

Parameters to reconcile to the Bucket source kind type.

Name Type Default value Description
accessKey

string

Plaintext access key used to securely access the S3 bucket

bucketName

string

The bucket name to sync from the url endpoint for the flux configuration.

insecure

boolean

True

Specify whether to use insecure communication when puling data from the S3 bucket.

localAuthRef

string

Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.

syncIntervalInSeconds

integer (int64)

600

The interval at which to re-reconcile the cluster bucket source with the remote.

timeoutInSeconds

integer (int64)

600

The maximum time to attempt to reconcile the cluster bucket source with the remote.

url

string

The URL to sync for the flux configuration S3 bucket.

createdByType

The type of identity that created the resource.

Value Description
User
Application
ManagedIdentity
Key

ErrorAdditionalInfo

The resource management error additional info.

Name Type Description
info

object

The additional info.

type

string

The additional info type.

ErrorDetail

The error detail.

Name Type Description
additionalInfo

ErrorAdditionalInfo[]

The error additional info.

code

string

The error code.

details

ErrorDetail[]

The error details.

message

string

The error message.

target

string

The error target.

ErrorResponse

Error response

Name Type Description
error

ErrorDetail

The error object.

FluxComplianceState

Compliance state of the applied object showing whether the applied object has come into a ready state on the cluster.

Value Description
Compliant
Non-Compliant
Pending
Suspended
Unknown

FluxConfiguration

The Flux Configuration object returned in Get & Put response.

Name Type Default value Description
id

string

Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}

name

string

The name of the resource

properties.azureBlob

AzureBlobDefinition

Parameters to reconcile to the AzureBlob source kind type.

properties.bucket

BucketDefinition

Parameters to reconcile to the Bucket source kind type.

properties.complianceState

FluxComplianceState

Unknown

Combined status of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects.

properties.configurationProtectedSettings

object

Key-value pairs of protected configuration settings for the configuration

properties.errorMessage

string

Error message returned to the user in the case of provisioning failure.

properties.gitRepository

GitRepositoryDefinition

Parameters to reconcile to the GitRepository source kind type.

properties.kustomizations

<string,  KustomizationDefinition>

Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster.

properties.namespace

string

default

The namespace to which this configuration is installed to. Maximum of 253 lower case alphanumeric characters, hyphen and period only.

properties.ociRepository

OCIRepositoryDefinition

Parameters to reconcile to the OCIRepository source kind type.

properties.provisioningState

ProvisioningState

Status of the creation of the fluxConfiguration.

properties.reconciliationWaitDuration

string

Maximum duration to wait for flux configuration reconciliation. E.g PT1H, PT5M, P1D

properties.repositoryPublicKey

string

Public Key associated with this fluxConfiguration (either generated within the cluster or provided by the user).

properties.scope

ScopeType

cluster

Scope at which the operator will be installed.

properties.sourceKind

SourceKindType

GitRepository

Source Kind to pull the configuration data from.

properties.sourceSyncedCommitId

string

Branch and/or SHA of the source commit synced with the cluster.

properties.sourceUpdatedAt

string (date-time)

Datetime the fluxConfiguration synced its source on the cluster.

properties.statusUpdatedAt

string (date-time)

Datetime the fluxConfiguration synced its status on the cluster with Azure.

properties.statuses

ObjectStatusDefinition[]

Statuses of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects provisioned by the fluxConfiguration.

properties.suspend

boolean

False

Whether this configuration should suspend its reconciliation of its kustomizations and sources.

properties.waitForReconciliation

boolean

Whether flux configuration deployment should wait for cluster to reconcile the kustomizations.

systemData

systemData

Top level metadata https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources

type

string

The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"

GitRepositoryDefinition

Parameters to reconcile to the GitRepository source kind type.

Name Type Default value Description
httpsCACert

string

Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS

httpsUser

string

Plaintext HTTPS username used to access private git repositories over HTTPS

localAuthRef

string

Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.

provider

ProviderType

Name of the provider used for authentication.

repositoryRef

RepositoryRefDefinition

The source reference for the GitRepository object.

sshKnownHosts

string

Base64-encoded known_hosts value containing public SSH keys required to access private git repositories over SSH

syncIntervalInSeconds

integer (int64)

600

The interval at which to re-reconcile the cluster git repository source with the remote.

timeoutInSeconds

integer (int64)

600

The maximum time to attempt to reconcile the cluster git repository source with the remote.

url

string

The URL to sync for the flux configuration git repository.

HelmReleasePropertiesDefinition

Properties for HelmRelease objects

Name Type Description
failureCount

integer (int64)

Total number of times that the HelmRelease failed to install or upgrade

helmChartRef

ObjectReferenceDefinition

The reference to the HelmChart object used as the source to this HelmRelease

installFailureCount

integer (int64)

Number of times that the HelmRelease failed to install

lastRevisionApplied

integer (int64)

The revision number of the last released object change

upgradeFailureCount

integer (int64)

Number of times that the HelmRelease failed to upgrade

KustomizationDefinition

The Kustomization defining how to reconcile the artifact pulled by the source type on the cluster.

Name Type Default value Description
dependsOn

string[]

Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile until all dependencies have completed their reconciliation.

force

boolean

False

Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field change.

name

string

Name of the Kustomization, matching the key in the Kustomizations object map.

path

string

The path in the source reference to reconcile on the cluster.

postBuild

PostBuildDefinition

Used for variable substitution for this Kustomization after kustomize build.

prune

boolean

False

Enable/disable garbage collections of Kubernetes objects created by this Kustomization.

retryIntervalInSeconds

integer (int64)

The interval at which to re-reconcile the Kustomization on the cluster in the event of failure on reconciliation.

syncIntervalInSeconds

integer (int64)

600

The interval at which to re-reconcile the Kustomization on the cluster.

timeoutInSeconds

integer (int64)

600

The maximum time to attempt to reconcile the Kustomization on the cluster.

wait

boolean

True

Enable/disable health check for all Kubernetes objects created by this Kustomization.

LayerSelectorDefinition

Parameters to specify which layer to pull from the OCI artifact. By default, the first layer in the artifact is pulled.

Name Type Description
mediaType

string

The first layer matching the specified media type will be used.

operation

OperationType

The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'.

ManagedIdentityDefinition

Parameters to authenticate using a Managed Identity.

Name Type Description
clientId

string

The client Id for authenticating a Managed Identity.

MatchOidcIdentityDefinition

MatchOIDCIdentity defines the criteria for matching the identity while verifying an OCI artifact.

Name Type Description
issuer

string

The regex pattern to match against to verify the OIDC issuer.

subject

string

The regex pattern to match against to verify the identity subject.

ObjectReferenceDefinition

Object reference to a Kubernetes object on a cluster

Name Type Description
name

string

Name of the object

namespace

string

Namespace of the object

ObjectStatusConditionDefinition

Status condition of Kubernetes object

Name Type Description
lastTransitionTime

string (date-time)

Last time this status condition has changed

message

string

A more verbose description of the object status condition

reason

string

Reason for the specified status condition type status

status

string

Status of the Kubernetes object condition type

type

string

Object status condition type for this object

ObjectStatusDefinition

Statuses of objects deployed by the user-specified kustomizations from the git repository.

Name Type Default value Description
appliedBy

ObjectReferenceDefinition

Object reference to the Kustomization that applied this object

complianceState

FluxComplianceState

Unknown

Compliance state of the applied object showing whether the applied object has come into a ready state on the cluster.

helmReleaseProperties

HelmReleasePropertiesDefinition

Additional properties that are provided from objects of the HelmRelease kind

kind

string

Kind of the applied object

name

string

Name of the applied object

namespace

string

Namespace of the applied object

statusConditions

ObjectStatusConditionDefinition[]

List of Kubernetes object status conditions present on the cluster

OCIRepositoryDefinition

Parameters to reconcile to the OCIRepository source kind type.

Name Type Default value Description
insecure

boolean

False

Specify whether to allow connecting to a non-TLS HTTP container registry.

layerSelector

LayerSelectorDefinition

The layer to be pulled from the OCI artifact.

localAuthRef

string

Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.

repositoryRef

OCIRepositoryRefDefinition

The source reference for the OCIRepository object.

serviceAccountName

string

The service account name to authenticate with the OCI repository.

syncIntervalInSeconds

integer (int64)

600

The interval at which to re-reconcile the cluster OCI repository source with the remote.

timeoutInSeconds

integer (int64)

600

The maximum time to attempt to reconcile the cluster OCI repository source with the remote.

tlsConfig

TlsConfigDefinition

Parameters to authenticate using TLS config for OCI repository.

url

string (uri)

The URL to sync for the flux configuration OCI repository.

useWorkloadIdentity

boolean

False

Specifies whether to use Workload Identity to authenticate with the OCI repository.

verify

VerifyDefinition

Verification of the authenticity of an OCI Artifact.

OCIRepositoryRefDefinition

The source reference for the OCIRepository object.

Name Type Description
digest

string

The image digest to pull from OCI repository, the value should be in the format ‘sha256:’. This takes precedence over semver.

semver

string

The semver range used to match against OCI repository tags. This takes precedence over tag.

tag

string

The OCI repository image tag name to pull. This defaults to 'latest'.

OperationType

The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'.

Value Description
extract
copy

PostBuildDefinition

The postBuild definitions defining variable substitutions for this Kustomization after kustomize build.

Name Type Description
substitute

object

Key/value pairs holding the variables to be substituted in this Kustomization.

substituteFrom

SubstituteFromDefinition[]

Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.

ProviderType

Name of the provider used for authentication.

Value Description
Azure

Azure provider can be used to authenticate to Azure DevOps repositories using Managed Identity.

GitHub

GitHub provider can be used to authenticate

Generic

Generic is the default provider that indicates secret-based authentication mechanism.

ProvisioningState

Status of the creation of the fluxConfiguration.

Value Description
Succeeded
Failed
Canceled
Creating
Updating
Deleting

RepositoryRefDefinition

The source reference for the GitRepository object.

Name Type Description
branch

string

The git repository branch name to checkout.

commit

string

The commit SHA to checkout. This value must be combined with the branch name to be valid. This takes precedence over semver.

semver

string

The semver range used to match against git repository tags. This takes precedence over tag.

tag

string

The git repository tag name to checkout. This takes precedence over branch.

ScopeType

Scope at which the operator will be installed.

Value Description
cluster
namespace

ServicePrincipalDefinition

Parameters to authenticate using Service Principal.

Name Type Default value Description
clientCertificate

string

Base64-encoded certificate used to authenticate a Service Principal

clientCertificatePassword

string

The password for the certificate used to authenticate a Service Principal

clientCertificateSendChain

boolean

False

Specifies whether to include x5c header in client claims when acquiring a token to enable subject name / issuer based authentication for the Client Certificate

clientId

string

The client Id for authenticating a Service Principal.

clientSecret

string

The client secret for authenticating a Service Principal

tenantId

string

The tenant Id for authenticating a Service Principal

SourceKindType

Source Kind to pull the configuration data from.

Value Description
GitRepository
Bucket
AzureBlob
OCIRepository

SubstituteFromDefinition

Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.

Name Type Default value Description
kind

string

Define whether it is ConfigMap or Secret that holds the variables to be used in substitution.

name

string

Name of the ConfigMap/Secret that holds the variables to be used in substitution.

optional

boolean

False

Set to True to proceed without ConfigMap/Secret, if it is not present.

systemData

Metadata pertaining to creation and last modification of the resource.

Name Type Description
createdAt

string (date-time)

The timestamp of resource creation (UTC).

createdBy

string

The identity that created the resource.

createdByType

createdByType

The type of identity that created the resource.

lastModifiedAt

string (date-time)

The timestamp of resource last modification (UTC)

lastModifiedBy

string

The identity that last modified the resource.

lastModifiedByType

createdByType

The type of identity that last modified the resource.

TlsConfigDefinition

Parameters to authenticate using TLS config for OCI repository.

Name Type Description
caCertificate

string

Base64-encoded CA certificate used to verify the server.

clientCertificate

string

Base64-encoded certificate used to authenticate a client with the OCI repository.

privateKey

string

Base64-encoded private key used to authenticate a client with the OCI repository.

VerifyDefinition

Parameters to verify the authenticity of an OCI Artifact.

Name Type Description
matchOidcIdentity

MatchOidcIdentityDefinition[]

Array defining the criteria for matching the identity while verifying an OCI artifact.

provider

string

Verification provider name.

verificationConfig

object

An object containing trusted public keys of trusted authors.