Skip to content

Infrastructure

The infrastructure layer (infra/) provisions all Azure resources via Terraform, using the Azure Developer CLI for orchestration.

The cluster is provisioned using the Azure Verified Module (AVM) for AKS with AKS Automatic features:

FeatureDescription
Managed IstioService mesh with mTLS, traffic management, observability
Cilium CNIeBPF-based networking with network policies
Karpenter (NAP)Node Auto Provisioning — dynamic VM SKU selection per zone
Deployment SafeguardsNon-bypassable admission policies for pod security
Managed PrometheusMetrics collection via Azure Monitor Workspace
Container InsightsLog collection via Log Analytics

Two CosmosDB account types serve different OSDU needs:

A single Gremlin account hosts the entitlements graph database. This is shared across all data partitions.

Per-partition CosmosDB SQL accounts host OSDU operational data across 24 containers. Created via Terraform for_each over the data partitions list.

Per-partition Service Bus namespaces with 14 topics for event-driven messaging between OSDU services. Topics include storage record changes, legal tag updates, schema notifications, and indexer events.

Shared across all partitions — holds system data, Airflow DAGs, and CRS (Coordinate Reference System) catalog files.

Per-partition storage accounts for legal configurations, file service areas, and WKS (Well Known Schema) mappings.

Centralized secret management for connection strings, access keys, and generated credentials. OSDU services access secrets via:

  1. Workload Identity for Azure PaaS resources (preferred)
  2. Key Vault references in Kubernetes ConfigMaps for middleware connection strings

Azure Container Registry stores OSDU service container images. The resolve-image-tags.ps1 script fetches the latest image tags from the OSDU GitLab registry at deploy time.

ComponentPurpose
Application InsightsDistributed tracing and service telemetry
Log Analytics WorkspaceContainer Insights and diagnostic logs
Azure Monitor WorkspaceManaged Prometheus metrics collection
Grafana (optional)Dashboards and alerting — can be disabled to save costs

A user-assigned managed identity with federated credentials enables OSDU services to authenticate to Azure PaaS resources without stored secrets. Federated credentials are created for each Kubernetes service account that needs Azure access.

The infra-access/ layer applies privileged RBAC grants separately from core infrastructure:

  • Cluster admin role assignments
  • DNS zone contributor for ExternalDNS
  • Key Vault access policies
  • Storage account data roles