https://github.com/upbound/configuration-caas
Configuration for Cluster-as-a-Service
https://github.com/upbound/configuration-caas
Last synced: about 1 year ago
JSON representation
Configuration for Cluster-as-a-Service
- Host: GitHub
- URL: https://github.com/upbound/configuration-caas
- Owner: upbound
- Created: 2023-08-16T09:54:36.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-05-08T18:41:12.000Z (about 1 year ago)
- Last Synced: 2025-05-08T23:44:28.247Z (about 1 year ago)
- Language: Makefile
- Homepage:
- Size: 94.7 KB
- Stars: 6
- Watchers: 17
- Forks: 12
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Cluster-as-a-Service base configuration
This repo provides a configuration for a Cluster-as-a-Service, built on top of
Crossplane. This configuration exposes a simple API to your internal developers
for creating Kubernetes clusters. In the background, this configuration can create clusters in AWS, Azure, and GCP. It automatically applies common recommended practices, such as connecting the cluster to existing Flux or ArogCD deployments, automating VPC setup, and creating a Flux or ArgoCD operator in a cluster.
This repo is a starting point for you to deliver your own
Cluster-as-a-Service. Fork this repository and customize the configuration to
meet your teams' needs.
Advantages of Cluster-as-a-Service:
- GitOps workflow with Flux or ArgoCD
- Production-ready template
- Scalable architecture
- Product agnostic approach
## Available APIs
This repository implements Compositions for AWS, Azure, and GCP provider APIs, as well as the Upbound Control Plane provider. For more information, review the API documentation below:
- [`Cluster.caas.upbound.io`](https://marketplace.upbound.io/configurations/upbound/configuration-caas/latest/resources/caas.upbound.io/XCluster/v1alpha1)
- Provision/Manage an EKS,AKS or GKE Cluster
- [`ControlPlane.mcp.caas.upbound.io`](https://marketplace.upbound.io/configurations/upbound/configuration-caas/latest/resources/mcp.caas.upbound.io/XControlPlane/v1alpha1)
- Provision/Manage an Upbound Control Plane
- [`Connector.mcp.caas.upbound.io`](https://marketplace.upbound.io/configurations/upbound/configuration-caas/latest/resources/mcp.caas.upbound.io/XConnector/v1alpha1)
- Provision/Manage an MCP Connector
The [`apis`](https://github.com/upbound/configuration-caas/tree/main/apis)
folder has the CompositeResourceDefinitons (XRDs) that define the schemas for
the cloud provider APIs.
Once you clone the repository, you can modify the included compositions to fit your organizations needs.
## Deployment
To deploy in a new organization, follow the [Get Started guide](https://docs.upbound.io/quickstart/).
For deployments to an existing organization, log in to your Upbound organization
and go to **Configurations** and click **Create Configuration**.
Connect your Upbound organization to GitHub. Select the Github organization and
repository name for your cloned repo and choose the **Cluster as a
Service** configuration.
When your new configuration is ready, create a new control plane based on the
cloned repo you just created.
After a few minutes, your new control plane is ready!
To authenticate and configure your providers, see the [provider authentication
guide](https://docs.upbound.io/providers/).
Once authenticated and configured, your self-service Upbound console lists
available cloud resources.
## GitOps integration
Cluster-as-a-Service deployments work best when managed in your infrastructure as code
lifecycle.
For more information on how to integrate Argo CD and Flux in your Upbound
environment, check out the [GitOps with Control Planes doc](https://docs.upbound.io/mcp/gitops/).
## Contributing
If you encounter issues or want to request improvements, review the
[Contributing Guides](https://docs.crossplane.io/contribute/).