Skip to content

Commit 83648c6

Browse files
Merge pull request #269965 from JnHs/jh-arck8-flux183
flux 1.8.3 and general refresh
2 parents ac6a646 + 61d7319 commit 83648c6

File tree

4 files changed

+57
-17
lines changed

4 files changed

+57
-17
lines changed

articles/azure-arc/kubernetes/conceptual-extensions.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
---
22
title: "Cluster extensions - Azure Arc-enabled Kubernetes"
3-
ms.date: 04/27/2023
3+
ms.date: 03/22/2024
44
ms.topic: conceptual
55
description: "This article provides a conceptual overview of the Azure Arc-enabled Kubernetes cluster extensions capability."
66
---
77

88
# Cluster extensions
99

10-
[Helm charts](https://helm.sh/) help you manage Kubernetes applications by providing the building blocks needed to define, install, and upgrade even the most complex Kubernetes applications. The cluster extension feature builds on top of the packaging components of Helm by providing an Azure Resource Manager-driven experience for installation and lifecycle management of different Azure capabilities on top of your Kubernetes cluster.
10+
[Helm charts](https://helm.sh/) help you manage Kubernetes applications by providing the building blocks needed to define, install, and upgrade even the most complex Kubernetes applications.
11+
12+
The cluster extension feature builds on top of the packaging components of Helm. With extensions, you use an Azure Resource Manager-driven experience for installation and lifecycle management of different capabilities on top of your Kubernetes cluster.
1113

1214
A cluster operator or admin can [use the cluster extensions feature](extensions.md) to:
1315

@@ -17,15 +19,17 @@ A cluster operator or admin can [use the cluster extensions feature](extensions.
1719
- Set up auto-upgrade for extensions or pin to a specific version and manually upgrade versions.
1820
- Update extension properties or delete extension instances.
1921

20-
For a list of all currently supported extensions, see [Available extensions for Azure Arc-enabled Kubernetes clusters](extensions-release.md).
22+
Extensions are available to support a wide range of Azure services and scenarios. For a list of currently supported extensions, see [Available extensions for Azure Arc-enabled Kubernetes clusters](extensions-release.md).
2123

2224
## Architecture
2325

24-
[![Cluster extensions architecture](./media/conceptual-extensions.png)](./media/conceptual-extensions.png#lightbox)
26+
:::image type="content" source="media/conceptual-extensions.png" alt-text="Diagram showing the cluster extension installation workflow architecture." lightbox="media/conceptual-extensions.png":::
27+
28+
The cluster extension instance is created as an extension Azure Resource Manager resource (`Microsoft.KubernetesConfiguration/extensions`) on top of the Azure Arc-enabled Kubernetes resource (represented by `Microsoft.Kubernetes/connectedClusters`) in Azure Resource Manager.
2529

26-
The cluster extension instance is created as an extension Azure Resource Manager resource (`Microsoft.KubernetesConfiguration/extensions`) on top of the Azure Arc-enabled Kubernetes resource (represented by `Microsoft.Kubernetes/connectedClusters`) in Azure Resource Manager. This representation in Azure Resource Manager allows you to author a policy that checks for all the Azure Arc-enabled Kubernetes resources with or without a specific cluster extension. Once you've determined which clusters are missing the cluster extensions with desired property values, you can remediate these non-compliant resources using Azure Policy.
30+
This representation in Azure Resource Manager allows you to author a policy that checks for all Azure Arc-enabled Kubernetes resources with or without a specific cluster extension. Once you've determined which clusters are missing the cluster extensions with desired property values, you can remediate these non-compliant resources using Azure Policy.
2731

28-
The `config-agent` running in your cluster tracks new and updated extension resources on the Azure Arc-enabled Kubernetes resource. The `extensions-manager` agent running in your cluster reads the extension type that needs to be installed and pulls the associated Helm chart from Azure Container Registry or Microsoft Container Registry and installs it on the cluster.
32+
The `config-agent` running in your cluster tracks new and updated extension resources on the Azure Arc-enabled Kubernetes resource. The `extensions-manager` agent running in your cluster reads the extension type that needs to be installed, then pulls the associated Helm chart from Azure Container Registry or Microsoft Container Registry and installs it on the cluster.
2933

3034
Both the `config-agent` and `extensions-manager` components running in the cluster handle extension instance updates, version updates and extension instance deletion. These agents use the system-assigned managed identity of the cluster to securely communicate with Azure services.
3135

articles/azure-arc/kubernetes/extensions-release.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "Available extensions for Azure Arc-enabled Kubernetes clusters"
3-
ms.date: 03/14/2024
3+
ms.date: 03/22/2024
44
ms.topic: how-to
55
description: "See which extensions are currently available for Azure Arc-enabled Kubernetes clusters and view release notes."
66
---
@@ -121,6 +121,21 @@ The most recent version of the Flux v2 extension and the two previous versions (
121121
> [!NOTE]
122122
> When a new version of the `microsoft.flux` extension is released, it may take several days for the new version to become available in all regions.
123123
124+
### 1.8.3 (March 2024)
125+
126+
Flux version: [Release v2.1.2](https://github.com/fluxcd/flux2/releases/tag/v2.1.2)
127+
128+
- source-controller: v1.1.2
129+
- kustomize-controller: v1.1.1
130+
- helm-controller: v0.36.2
131+
- notification-controller: v1.1.0
132+
- image-automation-controller: v0.36.1
133+
- image-reflector-controller: v0.30.0
134+
135+
Changes made for this version:
136+
137+
- The log-level parameters for controllers are now customizable. For more information, see [Configurable log-level parameters](tutorial-use-gitops-flux2.md#configurable-log-level-parameters).
138+
124139
### 1.8.2 (February 2024)
125140

126141
Flux version: [Release v2.1.2](https://github.com/fluxcd/flux2/releases/tag/v2.1.2)
-473 KB
Loading

articles/azure-arc/kubernetes/tutorial-use-gitops-flux2.md

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Tutorial: Deploy applications using GitOps with Flux v2"
33
description: "This tutorial shows how to use GitOps with Flux v2 to manage configuration and application deployment in Azure Arc and AKS clusters."
4-
ms.date: 02/08/2024
4+
ms.date: 03/22/2024
55
ms.topic: tutorial
66
ms.custom: template-tutorial, devx-track-azurecli, references_regions
77
---
@@ -42,7 +42,7 @@ To deploy applications using GitOps with Flux v2, you need:
4242

4343
> [!IMPORTANT]
4444
> Ensure that the AKS cluster is created with MSI (not SPN), because the `microsoft.flux` extension won't work with SPN-based AKS clusters.
45-
> For new AKS clusters created with `az aks create`, the cluster will be MSI-based by default. For already created SPN-based clusters that need to be converted to MSI, run `az aks update -g $RESOURCE_GROUP -n $CLUSTER_NAME --enable-managed-identity`. For more information, see [Use a managed identity in AKS](../../aks/use-managed-identity.md).
45+
> For new AKS clusters created with `az aks create`, the cluster is MSI-based by default. For already created SPN-based clusters that need to be converted to MSI, run `az aks update -g $RESOURCE_GROUP -n $CLUSTER_NAME --enable-managed-identity`. For more information, see [Use a managed identity in AKS](../../aks/use-managed-identity.md).
4646
4747
* Read and write permissions on the `Microsoft.ContainerService/managedClusters` resource type.
4848

@@ -150,7 +150,7 @@ False whl k8s-extension C:\Users\somename\.azure\c
150150

151151
> [!IMPORTANT]
152152
> Ensure that the AKS cluster is created with MSI (not SPN), because the `microsoft.flux` extension won't work with SPN-based AKS clusters.
153-
> For new AKS clusters created with `az aks create`, the cluster will be MSI-based by default. For already created SPN-based clusters that need to be converted to MSI, run `az aks update -g $RESOURCE_GROUP -n $CLUSTER_NAME --enable-managed-identity`. For more information, see [Use a managed identity in AKS](../../aks/use-managed-identity.md).
153+
> For new AKS clusters created with `az aks create`, the cluster is MSI-based by default. For already created SPN-based clusters that need to be converted to MSI, run `az aks update -g $RESOURCE_GROUP -n $CLUSTER_NAME --enable-managed-identity`. For more information, see [Use a managed identity in AKS](../../aks/use-managed-identity.md).
154154
155155
* Read and write permissions on the `Microsoft.ContainerService/managedClusters` resource type.
156156

@@ -207,7 +207,7 @@ The following example uses the `az k8s-configuration create` command to apply a
207207
* The scope of the configuration is `cluster`. This scope gives the operators permissions to make changes throughout cluster. To use `namespace` scope with this tutorial, [see the changes needed](conceptual-gitops-flux2.md#multi-tenancy).
208208
* Two kustomizations are specified with names `infra` and `apps`. Each is associated with a path in the repository.
209209
* The `apps` kustomization depends on the `infra` kustomization. (The `infra` kustomization must finish before the `apps` kustomization runs.)
210-
* Set `prune=true` on both kustomizations. This setting ensures that the objects that Flux deployed to the cluster will be cleaned up if they're removed from the repository, or if the Flux configuration or kustomizations are deleted.
210+
* Set `prune=true` on both kustomizations. This setting ensures that the objects that Flux deployed to the cluster are cleaned up if they're removed from the repository, or if the Flux configuration or kustomizations are deleted.
211211

212212
```azurecli
213213
az k8s-configuration flux create -g flux-demo-rg \
@@ -380,7 +380,7 @@ You can use the `k8s-extension` command to change the default options:
380380

381381
For instance, to disable notifications, you can set `notification-controller.enabled` to `false`.
382382

383-
This example command installs the `image-reflector` and `image-automation` controllers. If the Flux extension was created automatically when a Flux configuration was first created, the extension name will be `flux`.
383+
This example command installs the `image-reflector` and `image-automation` controllers. If the Flux extension was created automatically when a Flux configuration was first created, the extension name is `flux`.
384384

385385
```azurecli
386386
az k8s-extension create -g <cluster_resource_group> -c <cluster_name> -t <connectedClusters or managedClusters or provisionedClusters> --name flux --extension-type microsoft.flux --config image-automation-controller.enabled=true image-reflector-controller.enabled=true
@@ -417,7 +417,7 @@ The Azure portal is useful for managing GitOps configurations and the Flux exten
417417
> [!NOTE]
418418
> Some options are not currently supported in the Azure portal. See the Azure CLI steps for additional options, including suspending continuous reconciliation, controlling which controllers are deployed with the Flux cluster extension, and using Kubelet identity as authentication method for AKS clusters.
419419
420-
Follow these steps to apply a sample Flux configuration to a cluster. As part of this process, Azure installs the `microsoft.flux` extension on the cluster, if it hasn't already been installed due to a previous deployment.
420+
Follow these steps to apply a sample Flux configuration to a cluster. As part of this process, Azure installs the `microsoft.flux` extension on the cluster, if it wasn't already installed in a previous deployment.
421421

422422
1. Navigate to your cluster in the Azure portal.
423423
1. In the left pane, under **Settings**, select **GitOps**.
@@ -451,7 +451,7 @@ Follow these steps to apply a sample Flux configuration to a cluster. As part of
451451

452452
1. For **Instance name**, enter **infrastructure**.
453453
1. For **Path**, enter **./infrastructure**.
454-
1. Check the box for **Prune**. This setting ensures that the objects that Flux deployed to the cluster will be cleaned up if they're removed from the repository or if the Flux configuration or kustomizations are deleted.
454+
1. Check the box for **Prune**. This setting ensures that the objects that Flux deployed to the cluster are cleaned up if they're removed from the repository, or if the Flux configuration or kustomizations are deleted.
455455
1. Leave the other options as is, then select **Save** to create the `infrastructure` kustomization.
456456

457457
:::image type="content" source="media/tutorial-use-gitops-flux2/portal-kustomization-infrastructure.png" alt-text="Screenshot showing the options to create the infrastructure kustomization in the Azure portal." lightbox="media/tutorial-use-gitops-flux2/portal-kustomization-infrastructure.png":::
@@ -566,6 +566,27 @@ az k8s-extension update --resource-group <resource-group> --cluster-name <cluste
566566

567567
If you don't specify values for `memoryThreshold` and `outOfMemoryWatch`, the default memory threshold is set to 95%, with the interval at which to check the memory utilization set to 500 ms.
568568

569+
## Configurable log-level parameters
570+
571+
By default, the `log-level` for Flux controllers is set to `info`. Starting with [`microsoft.flux` v1.8.3](extensions-release.md#flux-gitops), you can modify these default settings using the `k8s-extension` command as follows:
572+
573+
```azurecli
574+
--config helm-controller.log-level=<info/error/debug>
575+
--config source-controller.log-level=<info/error/debug>
576+
--config kustomize-controller.log-level=<info/error/debug>
577+
--config notification-controller.log-level=<info/error/debug>
578+
--config image-automation-controller.log-level=<info/error/debug>
579+
--config image-reflector-controller.log-level=<info/error/debug>
580+
```
581+
582+
Valid values are `debug`, `info`, or `error`. These values are only configurable for the controllers listed above; they don't apply to the `fluxconfig-agent` and `fluxconfig-controller`.
583+
584+
For instance, to change the `log-level` for the `source-controller` and `kustomize-controller`, use the following command:
585+
586+
```azurecli
587+
az k8s-extension update --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type <cluster-type> --name flux --config source-controller.log-level=error kustomize-controller.log-level=error
588+
```
589+
569590
### Workload identity in AKS clusters
570591

571592
Starting with [`microsoft.flux` v1.8.0](extensions-release.md#flux-gitops), you can create Flux configurations in [AKS clusters with workload identity enabled](/azure/aks/workload-identity-deploy-cluster). To do so, modify the flux extension as shown in the following steps.
@@ -588,7 +609,7 @@ Starting with [`microsoft.flux` v1.8.0](extensions-release.md#flux-gitops), you
588609
az identity federated-credential create --name ${FEDERATED_IDENTITY_CREDENTIAL_NAME} --identity-name "${USER_ASSIGNED_IDENTITY_NAME}" --resource-group "${RESOURCE_GROUP}" --issuer "${AKS_OIDC_ISSUER}" --subject system:serviceaccount:"flux-system":"image-reflector-controller" --audience api://AzureADTokenExchange
589610
```
590611

591-
1. Make sure the custom resource that needs to use workload identity has set `.spec.provider` value to `azure` in the manifest. For example:
612+
1. Make sure the custom resource that needs to use workload identity sets `.spec.provider` value to `azure` in the manifest. For example:
592613

593614
```json
594615
apiVersion: source.toolkit.fluxcd.io/v1beta2
@@ -640,11 +661,11 @@ az k8s-extension delete -g flux-demo-rg -c flux-demo-arc -n flux -t connectedClu
640661

641662
To delete a Flux configuration, navigate to the cluster where the configuration was created and select **GitOps** in the left pane. Select the configuration you want to delete. From the top of the page, select **Delete**, then select **Delete** again when prompted to confirm.
642663

643-
When you delete a Flux configuration, all of the Flux configuration objects in the cluster will also be deleted. However, this action doesn't delete the `microsoft.flux` extension itself.
664+
When you delete a Flux configuration, all of the Flux configuration objects in the cluster are deleted. However, this action doesn't delete the `microsoft.flux` extension itself.
644665

645666
#### Delete the Flux cluster extension
646667

647-
When you delete the Flux extension, both the `microsoft.flux` extension resource in Azure and the Flux extension objects in the cluster will be removed.
668+
When you delete the Flux extension, both the `microsoft.flux` extension resource in Azure and the Flux extension objects in the cluster are removed.
648669

649670
> [!IMPORTANT]
650671
> Be sure to delete all Flux configurations in the cluster before you delete the Flux extension. Deleting the extension without first deleting the Flux configurations may leave your cluster in an unstable condition.

0 commit comments

Comments
 (0)