Automation and GitOps Overview
Automating control plane deployments with GitOps enables declarative, version-controlled infrastructure management. This section covers integrating GitOps workflows with Upbound Cloud Spaces control planes using Argo CD and related tools.
What is GitOps?
GitOps is an approach for managing infrastructure by:
- Declaratively describing desired system state in Git
- Using controllers to continuously reconcile actual state with desired state
- Treating Git as the source of truth for all configuration and deployments
Upbound control planes are fully compatible with GitOps patterns and we strongly recommend integrating GitOps in the platforms you build on Upbound.
Key Concepts
Argo CD
Argo CD is a popular Kubernetes-native GitOps controller. It continuously monitors Git repositories and automatically applies changes to your infrastructure when commits are detected.
Deployment Models
| Aspect | Cloud Spaces | Self-Hosted Spaces |
|---|---|---|
| Access Method | Upbound API with tokens | Kubernetes native (secrets/kubeconfig) |
| Configuration | Kubeconfig via up CLI | Control plane connection secrets |
| Setup Complexity | More involved (API integration) | Simpler (native Kubernetes) |
| Typical Use Case | Managing Upbound resources | Managing workloads on control planes |
Getting Started with Cloud Spaces
- Start with GitOps with Upbound Control Planes
- Learn how to integrate Argo CD with Cloud Spaces
- Manage both control plane infrastructure and Upbound resources declaratively
If you're running self-hosted Spaces, see the Self-Hosted GitOps guide.
Common Workflows
Workflow 1: Managing Control Planes with GitOps
Create and manage control planes themselves declaratively using provider-kubernetes:
apiVersion: kubernetes.crossplane.io/v1alpha2
kind: Object
metadata:
name: my-controlplane
spec:
forProvider:
manifest:
apiVersion: spaces.upbound.io/v1beta1
kind: ControlPlane
# ... control plane configuration
Workflow 2: Managing Workloads on Control Planes
Deploy applications and resources to control planes using standard Kubernetes GitOps patterns:
apiVersion: v1
kind: Namespace
metadata:
name: my-app
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
namespace: my-app
# ... deployment configuration
Workflow 3: Managing Upbound Resources
Use provider-upbound to manage Upbound IAM and repository resources:
- Teams
- Robots and their team memberships
- Repositories and permissions
Prerequisites
Before implementing GitOps with Cloud Spaces control planes, ensure you have:
- Access to Upbound Cloud Spaces
upCLI installed and configured- API token with appropriate permissions
- Argo CD or similar GitOps controller running
- Familiarity with Kubernetes RBAC
Next Steps
- Review GitOps with Upbound Control Planes
- Set up your GitOps controller (Argo CD)
- Deploy your first automated control plane
Start with simple deployments to test your GitOps workflow before moving to production. Use simulations to preview changes before applying them.