Systems
A System is the top-level organizational unit in Ctrlplane. It represents a logical grouping of related deployments, environments, and resources.What is a System?
Think of a system as a workspace for a product, platform, or major component of your infrastructure. It contains everything related to deploying that product:- Deployments - The services/applications you deploy
- Environments - Where you deploy (dev, staging, prod)
- Resources - The infrastructure targets
- Policies - Rules governing deployments
- Variables - Configuration values
When to Create a System
Create a system when you have: ✅ A product or platform - E.g., “E-commerce Platform”, “Data Pipeline”✅ Multiple related services - Microservices that work together
✅ Shared deployment policies - Common approval/progression rules
✅ Logical separation - Different teams, security boundaries
System Structure
Creating a System
Via Web UI
- Navigate to your workspace
- Click “Create System”
- Fill in the form:
- Name: Display name (e.g., “E-commerce Platform”)
- Slug: URL-friendly identifier (e.g., “ecommerce-platform”)
- Description: What this system encompasses
Via API
Via YAML Import
Ctrlplane supports importing system configuration from YAML:System Properties
Name
- Display name shown in the UI
- Can contain spaces and special characters
- Can be changed without affecting existing deployments
Slug
- URL-friendly identifier
- Must be unique within workspace
- Used in API paths and CLI commands
- Cannot be changed after creation
- Format: lowercase letters, numbers, hyphens
Description
- Optional text describing the system’s purpose
- Supports markdown formatting
- Displayed in the UI
Workspace ID
- The parent workspace this system belongs to
- Automatically set when creating a system
- Cannot be changed
Organizing with Multiple Systems
When to Use Multiple Systems
Use separate systems when:-
Team Boundaries
-
Security Boundaries
-
Deployment Independence
-
Different Policies
When to Use One System
Keep things in one system when:-
Tightly Coupled Services
- Microservices that must deploy together
- Services with shared dependencies
-
Shared Deployment Pipeline
- Same approval requirements
- Same environment progression
-
Single Team/Product
- One team owns all services
- Deployed as a unit
System-Level Operations
Viewing System Status
Get an overview of all deployments in a system:Listing All Entities
List Deployments:Deleting a System
⚠️ Warning: Deleting a system removes all associated deployments, releases, and jobs. This cannot be undone.Best Practices
Naming Conventions
Good Names:- ✅ “E-commerce Platform”
- ✅ “Analytics Pipeline”
- ✅ “Customer Portal”
- ✅
ecommerce-platform - ✅
analytics-pipeline - ✅
customer-portal
- ❌ “System 1”, “Test”, “Prod” (too generic)
- ❌
My_System,PROD-SYSTEM(inconsistent formatting)
Start Simple
Begin with one system for your product:Documentation
Use the description field to document:- Purpose of the system
- Ownership/team responsible
- Key dependencies
- Links to external documentation
Consistent Structure
Maintain consistent structure across systems:- Standard environment names (dev, staging, prod)
- Similar deployment naming patterns
- Common policy approaches
Common Patterns
Microservices System
Multi-Region System
Monorepo with Multiple Apps
Troubleshooting
System not appearing in UI
- Verify system was created successfully
- Check you’re in the correct workspace
- Refresh the page
Cannot create deployment in system
- Verify you have permissions for the system
- Check system ID is correct
- Ensure deployment slug is unique within system
System deletion fails
- Active releases may prevent deletion
- Cancel or complete all active releases first
- Or force delete via API with
force=trueparameter
Next Steps
- Resources - Define deployment targets
- Environments - Create deployment stages
- Deployments - Set up your first deployment