System Architecture
Datum Cloud is built on Kubernetes principles, leveraging the Kubernetes API server and custom resource definitions (CRDs) to provide a declarative infrastructure control plane.Architecture Overview
Core Components
Datum API Server
The heart of Datum Cloud is a Kubernetes api-server deployed in the style of the generic control plane (KEP-4080).Why Kubernetes? We leverage the vast ecosystem of Kubernetes libraries and tooling. There’s no need to design a bespoke, infrastructure-focused distributed system for you to learn; Kubernetes has the primitives to support it.
- Handles Datum-specific resources like
Network,Workload,Organization, andProject - Provides REST API endpoints for all resources
- Enforces RBAC and admission policies
- Stores state in etcd for consistency and reliability
- Supports watch operations for real-time updates
- Declarative API: Define desired state, operators reconcile
- Custom Resources: Extend Kubernetes with infrastructure primitives
- Authentication & Authorization: Integration with IAM for user management
- Admission Control: Validate and mutate resources before persistence
Network Services Operator
The Network Services Operator manages networking primitives:VPC Networks
Network and NetworkContext resources for isolated networking environmentsSubnets
SubnetClaim and Subnet for subnet allocation and managementIPAM
IP Address Management for automatic IP allocation
Network Policies
NetworkBinding and NetworkPolicy for network security- Watch for
Networkresource creation - Allocate IP address ranges (IPAM)
- Create subnets based on claims
- Enforce network policies
- Coordinate with infrastructure plugins for VPC provisioning
Workload Operator
The Workload Operator manages compute resources: Key Responsibilities:- Watch for
Workloadresource creation - Evaluate placement rules (where instances should run)
- Create
WorkloadDeploymentresources for each location - Generate
Instanceresources from templates - Handle scaling (replicas)
- Manage lifecycle (updates, deletions)
Resource Manager
The Resource Manager provides organizational capabilities: Components:- Organizations
- Projects
- Quota System
Manage organizational hierarchies with two types:
- Personal: Automatically created for each user (max 2 projects)
- Standard: Multi-user organizations (max 10 projects)
internal/controller/resourcemanager/personal_organization_controller.go:60, this controller automatically:
- Creates a personal organization when a user signs up
- Creates an
OrganizationMembershipgranting Owner role - Creates a default personal project (impersonating the user)
Infrastructure Plugins
Plugins interpret resource definitions to manage provider-specific resources:GCP Plugin
First-class support for Google Cloud Platform
AWS Plugin
Support for Amazon Web Services (coming soon)
- VM-based workload instances with OS images
- gVisor sandboxed container instances with OCI images
- VPC connectivity and IPAM
- Multi-network attachment for instances
Data Flow
Creating a Workload
Here’s what happens when you create aWorkload resource:
API server validates
- Authentication: Verify user identity
- Authorization: Check RBAC permissions
- Admission: Run validation policies
- Quota: Check quota limits
Workload Operator reconciles
- Evaluate placement rules
- Create
WorkloadDeploymentresources for each location - Generate
Instanceresources from template
Infrastructure plugin provisions
- Watch for
Instanceresources - Create VM or container in target provider (GCP, AWS, etc.)
- Attach to network interfaces
Reconciliation Loop
Datum uses Kubernetes controller patterns for continuous reconciliation:High Availability
Datum Cloud is designed for high availability:- Leader Election: Only one controller instance actively reconciles (configured in
config/manager/manager.yaml:76) - Distributed Storage: etcd provides distributed, consistent storage
- Stateless Controllers: Controllers can be restarted without data loss
- Watch Resumption: Controllers resume from last known state after restart
Security Architecture
Security is built into every layer:Authentication
IAM integration for user identity and GitHub OAuth
Authorization
Kubernetes RBAC with role-based access control
Admission Control
ValidatingAdmissionPolicy for resource validation
Network Encryption
Built-in encryption impossible to disable
Scalability
Datum scales horizontally:- API Server: Multiple replicas behind load balancer
- Controllers: Leader election ensures single active reconciler
- Plugins: Deployed per-provider with independent scaling
- etcd: Distributed consensus for data consistency
Next Steps
Core Concepts
Deep dive into Networks, Workloads, and more
Deployment
Learn how to install and configure Datum
Operations
Manage and monitor your Datum infrastructure
Enhancements
Explore the roadmap and RFCs