Skip to content

Commit ce1dc51

Browse files
committed
AVD RD clients revamp
AVD RD clients revamp
1 parent 68f11ad commit ce1dc51

File tree

64 files changed

+2482
-599
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+2482
-599
lines changed

.openpublishing.redirection.virtual-desktop.json

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,46 @@
3434
"source_path": "articles/virtual-desktop/azure-stack-hci-faq.yml",
3535
"redirect_url": "/azure/virtual-desktop/azure-stack-hci",
3636
"redirect_document_id": false
37+
},
38+
{
39+
"source_path_from_root": "/articles/virtual-desktop/user-documentation/connect-android.md",
40+
"redirect_url": "/azure/virtual-desktop/users/connect-android-chrome-os",
41+
"redirect_document_id": true
42+
},
43+
{
44+
"source_path_from_root": "/articles/virtual-desktop/user-documentation/connect-ios.md",
45+
"redirect_url": "/azure/virtual-desktop/users/connect-ios-ipados",
46+
"redirect_document_id": true
47+
},
48+
{
49+
"source_path_from_root": "/articles/virtual-desktop/user-documentation/connect-macos.md",
50+
"redirect_url": "/azure/virtual-desktop/users/connect-macos",
51+
"redirect_document_id": true
52+
},
53+
{
54+
"source_path_from_root": "/articles/virtual-desktop/user-documentation/connect-microsoft-store.md",
55+
"redirect_url": "/azure/virtual-desktop/users/connect-microsoft-store",
56+
"redirect_document_id": true
57+
},
58+
{
59+
"source_path_from_root": "/articles/virtual-desktop/user-documentation/connect-web.md",
60+
"redirect_url": "/azure/virtual-desktop/users/connect-web",
61+
"redirect_document_id": true
62+
},
63+
{
64+
"source_path_from_root": "/articles/virtual-desktop/user-documentation/connect-windows-7-10.md",
65+
"redirect_url": "/azure/virtual-desktop/users/connect-windows",
66+
"redirect_document_id": true
67+
},
68+
{
69+
"source_path_from_root": "/articles/virtual-desktop/user-documentation/index.yml",
70+
"redirect_url": "/azure/virtual-desktop/users/",
71+
"redirect_document_id": true
72+
},
73+
{
74+
"source_path_from_root": "/articles/virtual-desktop/user-documentation/linux-overview.md",
75+
"redirect_url": "/azure/virtual-desktop/users/connect-thin-clients",
76+
"redirect_document_id": true
3777
}
3878
]
3979
}

articles/azure-arc/kubernetes/conceptual-gitops-flux2.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: "This article provides a conceptual overview of GitOps in Azure for
44
keywords: "GitOps, Flux, Kubernetes, K8s, Azure, Arc, AKS, Azure Kubernetes Service, containers, devops"
55
services: azure-arc, aks
66
ms.service: azure-arc
7-
ms.date: 10/12/2022
7+
ms.date: 10/24/2022
88
ms.topic: conceptual
99
---
1010

@@ -20,7 +20,7 @@ With GitOps, you declare the desired state of your Kubernetes clusters in files
2020

2121
Because these files are stored in a Git repository, they're versioned, and changes between versions are easily tracked. Kubernetes controllers run in the clusters and continually reconcile the cluster state with the desired state declared in the Git repository. These operators pull the files from the Git repositories and apply the desired state to the clusters. The operators also continuously assure that the cluster remains in the desired state.
2222

