Skip to main content

CloudBrew: vendor-neutral cloud orchestration CLI

Project description

CloudBrew

CloudBrew is a next-generation, vendor-neutral cloud orchestration CLI. It abstracts Infrastructure-as-Code 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.
  • Infrastructure Support: Built-in adapters for OpenTofu and Pulumi for seamless orchestration and unified workflows across 2 IaC engines.
  • 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.json before 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+

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 task 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.

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

cloudbrew-1.2.0.tar.gz (48.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cloudbrew-1.2.0-py3-none-any.whl (53.9 kB view details)

Uploaded Python 3

File details

Details for the file cloudbrew-1.2.0.tar.gz.

File metadata

  • Download URL: cloudbrew-1.2.0.tar.gz
  • Upload date:
  • Size: 48.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for cloudbrew-1.2.0.tar.gz
Algorithm Hash digest
SHA256 7095ee479d1528699d287bf3388fb0da8b430057b6becb5d97bf95c2b8b6f6d7
MD5 e1e6469786c113c2cb4f6b353b537270
BLAKE2b-256 50165bf93c67d2584c045ca1c297ccf5401616daf8a9d77582338cd5b63d2e12

See more details on using hashes here.

File details

Details for the file cloudbrew-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: cloudbrew-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 53.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for cloudbrew-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 21732783a6d538023e59c01d82ec731b6f29bf2fdcbaadb10a710afa3818766a
MD5 7651fe9f46daaa20f0087d5e68575160
BLAKE2b-256 f0f660e6427dd5b73a83de2d8f3279f3f1e4b2dfcf5707b234e41143e6a1bbfc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page