Requirement Checklist (Azure)
Software Requirements
Ensure the following command-line tools (CLIs) are available on the machine you install from:
kubectlhelmhelmfileaz (Azure CLI)
We don't pin any specific versions in the Yeedu installer. Use kubectl and helm releases that are compatible with the Kubernetes version of your cluster, and a helmfile release built against that helm version.
yeedu-core-services.sh installs kubectl, Helm, the Helmfile CLI, psql, rabbitmqadmin and the Redis CLI on the machine if they're missing, adapting to the machine's architecture and OS.
Cloud Requirements
1. Azure Subscription and Resource Group
Make sure to have an active Azure subscription and a designated resource group.
2. Azure Service Principal
Create an Azure service principal with admin access to ADLS2, AKS, ACR, and LAW.
3. Azure Kubernetes Service (AKS)
Configure Azure Kubernetes Service with the following recommendations:
- Namespace:
yeedu(Recommended) - Cluster Version: a Kubernetes version that is still in standard support on AKS
- Node capacity: at least 8 vCPU and 16 GB RAM available to the Yeedu control-plane workloads (the Yeedu CloudFormation template sizes its control-plane host at "Min 8 core, 16 GB RAM")
- Machine Type: Standard_D4as_v5 (Recommended)
- Machine Type: Standard_D4as_v5 (Recommended)
4. Azure Data Lake Gen 2 Blob Storage (ADLS2)
Set up an Azure Data Lake Gen 2 Storage account. Ensure the service principal from Step 2 has the necessary read and write permissions.
5. Azure PostgreSQL
Deploy an Azure Database for PostgreSQL instance with the following configuration:
- Engine: PostgreSQL 15.x
- Database Name:
yeedu - Backup Policy: Everyday (For Production)
- High Availability and DR: Recommended for Production
Yeedu doesn't publish a capacity model for the metadata database. The only version constraint pinned anywhere in the product is PostgreSQL >=15 and <16 (the Yeedu AWS CloudFormation template, automation/aws/yeedu-platform.yaml). Size CPU, memory and storage to your own workload.
6. Azure Container Registry (ACR)
Create an Azure Container Registry for storing Docker images. Refer to setup-docker-registry section for a list of container registries to be created and instructions on uploading Yeedu images.
7. Log Analytics Workspace
Set up a Log Analytics Workspace to store logs. Obtain the LAW_ID and LAW_SECRET values. Ensure the service principal from Step 2 has the necessary write access.
8. Firewalls
Ensure the following ports are open:
| Service Name | Port | Access From Workstation | Access From Apache Spark Cluster | Access From Yeedu Control Plane Server |
|---|---|---|---|---|
| REST API | 8080 | Yes | Yes | Yes |
| Jupyter Notebook | 8888-9088 | No | No | Yes |
| RabbitMQ UI | 15672 | Yes | No | No |
| Redis | 6379 | No | No | Yes |
| RabbitMQ | 5672 | No | Yes | Yes |
| PostgreSQL | 5432 | Yes | Yes | Yes |
| History-server | 10000 | Yes | No | Yes |
| Grafana | 3000 | Yes | Yes | Yes |
| Influx DB | 8086 | No | Yes | Yes |
| LDAP | 389 | No | No | Yes |
The following ports are also used by the platform. They're defined in bin/yeedu-env.sh:
| Service Name | Port | Environment variable / notes |
|---|---|---|
| Yeedu UI | 5173 | YEEDU_UI_PORT |
| Vault | 8200 | YEEDU_RESTAPI_VAULT_PORT |
| Vault UI | 9200 | YEEDU_RESTAPI_VAULT_UI_PORT |
| Yeedu Functions scheduler | 5171 | YEEDU_FUNCTIONS_SCHEDULER_PORT |
| Yeedu Functions proxy | 5172 | YEEDU_FUNCTIONS_PROXY_PORT |
| Cache Proxy | 8765 | YEEDU_CACHE_PROXY_PORT; used only when YEEDU_CACHE_PROXY_ENABLED is true |
| Scheduler (Airflow) | 8081 | YEEDU_SCHEDULER_PORT; used only when YEEDU_ENABLE_SCHEDULER is true |
| AssistantX | 8000 / 8001 | YEEDU_ASSISTANT_PORT / YEEDU_ASSISTANT_FASTAPI_PORT; used only when YEEDU_ASSISTANT_ENABLED is true |
| Azure Files (NFS) | 2049 | Required from the control-plane host to the file share |
Make sure to fulfill these prerequisites for a successful Yeedu installation.
Azure File Share prerequisites (NFS only)
- Create an Azure Storage Account with Premium tier and NFS protocol enabled.
- Configure a Private Endpoint to ensure secure access.
- Access Control: Ensure the private endpoint is accessible.