CloudBrew: vendor-neutral cloud orchestration CLI
Project description
CloudBrew
CloudBrew is a next-generation, vendor-neutral cloud orchestration CLI. It abstracts Infrastructure-as-Code (Terraform, Pulumi) behind a unified, intelligent interface that handles routing, policy enforcement, autoscaling, and task offloading.
Stop writing boilerplate HCL or YAML for every resource. Just brew it.
Key Features
- Intelligent Routing: Automatically decides whether to provision resources via a Hot Pool (L1), Warm Pool (L2), or perform a Cold Build (L3) based on latency and availability.
- Universal Adapters: Seamlessly wraps Terraform and Pulumi. Switch providers (AWS, Azure, GCP, Noop) with a single flag.
- Dynamic Autoscaling: Built-in logic to scale resources based on custom metrics (e.g.,
1:5@cpu:70) with cooldown handling. - Governance & Policy: Enforce constraints (Allowed Regions, Cost Budgets, Instance Types) via
policies.jsonbefore infrastructure is touched. - Stack Blueprints: Deploy complex architectures (e.g., LAMP, K8s clusters) using Jinja2-templated blueprints.
- Drift Detection: Detect manual changes in your cloud environment against your local state.
- async Task Offloading: Heavy provisioning tasks can be offloaded to a background SQLite-backed worker queue.
Installation
Prerequisites
- Python 3.9+
- (Optional) Terraform or Pulumi installed on your system PATH.
Install via Pip
pip install cloudbrew
Intelligent Provisioning (Smart Router)
Let the Intelligent Router decide the best way to provision (Hot Cache vs Cold Build) and find the cheapest spot prices.
cloudbrew create-vm worker-node --smart --yes
Dynamic Resource Resolution
CloudBrew uses fuzzy matching to find resources. You don't need to remember exact provider resource names.
# CloudBrew resolves "bucket" to "aws_s3_bucket" or "google_storage_bucket"
cloudbrew bucket my-data-lake --region us-east-1
Deploying Stacks
Deploy multi-resource environments using blueprints.
# List available stacks
cloudbrew stacks
# Deploy a LAMP stack
cloudbrew stack deploy lamp my-web-app --env prod --region us-east-1
Autoscaling
Apply autoscaling policies to your resources using the compact syntax: min:max@metric:threshold.
# Scale 'web-worker' between 1 and 5 instances.
# Scale up if CPU > 70%, with a 60s cooldown.
cloudbrew create --name web-worker --autoscale "1:5@cpu:70,60" --spec examples/spec.json
Offloading Tasks (Async)
Don't wait for Terraform to finish. Offload the task to a background worker.
# 1. Enqueue the task
cloudbrew create-vm heavy-db --size large --async
# 2. Run the worker (in a separate terminal)
cloudbrew offload run-worker
Drift Detection
Check if your infrastructure has drifted from the known state.
cloudbrew drift web-server-01
Policy Enforcement
CloudBrew checks policies.json before every operation.
{
"allowed_regions": ["us-east-1", "eu-central-1"],
"banned_instance_types": ["xlarge", "metal"],
"max_monthly_cost": 500
}
If you try to create an xlarge instance or deploy to us-west-1, the CLI will block the operation and report a violation
Architecture
CLI Layer (Typer): Parses commands and routes them.
Logic Layer (LCF):
1. Intelligent Router: Optimizes placement.
2. Resource Resolver: Maps intent ("bucket") to implementation.
3. Policy Engine: Validates specs against rules.
Adapter Layer:
1. TerraformAdapter: Generates HCL, manages state, streams output.
2. PulumiAdapter: Uses Automation API.
3. State Layer: SQLite (cloudbrew.db) acts as the state of truth for the orchestration logic.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cloudbrew-1.0.0.tar.gz.
File metadata
- Download URL: cloudbrew-1.0.0.tar.gz
- Upload date:
- Size: 45.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
178611eddb34f113ab573f62c507ca9de32e5c2f7954a109bbcc2619db3dd65e
|
|
| MD5 |
9786b2971dc054427fcafdb372b0d96d
|
|
| BLAKE2b-256 |
e68ee2430445f7718b50f6f276b4ab50881742bee8fa0295abcfacf1fb378a7a
|
File details
Details for the file cloudbrew-1.0.0-py3-none-any.whl.
File metadata
- Download URL: cloudbrew-1.0.0-py3-none-any.whl
- Upload date:
- Size: 52.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97d8e87da9605c2b0e62e4811bf7844bdbc884356c4b96bbe57f52bea7226489
|
|
| MD5 |
feb5ddd14cf32f19d6e500b87fed73a9
|
|
| BLAKE2b-256 |
c039576f37f1d7cd6efe8e11fa8b04fc5ff0f2708d901899279dab546a66b6f0
|