Skip to main content
This page provides definitions and details for every entity in Ctrlplane. For a gentler introduction, see 5-Minute Overview.

Entity Overview

System

A System is a logical grouping of related deployments, environments, and resources. Think of it as a workspace for a product or team. Example: “E-commerce Platform” system containing API, Frontend, and Payment deployments. When to create a System: One per product, platform, or team boundary.

Resource

A Resource is a deployment target—the actual infrastructure where your code runs. Examples: Kubernetes cluster, EC2 instance, Lambda function, VM. How created: Via Resource Providers (auto-sync from K8s, AWS, GCP) or API.

Environment

An Environment represents a logical deployment stage (dev, staging, prod) that groups resources using selectors. Key concept: Environments are dynamic. When you add a new resource matching the selector, it automatically joins the environment.

Deployment

A Deployment represents a service or application you want to deploy. Examples: “API Service”, “Frontend App”, “Payment Processor”.

Version

A Version is a specific build or release of a deployment, typically created by your CI pipeline. Status meanings:
  • building — Still being built, won’t be deployed
  • ready — Ready for deployment (default for policies)
  • failed — Build failed, won’t be deployed

Release Target

A Release Target is the combination of a Deployment, Environment, and Resource. It represents a specific place where a deployment can be released.
Example:
  • Deployment: “API Service”
  • Environment: “Production”
  • Resource: “us-east-1 cluster”
  • Release Target: “API Service on Production/us-east-1”
Automatic creation: Release targets are computed from the intersection of:
  1. Environment’s resource selector → which resources
  2. Deployment’s resource selector (if any) → further filtering

Release

A Release is an instance of deploying a specific Version to a Release Target. Releases do not carry their own status. The state of a release is inferred from the Release Target State — which tracks the desired release, current release, and latest job for each target.

Job

A Job is the actual deployment task executed by a Job Agent. Job lifecycle:
  1. Ctrlplane creates job for approved release
  2. Job agent polls and receives the job
  3. Agent acknowledges and executes
  4. Agent updates status as it progresses
  5. Agent marks completed or failed

Job Agent

A Job Agent is the executor that performs deployments. It bridges Ctrlplane to your infrastructure.

Policy

A Policy defines rules governing when and how deployments happen. Policy types: Policy evaluation: When a release target needs deployment:
  1. Find all policies matching the target
  2. Evaluate each rule
  3. All pass → create job
  4. Any requires action → release is pending
  5. Any denies → release is blocked

Selector

Selectors are query expressions used to match resources, environments, or deployments.
Used in:
  • Environment resource selectors
  • Deployment resource selectors
  • Policy target selectors
See Selectors for full syntax.

Variables

Variables provide dynamic configuration for deployments.

Quick Reference Table

Next Steps