Skip to main content

Python infrastructure platform for managing VM workspaces and clusters to deploy and maintain an automated container orchestration platform.

Project description

strata

You already have Terraform. The problem is you have eight environment folders — dev, staging, prd, prd-eu, prd-us, dr, sandbox, perf — and they are 90% identical. Every change gets applied to one folder, forgotten in three others, and you only find out when production drifts. strata is a YAML config layer over Terraform, Helm, and scripts that treats your environments as data, not as copy-pasted folders. One source of truth, one command to validate it, one command to deploy it.

📖 Full documentation

Support: GitHub Issues


Quick Start

pipx install xyz-strata                        # install
strata sln init                                             # scaffold a new config workspace
strata console                                              # interactive guided session
strata validate --file stack/my-environment.yaml        # validate before you touch anything
strata deploy run --file deploy/my-environment.yaml     # deploy to the target environment

New here? See the feature overview for a practical rundown of what strata does, or the Getting Started guide for the full walkthrough. Run strata --help to see all commands. Dev install: uv sync.

No PyPI access? Using a Dev Container? Inject strata from the published image — no Python install required:

# .devcontainer/Dockerfile
FROM mcr.microsoft.com/devcontainers/base:ubuntu-24.04
COPY --from=ghcr.io/huybrechtsxyz/strata:latest /app/.venv /opt/strata
ENV PATH="/opt/strata/bin:$PATH"

See the Getting Started guide for the full devcontainer and air-gapped registry setup.


Automation & AI Agents

Set STRATA_OUTPUT=json once (or strata config set output json) and every command returns a structured JSON envelope on stdout:

{
  "success": true,
  "command": "validate",
  "execution_id": "fb063135-...",
  "timestamp": "2026-05-18T14:31:47.267924",
  "data": { "validation_passed": true, "errors": [] },
  "messages": [],
  "errors": []
}

Key conventions for automation:

Concern Guidance
Output format Always use --output json or STRATA_OUTPUT=json
Exit codes 0 success · 1 system failure · 2 bad args · 3 validation failure
Workspace Set STRATA_WORK_PATH to target a workspace without cd
Error stream In console mode, errors go to stderr; structured JSON always goes to stdout
Execution correlation execution_id in the envelope maps directly to strata audit list --execution-id <id>
Env-var overrides Every CLI flag has an XYZ_<OPTION> equivalent (STRATA_VERBOSE=true, STRATA_QUIET=true, …)

Safe read-only commands that work outside an initialized workspace (INIT_REQUIRED=False): validate, status, schema list, schema get.


License

GNU Affero General Public License v3.0 — see LICENSE.

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

xyz_strata-0.13.0.tar.gz (523.6 kB view details)

Uploaded Source

Built Distribution

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

xyz_strata-0.13.0-py3-none-any.whl (720.1 kB view details)

Uploaded Python 3

File details

Details for the file xyz_strata-0.13.0.tar.gz.

File metadata

  • Download URL: xyz_strata-0.13.0.tar.gz
  • Upload date:
  • Size: 523.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for xyz_strata-0.13.0.tar.gz
Algorithm Hash digest
SHA256 8d04cdf5021a830b29ec4b86bcb3d7cb20390c0dcf24798234edde4d7b3a6efb
MD5 0b7205f459cae0cd7c4c6e0a3f9da9ce
BLAKE2b-256 ace4ce2ec2c1d7bf9c61921082806a306886d33e8f105e260458068ce4a8d9c5

See more details on using hashes here.

File details

Details for the file xyz_strata-0.13.0-py3-none-any.whl.

File metadata

  • Download URL: xyz_strata-0.13.0-py3-none-any.whl
  • Upload date:
  • Size: 720.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.24 {"installer":{"name":"uv","version":"0.11.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for xyz_strata-0.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 23fe465149e717d1a62f25dfa6d7ca70bb247886eb5a1ddc66497c9c59e882a1
MD5 562330d65b8c3a2de5a91985d68ffbc9
BLAKE2b-256 f4ca07e3ea08ad9dfabefb6bd8b17a563554151ca03f06399f22408ca7e05f3c

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