Welcome to OpenMCF Documentation
OpenMCF is an open-source multi-cloud infrastructure framework that lets you author KRM-style YAML manifests once, validate them with Protobuf + Buf, and deploy with Pulumi or OpenTofu.
Getting Started
New to OpenMCF? Start here:
- Install the CLI via Homebrew
- Validate your first manifest
- Deploy to your cloud provider or Kubernetes cluster
CLI Reference
Master the OpenMCF command-line interface:
- Unified Commands - kubectl-style
applyanddestroycommands - Complete CLI Reference - All commands, flags, and options
- Pulumi Commands - Deploy with Pulumi (init, preview, up, refresh, destroy)
- OpenTofu Commands - Deploy with OpenTofu (init, plan, apply, refresh, destroy)
Guides
In-depth guides for common scenarios:
- Manifest Structure - Understanding and writing manifests
- Credentials Management - Setting up cloud provider authentication
- Kustomize Integration - Multi-environment deployments
- Advanced Usage - Runtime overrides, URL manifests, and power techniques
Tutorials
Step-by-step walkthroughs for common deployment scenarios:
- Deploy Your First AWS Resource - S3 bucket end-to-end
- Deploy Your First Kubernetes Resource - PostgreSQL on Kubernetes
- Multi-Environment Deployments - Kustomize overlays for dev/staging/prod
- Deploy Across Providers - Cross-provider comparison
Examples
Copy-paste-ready manifest examples:
- Manifest Gallery - Curated manifests across AWS, GCP, Azure, Kubernetes, and more
Contributing
Join the OpenMCF community:
- How to Contribute - Development setup, building, testing, and PR workflow
- Adding Components - Create new deployment components
Deployment Components
Browse deployment components by cloud provider in the Catalog:
AWS
25 components
GCP
19 components
Azure
10 components
Cloudflare
8 components
Civo
12 components
DigitalOcean
15 components
Atlas
1 component
Confluent
1 component
Kubernetes
51 components
Snowflake
1 component
Scaleway
19 components
OpenStack
27 components
Key Features
- One Model, Many Clouds: Single API structure across AWS, GCP, Azure, and Kubernetes
- Validation First: Buf ProtoValidate catches errors before deployment
- Battle-Tested Modules: Curated Pulumi and OpenTofu modules
- CLI-First Workflow: Developer-grade CLI for all operations
- Security & Governance: Provider credentials as stack inputs, consistent labeling
Quick Example
apiVersion: kubernetes.openmcf.org/v1
kind: KubernetesRedis
metadata:
name: my-redis
labels:
openmcf.org/provisioner: pulumi
spec:
namespace: redis
container:
replicas: 3
resources:
limits:
memory: 2Gi
cpu: 1000m
# Simple kubectl-style workflow
openmcf validate redis.yaml
openmcf apply -f redis.yaml
# Or use provisioner-specific commands
openmcf pulumi up -f redis.yaml --stack myorg/project/dev
Troubleshooting
Having issues? Common solutions:
- Manifest validation errors — Check field names and types against the component's protobuf schema
- Authentication and credentials — See the Credentials Management guide
- Pulumi/OpenTofu-specific issues — Ensure the provisioner CLI is installed and your backend is configured
- Network and connectivity — The CLI clones modules from GitHub; verify network access
For detailed solutions, see the full Troubleshooting Guide.