# Data plane setup on Azure

Union.ai's modular architecture allows for great flexibility and control.
You can decide how many clusters to have, their shape, and who has access to what.
All communication is encrypted.  The Union architecture is described on the [Architecture](https://www.union.ai/docs/v2/union/deployment/selfmanaged/architecture/_index) page.

If you already have an AKS cluster, Storage Account with Data Lake Gen2, Managed Identities, and Workload Identity configured, skip directly to [Deploy the dataplane](https://www.union.ai/docs/v2/union/deployment/selfmanaged/selfmanaged-azure/deploy-dataplane/page.md).

Otherwise, start with [Prepare infrastructure](https://www.union.ai/docs/v2/union/deployment/selfmanaged/selfmanaged-azure/prepare-infra/page.md) to set up the required Azure resources.

## Subpages

- [Prepare infrastructure](https://www.union.ai/docs/v2/union/deployment/selfmanaged/selfmanaged-azure/prepare-infra/page.md)
  - Prerequisites
  - Environment variables
  - 1. Subscription and Resource Group
  - 2. AKS Cluster
  - 3. Node Pools
  - System node pool
  - CPU worker node pool
  - GPU node pool (optional)
  - 4. Storage Account and Container
  - CORS Configuration
  - Data Retention
  - 5. Managed Identities
  - 6. Workload Identity and Federated Credentials
  - Backend identity (Union system components)
  - Worker identity (task execution pods)
  - 7. Role Assignments
  - 8. Azure Key Vault (optional)
- [Deploy the dataplane](https://www.union.ai/docs/v2/union/deployment/selfmanaged/selfmanaged-azure/deploy-dataplane/page.md)
  - Assumptions
  - Prerequisites
  - Deploy the Union.ai operator

---
**Source**: https://github.com/unionai/unionai-docs/blob/main/content/deployment/selfmanaged/selfmanaged-azure/_index.md
**HTML**: https://www.union.ai/docs/v2/union/deployment/selfmanaged/selfmanaged-azure/