23-
GitOps on Azure Arc-enabled Kubernetes or Azure Kubernetes Service uses [Flux](https://fluxcd.io/docs/), a popular open-source tool set. Flux provides support for common file sources (Git and Helm repositories, Buckets) and template types (YAML, Helm, and Kustomize). Flux also supports multi-tenancy and deployment dependency management, among [other features](https://fluxcd.io/docs/).
23+
GitOps on Azure Arc-enabled Kubernetes or Azure Kubernetes Service uses [Flux](https://fluxcd.io/docs/), a popular open-source tool set. Flux provides support for common file sources (Git and Helm repositories, Buckets, Azure Blob Storage) and template types (YAML, Helm, and Kustomize). Flux also supports multi-tenancy and deployment dependency management, among [other features](https://fluxcd.io/docs/).
2424

2525
## Flux cluster extension
2626

@@ -38,7 +38,7 @@ The most recent version of the Flux v2 extension and the two previous versions (
3838

3939
The `microsoft.flux` extension installs by default the [Flux controllers](https://fluxcd.io/docs/components/) (Source, Kustomize, Helm, Notification) and the FluxConfig CRD, fluxconfig-agent, and fluxconfig-controller. You can control which of these controllers is installed and can optionally install the Flux image-automation and image-reflector controllers, which provide functionality around updating and retrieving Docker images.
4040

41-
* [Flux Source controller](https://toolkit.fluxcd.io/components/source/controller/): Watches the source.toolkit.fluxcd.io custom resources. Handles the synchronization between the Git repositories, Helm repositories, and Buckets. Handles authorization with the source for private Git and Helm repos. Surfaces the latest changes to the source through a tar archive file.
41+
* [Flux Source controller](https://toolkit.fluxcd.io/components/source/controller/): Watches the source.toolkit.fluxcd.io custom resources. Handles the synchronization between the Git repositories, Helm repositories, Buckets and Azure Blob storage. Handles authorization with the source for private Git, Helm repos and Azure blob storage accounts. Surfaces the latest changes to the source through a tar archive file.
4242
* [Flux Kustomize controller](https://toolkit.fluxcd.io/components/kustomize/controller/): Watches the `kustomization.toolkit.fluxcd.io` custom resources. Applies Kustomize or raw YAML files from the source onto the cluster.
4343
* [Flux Helm controller](https://toolkit.fluxcd.io/components/helm/controller/): Watches the `helm.toolkit.fluxcd.io` custom resources. Retrieves the associated chart from the Helm Repository source surfaced by the Source controller. Creates the `HelmChart` custom resource and applies the `HelmRelease` with given version, name, and customer-defined values to the cluster.
4444
* [Flux Notification controller](https://toolkit.fluxcd.io/components/notification/controller/): Watches the `notification.toolkit.fluxcd.io` custom resources. Receives notifications from all Flux controllers. Pushes notifications to user-defined webhook endpoints.
@@ -69,7 +69,7 @@ The `microsoft.flux` extension installs by default the [Flux controllers](https:
6969

7070
:::image type="content" source="media/gitops/flux2-config-install.png" alt-text="Diagram showing the installation of a Flux configuration in an Azure Arc-enabled Kubernetes or Azure Kubernetes Service cluster." lightbox="media/gitops/flux2-config-install.png":::
7171

72-
You create Flux configuration resources (`Microsoft.KubernetesConfiguration/fluxConfigurations`) to enable GitOps management of the cluster from your Git repos or Bucket sources. When you create a `fluxConfigurations` resource, the values you supply for the parameters, such as the target Git repo, are used to create and configure the Kubernetes objects that enable the GitOps process in that cluster. To ensure data security, the `fluxConfigurations` resource data is stored encrypted at rest in an Azure Cosmos DB database by the Cluster Configuration service.
72+
You create Flux configuration resources (`Microsoft.KubernetesConfiguration/fluxConfigurations`) to enable GitOps management of the cluster from your Git repos, Bucket sources or Azure Blob Storage. When you create a `fluxConfigurations` resource, the values you supply for the parameters, such as the target Git repo, are used to create and configure the Kubernetes objects that enable the GitOps process in that cluster. To ensure data security, the `fluxConfigurations` resource data is stored encrypted at rest in an Azure Cosmos DB database by the Cluster Configuration service.
7373

7474
The `fluxconfig-agent` and `fluxconfig-controller` agents, installed with the `microsoft.flux` extension, manage the GitOps configuration process.
7575

@@ -87,7 +87,7 @@ The `fluxconfig-agent` and `fluxconfig-controller` agents, installed with the `m
8787
* Sets up RBAC (service account provisioned, role binding created/assigned, role created/assigned).
8888
* Creates `GitRepository` or `Bucket` custom resource and `Kustomization` custom resources from the information in the `FluxConfig` custom resource.
8989

90-
Each `fluxConfigurations` resource in Azure will be associated in a Kubernetes cluster with one Flux `GitRepository` or `Bucket` custom resource and one or more `Kustomization` custom resources. When you create a `fluxConfigurations` resource, you'll specify, among other information, the URL to the source (Git repository or Bucket) and the sync target in the source for each `Kustomization`. You can configure dependencies between `Kustomization` custom resources to control deployment sequencing. Also, you can create multiple namespace-scoped `fluxConfigurations` resources on the same cluster for different applications and app teams.
90+
Each `fluxConfigurations` resource in Azure will be associated in a Kubernetes cluster with one Flux `GitRepository` or `Bucket` custom resource and one or more `Kustomization` custom resources. When you create a `fluxConfigurations` resource, you'll specify, among other information, the URL to the source (Git repository, Bucket or Azure Blob storage) and the sync target in the source for each `Kustomization`. You can configure dependencies between `Kustomization` custom resources to control deployment sequencing. Also, you can create multiple namespace-scoped `fluxConfigurations` resources on the same cluster for different applications and app teams.
9191

9292
> [!NOTE]
9393
> The `fluxconfig-agent` monitors for new or updated `fluxConfiguration` resources in Azure. The agent requires connectivity to Azure for the desired state of the `fluxConfiguration` to be applied to the cluster. If the agent is unable to connect to Azure, there will be a delay in making the changes in the cluster until the agent can connect. If the cluster is disconnected from Azure for more than 48 hours, then the request to the cluster will time-out, and the changes will need to be re-applied in Azure.

articles/azure-arc/kubernetes/troubleshooting.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: "Troubleshoot common Azure Arc-enabled Kubernetes issues"
33
services: azure-arc
44
ms.service: azure-arc
55
#ms.subservice: azure-arc-kubernetes coming soon
6-
ms.date: 09/15/2022
6+
ms.date: 10/24/2022
77
ms.topic: how-to
88
description: "Learn how to resolve common issues with Azure Arc-enabled Kubernetes clusters and GitOps."
99
keywords: "Kubernetes, Arc, Azure, containers, GitOps, Flux"
@@ -422,6 +422,14 @@ spec:
422422
app.kubernetes.io/name: flux-extension
423423
```
424424

425+
### Flux v2 - Installing the `microsoft.flux` extension in a cluster with Kubelet Identity enabled
426+
427+
When working with Azure Kubernetes clusters, one of the authentication options to use is kubelet identity. In order to let Flux use this, add a parameter --config useKubeletIdentity=true at the time of Flux extension installation.
428+
429+
```console
430+
az k8s-extension create --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type managedClusters --name flux --extension-type microsoft.flux --config useKubeletIdentity=true
431+
```
432+
425433
### Flux v2 - `microsoft.flux` extension installation CPU and memory limits
426434

427435
The controllers installed in your Kubernetes cluster with the Microsoft.Flux extension require the following CPU and memory resource limits to properly schedule on Kubernetes cluster nodes.

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

Lines changed: 50 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: "This tutorial shows how to use GitOps with Flux v2 to manage confi
44
keywords: "GitOps, Flux, Flux v2, Kubernetes, K8s, Azure, Arc, AKS, Azure Kubernetes Service, containers, devops"
55
services: azure-arc, aks
66
ms.service: azure-arc
7-
ms.date: 10/12/2022
7+
ms.date: 10/24/2022
88
ms.topic: tutorial
99
ms.custom: template-tutorial, devx-track-azurecli, references_regions, ignite-2022
1010
---
@@ -634,6 +634,14 @@ Here's an example for including the [Flux image-reflector and image-automation c
634634
az k8s-extension create -g <cluster_resource_group> -c <cluster_name> -t <connectedClusters or managedClusters> --name flux --extension-type microsoft.flux --config image-automation-controller.enabled=true image-reflector-controller.enabled=true
635635
```
636636

637+
### Using Kubelet identity as authentication method for Azure Kubernetes Clusters
638+
639+
When working with Azure Kubernetes clusters, one of the authentication options to use is kubelet identity. In order to let Flux use this, add a parameter --config useKubeletIdentity=true at the time of Flux extension installation.
640+
641+
```console
642+
az k8s-extension create --resource-group <resource-group> --cluster-name <cluster-name> --cluster-type managedClusters --name flux --extension-type microsoft.flux --config useKubeletIdentity=true
643+
```
644+
637645
### Red Hat OpenShift onboarding guidance
638646

639647
Flux controllers require a **nonroot** [Security Context Constraint](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.2/html/authentication/managing-pod-security-policies) to properly provision pods on the cluster. These constraints must be added to the cluster prior to onboarding of the `microsoft.flux` extension.
@@ -697,8 +705,9 @@ Arguments
697705
--bucket-insecure : Communicate with a bucket without TLS. Allowed values: false,
698706
true.
699707
--bucket-name : Name of the S3 bucket to sync.
708+
--container-name : Name of the Azure Blob Storage container to sync
700709
--interval --sync-interval : Time between reconciliations of the source on the cluster.
701-
--kind : Source kind to reconcile. Allowed values: bucket, git.
710+
--kind : Source kind to reconcile. Allowed values: bucket, git, azblob.
702711
Default: git.
703712
--kustomization -k : Define kustomizations to sync sources with parameters ['name',
704713
'path', 'depends_on', 'timeout', 'sync_interval',
@@ -752,6 +761,17 @@ Global Arguments
752761
--subscription : Name or ID of subscription. You can configure the default
753762
subscription using `az account set -s NAME_OR_ID`.
754763
--verbose : Increase logging verbosity. Use --debug for full debug logs.
764+
765+
Azure Blob Storage Account Auth Arguments
766+
--sp_client_id : The client ID for authenticating a service principal with Azure Blob, required for this authentication method
767+
--sp_tenant_id : The tenant ID for authenticating a service principal with Azure Blob, required for this authentication method
768+
--sp_client_secret : The client secret for authenticating a service principal with Azure Blob
769+
--sp_client_cert : The Base64 encoded client certificate for authenticating a service principal with Azure Blob
770+
--sp_client_cert_password : The password for the client certificate used to authenticate a service principal with Azure Blob
771+
--sp_client_cert_send_chain : Specifies whether to include x5c header in client claims when acquiring a token to enable subject name / issuer based authentication for the client certificate
772+
--account_key : The Azure Blob Shared Key for authentication
773+
--sas_token : The Azure Blob SAS Token for authentication
774+
--mi_client_id : The client ID of the managed identity for authentication with Azure Blob
755775

756776
Examples
757777
Create a Flux v2 Kubernetes configuration
@@ -768,6 +788,14 @@ Examples
768788
--kind bucket --url https://bucket-provider.minio.io \
769789
--bucket-name my-bucket --kustomization name=my-kustomization \
770790
--bucket-access-key my-access-key --bucket-secret-key my-secret-key
791+
792+
Create a Kubernetes v2 Flux Configuration with Azure Blob Storage Source Kind
793+
az k8s-configuration flux create --resource-group my-resource-group \
794+
--cluster-name mycluster --cluster-type connectedClusters \
795+
--name myconfig --scope cluster --namespace my-namespace \
796+
--kind azblob --url https://mystorageaccount.blob.core.windows.net \
797+
--container-name my-container --kustomization name=my-kustomization \
798+
--account-key my-account-key
771799
```
772800

773801
### Configuration general arguments
@@ -786,7 +814,7 @@ Examples
786814

787815
| Parameter | Format | Notes |
788816
| ------------- | ------------- | ------------- |
789-
| `--kind` | String | Source kind to reconcile. Allowed values: `bucket`, `git`. Default: `git`. |
817+
| `--kind` | String | Source kind to reconcile. Allowed values: `bucket`, `git`, `azblob`. Default: `git`. |
790818
| `--timeout` | [golang duration format](https://pkg.go.dev/time#Duration.String) | Maximum time to attempt to reconcile the source before timing out. Default: `10m`. |
791819
| `--sync-interval` `--interval` | [golang duration format](https://pkg.go.dev/time#Duration.String) | Time between reconciliations of the source on the cluster. Default: `10m`. |
792820

@@ -867,9 +895,27 @@ If you use a `bucket` source instead of a `git` source, here are the bucket-spec
867895
| `--bucket-secret-key` | String | Secret Key used to authenticate with the `bucket`. |
868896
| `--bucket-insecure` | Boolean | Communicate with a `bucket` without TLS. If not provided, assumed false; if provided, assumed true. |
869897

898+
### Azure Blob Storage Account source arguments
899+
900+
If you use a `azblob` source, here are the blob-specific command arguments.
901+
902+
| Parameter | Format | Notes |
903+
| ------------- | ------------- | ------------- |
904+
| `--url` `-u` | URL String | The URL for the `azblob`. |
905+
| `--container-name` | String | Name of the Azure Blob Storage container to sync |
906+
| `--sp_client_id` | String | The client ID for authenticating a service principal with Azure Blob, required for this authentication method |
907+
| `--sp_tenant_id` | String | The tenant ID for authenticating a service principal with Azure Blob, required for this authentication method |
908+
| `--sp_client_secret` | String | The client secret for authenticating a service principal with Azure Blob |
909+
| `--sp_client_cert` | String | The Base64 encoded client certificate for authenticating a service principal with Azure Blob |
910+
| `--sp_client_cert_password` | String | The password for the client certificate used to authenticate a service principal with Azure Blob |
911+
| `--sp_client_cert_send_chain` | String | Specifies whether to include x5c header in client claims when acquiring a token to enable subject name / issuer based authentication for the client certificate |
912+
| `--account_key` | String | The Azure Blob Shared Key for authentication |
913+
| `--sas_token` | String | The Azure Blob SAS Token for authentication |
914+
| `--mi_client_id` | String | The client ID of the managed identity for authentication with Azure Blob |
915+
870916
### Local secret for authentication with source
871917

872-
You can use a local Kubernetes secret for authentication with a `git` or `bucket` source. The local secret must contain all of the authentication parameters needed for the source and must be created in the same namespace as the Flux configuration.
918+
You can use a local Kubernetes secret for authentication with a `git`, `bucket` or `azBlob` source. The local secret must contain all of the authentication parameters needed for the source and must be created in the same namespace as the Flux configuration.
873919

874920
| Parameter | Format | Notes |
875921
| ------------- | ------------- | ------------- |

0 commit comments

Comments
 (0)