Provider Adapters
Provider adapters describe how deployment intent is synchronized to each deployment target.
Supported Adapters
Kubernetes
- Sync Pattern: Pull-based or push-based, depending on the chosen platform tooling
- Typical Use: Multi-service or infrastructure-heavy workloads
Vercel
- Sync Pattern: Push-based via API
- Trigger: CI applies deployment changes from the ops repo
Railway
- Sync Pattern: Push-based via API
- Trigger: CI applies deployment changes from the ops repo
Droplet (SSH/Ansible)
- Sync Pattern: Push-based via SSH
- Trigger: CI executes a deploy script or Ansible playbook
Adapter Contract
Each adapter must provide:
1. Documentation
adapter.md describing:
- sync mechanics
- required secrets and configuration
- environment variables
- deployment triggers
2. Workflow Integration
- example workflow snippet or composite action usage
- configuration examples
- error handling patterns
3. Acceptance Checklist
- deployment validation steps
- rollback procedures
- health check integration
Deployment Sync Patterns
Pull-Based (Kubernetes)
A pull-based deployment controller watches the ops repo and applies changes automatically:
Ops Repo Commit → Deployment Controller Detects Change → Applies to Cluster
Push-Based (Vercel/Railway)
CI applies deployment changes from the ops repo via platform API:
Ops Repo Commit → CI Workflow Triggered → API Call to Platform → Deployment
SSH-Based (Droplet)
CI executes a deployment script or Ansible playbook:
Ops Repo Commit → CI Workflow Triggered → SSH to Server → Execute Deploy Script
Choosing an Adapter
Use Kubernetes when:
- need high scalability and orchestration
- running a microservices architecture
- require advanced deployment strategies
- have a dedicated infrastructure team
Use Vercel when:
- deploying Next.js or frontend applications
- need edge computing capabilities
- want zero-configuration deployments
- prioritize developer experience
Use Railway when:
- deploying full-stack applications
- need database provisioning
- want a simple deployment pipeline
- are working with monolithic applications
Use Droplet when:
- need full server control
- are running legacy applications
- have custom infrastructure requirements
- are cost-sensitive