Skip to content

plantonhq/openmcf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,631 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

OpenMCF

Deploy anywhere with one workflow. Write declarative YAML once, deploy to AWS, GCP, Azure, or Kubernetes with the same CLI and consistent experience.

openmcf-logo openmcf-text-logo

What is OpenMCF?

An open-source multi-cloud deployment framework that brings Kubernetes-style consistency to infrastructure deployments everywhere. No vendor lock-in, no artificial abstractions—just provider-specific configurations with a unified structure and workflow.

360+ deployment components across 17 cloud providers — AWS, GCP, Azure, Kubernetes, OCI, Alibaba Cloud, Hetzner Cloud, DigitalOcean, Cloudflare, Civo, Scaleway, OpenStack, Confluent, Snowflake, Auth0, MongoDB Atlas, and OpenFGA.

Documentation · Component Catalog · Getting Started


Why OpenMCF?

  • One structure, any cloud — Kubernetes Resource Model (apiVersion/kind/metadata/spec) for all deployments
  • Validate before deploy — Protocol Buffer validations catch errors in seconds, not minutes
  • Zero abstraction — Provider-specific configs preserve cloud capabilities; consistent experience across all
  • Choose your IaC — Built-in Pulumi and Terraform/OpenTofu modules with feature parity
  • Build on top — Auto-generated SDKs in Go, Python, TypeScript, Java from Protocol Buffer definitions

Quick Start

1. Install the CLI

brew install plantonhq/tap/openmcf

2. Create a YAML Manifest

Example: Deploy PostgreSQL to Kubernetes using the KubernetesPostgres deployment component.

apiVersion: kubernetes.openmcf.org/v1
kind: KubernetesPostgres
metadata:
  name: my-first-postgres
  labels:
    openmcf.org/provisioner: pulumi
    pulumi.openmcf.org/organization: organization
    pulumi.openmcf.org/project: getting-started
    pulumi.openmcf.org/stack.name: dev
spec:
  namespace:
    value: my-first-postgres
  createNamespace: true
  container:
    replicas: 1
    resources:
      requests:
        cpu: 50m
        memory: 100Mi
      limits:
        cpu: 500m
        memory: 512Mi
    diskSize: 1Gi

You can create similar manifests for AWS VPC, GKE Cluster, Kafka on Kubernetes, and many more.

3. Deploy

# Unified command (auto-detects provisioner from manifest labels)
openmcf apply -f postgres.yaml

# Or use IaC-specific commands directly
openmcf pulumi up -f postgres.yaml
openmcf tofu apply -f postgres.yaml

CLI Overview

openmcf
├── apply / destroy / plan      Unified commands (provisioner auto-detected)
├── pulumi                      Pulumi-specific commands (init, preview, up, destroy, refresh)
├── tofu                        OpenTofu commands (init, plan, apply, destroy, refresh)
├── terraform                   Terraform commands (init, plan, apply, destroy, refresh)
├── validate                    Validate manifest against protobuf schema
├── pull / checkout             Module management
├── config                      CLI configuration
└── version / upgrade           Version management

See the full CLI Reference for all commands, flags, and options.


Learn More


Contributing

Visit CONTRIBUTING.md for information on building OpenMCF from source or contributing improvements.

Also, refer to the Contributor Guide for detailed information about becoming a contributor to OpenMCF.

License

OpenMCF is released under the Apache 2.0 license. You are free to use, modify, and distribute this software in accordance with the license terms.

Acknowledgments

  • Brian Grant & Kubernetes API team for their foundational work on the Kubernetes Resource Model.
  • The Protobuf Team for laying the foundation for a powerful language neutral contract definition language.
  • The Buf Team for their Protobuf tooling—including BSR Docs, BSR SDKs, and ProtoValidate — which collectively democratized protobuf adoption and made this project possible.
  • The Pulumi team for providing a powerful infrastructure as code platform that enables multi-language support.
  • The spf13/cobra team for making building command line tools a bliss.