Skip to content

Configuration

Set variables before provisioning with azd env set:

Terminal window
# Required
azd env set AZURE_LOCATION eastus2
azd env set AZURE_CONTACT_EMAIL you@example.com
# Optional: disable Grafana to save costs
azd env set ENABLE_GRAFANA_WORKSPACE false
# Optional: add more data partitions
azd env set TF_VAR_data_partitions '["opendes","another-partition"]'
ResourcePurposePer-Partition
AKS AutomaticKubernetes cluster (K8s 1.33, Istio, Cilium)No
CosmosDB (Gremlin)Entitlements graphNo
CosmosDB (SQL)OSDU operational data (24 containers)Yes
Service BusEvent-driven messaging (14 topics)Yes
Storage Account (common)System data, Airflow DAGs, CRSNo
Storage Account (partition)Legal configs, file areas, WKS mappingsYes
Key VaultConnection strings, keys, credentialsNo
Container RegistryContainer imagesNo
Application InsightsService telemetryNo
Log AnalyticsContainer InsightsNo
Azure Monitor WorkspaceManaged Prometheus metricsNo

Resources marked “Per-Partition” are created for each data partition via Terraform for_each. The default partition is opendes. Add more partitions via:

Terminal window
azd env set TF_VAR_data_partitions '["opendes","second-partition"]'

Deploy multiple isolated OSDU instances on the same cluster:

Terminal window
# Deploy the default stack
azd deploy
# Deploy a second stack with a different name
azd env set STACK_NAME blue
azd deploy

Each stack gets its own namespaces (platform-{name}, osdu-{name}) and independent Terraform state, while sharing the foundation layer.

Individual OSDU services can be toggled via Terraform variables:

Terminal window
azd env set TF_VAR_enable_partition true
azd env set TF_VAR_enable_search true
azd env set TF_VAR_enable_storage true

This allows incremental deployment — start with core services and enable additional ones as needed.