Skip to main content

Control Plane Projects

This document explains the basics of control plane projects and how they work with UXP local development tools. Projects provide a structured way to define, develop, and test your control plane configurations.

Requirements

To use local control plane development tools, make sure you have:

  • up CLI installed
  • A Docker-compatible container runtime installed and running on your system

What is a control plane project?

A control plane project is the source-level code representation of your control plane.

Projects require an upbound.yaml file. The command up project init uses an Upbound-provided template by default, which creates a predefined upbound.yaml. If you choose to override the default template with your own, make sure your template contains an upbound.yaml in the root directory.

Project files define the constraints and dependencies of your control plane. The project file also contains metadata about your project, such as the maintainers and which template it derives from.

Inside your control plane project, you can define:

  • Your platform API schemas as a collection of CompositeResourceDefinitions (XRDs)
  • The implementation of those schemas as Crossplane compositions
  • Any dependencies your control plane has on providers, functions, or configuration packages
  • Composition functions, which are modules that your compositions reference to define how to compose resources
  • Test suites for your API to conduct testing as part of your development workflow

UXP supports local development with the up CLI to run and test your control plane projects.