Overview
Datum’s plugin architecture allows you to extend the platform by building custom infrastructure provider plugins. Provider plugins are Kubernetes operators that reconcile Datum resources against any infrastructure platform or cloud provider.Custom providers follow the same patterns as the official GCP provider, which serves as a reference implementation.
Use Cases for Custom Providers
Build custom provider plugins to:Cloud Providers
Integrate with AWS, Azure, DigitalOcean, Vultr, NetActuate, or other cloud platforms
On-Premises Infrastructure
Manage bare metal servers, VMware vSphere, Proxmox, or OpenStack environments
Specialty Providers
Integrate with edge computing platforms, IoT device management, or GPU clusters
Internal Systems
Connect to internal provisioning systems, CMDBs, or legacy infrastructure
Architecture Overview
A Datum infrastructure provider plugin is a Kubernetes controller that:- Watches Datum resources like
Workload,Network, andWorkloadDeployment - Interprets placement rules and resource specifications
- Provisions infrastructure resources in the target platform
- Reconciles the actual infrastructure state to match the desired state
- Reports status back to Datum resources
Getting Started
Implementation Guide
1. Watch Datum Resources
Your provider needs to watch for Datum’s core resources:2. Implement Workload Reconciliation
Handle workload provisioning in your target infrastructure:3. Handle Container Instances
Provision container-based workloads:4. Handle VM Instances
Provision virtual machine instances:5. Implement Network Reconciliation
Handle VPC/network creation:Provider Configuration
Define aProviderConfig custom resource for provider-specific settings:
Testing Your Provider
Deployment
Package your provider as a Kubernetes deployment:Best Practices
Handle errors gracefully
Handle errors gracefully
- Return errors to trigger reconciliation retries
- Use exponential backoff for transient failures
- Update resource status with error messages
- Log detailed error information for debugging
Implement idempotent operations
Implement idempotent operations
- Check if resources already exist before creating
- Support updates to existing infrastructure
- Handle partial failures gracefully
- Use provider-specific IDs to track resources
Report accurate status
Report accurate status
- Update Datum resource status with provider IDs
- Report instance health and readiness
- Include IP addresses and network information
- Set appropriate conditions for observability
Support cleanup
Support cleanup
- Implement finalizers to clean up infrastructure
- Delete provider resources when Datum resources are deleted
- Handle cascading deletions correctly
- Prevent orphaned resources in the infrastructure
Reference Implementation
The official GCP provider serves as a complete reference implementation. Study its code to understand:- Project structure and organization
- API definitions and CRDs
- Controller reconciliation patterns
- Status reporting and error handling
- Testing strategies
- Deployment configurations
Next Steps
GCP Provider Source
Study the official GCP provider implementation
Workload Operator
Understand the Workload API your provider implements
Network Services Operator
Learn about Network resource management
Enhancements
Propose new provider features or integrations