Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Upbound Releases Managed Control Plane Service

Upbound Releases Managed Control Plane Service

Upbound, the creators of Crossplane, have released a fully-managed control plane based on Crossplane. Crossplane is a Cloud Native Computing Foundation incubating project that provides a low-code experience for building control planes. Upbound Managed Control Planes (MCPs) manage the control plane components and provide access via both a UI and a CLI.

MCPs handle the underlying infrastructure that the control plane is running on, the scaling of that infrastructure, and the maintenance of those components. Each MCP provides a dedicated API server for connecting to the control plane. These APIs are defined by Crossplane packages known as configurations.

Each Crossplane Configuration is defined in a Git repository. Users are able to decide which configurations to install based on the desired set of APIs. Each MCP will have at most one configuration source. At the time of writing, only GitHub is supported for Git-based integrations. Bassam Tabbara, CEO at Upbound, has indicated that Upbound plans to add support for additional Git services.

Upbound provides both a console and a CLI for interacting with the control plane objects. The Upbound Console provides a single view for managing and operating the control plane. This includes troubleshooting information such as debug logs and traces.

Upbound Managed Control Planes Console

Upbound Managed Control Planes Console (credit: Upbound)


All work that can be accomplished via the console can also be done via the up CLI. If desired, it is possible to interact with Upbound via provider-upbound allowing for Crossplane-native control. Finally, direct access to the control planes within the MCPs is available to facilitate using Kubernetes tooling such as kubectl. For example, creating a new MCP can be done via the CLI:

up ctp create --configuration-name=<configuration> <name-of-control-plane>

Once created, it is possible to connect to the Kubernetes API server endpoint. These endpoints are of the form<account>/<control-plane-name>/k8s. The CLI also supports generating a kubeconfig file:

up ctp kubeconfig get -a <account> <control-plane-name> -f <kubeconfig-file> --token <token>

MCPs can work with GitOps workflows via a new MCP connector. This connector can be installed into any Kubernetes cluster and is used to connect application clusters running outside of Upbound to the managed control planes. It supports managing infrastructure and application resources. All claim APIs defined via CompositeResourceDefinition's are available in the same fashion as workload APIs such as Pod. As Crossplane runs in Upbound, the MCP Connector exposes all claim APIs in the desired Kubernetes clusters, mimicking the experience of having Crossplane installed locally.

The MCP Connector accomplishes this by creating an APIService resource within the Kubernetes cluster for each claim API in the control plane. The MCP Connector fields all claim API requests from the Kubernetes cluster and directs them to the Upbound control plane it is connected to. This simplifies integrating with GitOps workflows through CD tooling like Flux or Argo.

Multi-cluster architecture with Upbound MCP

Multi-cluster architecture with Upbound MCP (credit: Upbound)


Each cluster creates a new MCP namespace within the Upbound MCP where the claims are stored. According to Upbound, there are no limits on the number of clusters that can be connected to a single control plane. The MCP Connector simplifies the connection process and removes the need for the cluster to have direct credentials to the control plane.

More details about the release can be found on the Upbound blog or within the documentation.

About the Author

Rate this Article