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 (planned rename: ruck) 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.
Quick Start
pipx install xyz-strata # install
strata sln init # scaffold a new config workspace
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 Getting Started guide for the full walkthrough. Dev install: uv sync.
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
Release history Release notifications | RSS feed
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 xyz_strata-0.0.2.tar.gz.
File metadata
- Download URL: xyz_strata-0.0.2.tar.gz
- Upload date:
- Size: 277.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a66435f1fd07a7807eec0ada668f5147f2c4d51a2f7b5f2a71e634a8dafc5fc
|
|
| MD5 |
a2807d343b93c680157526e94bc090ca
|
|
| BLAKE2b-256 |
4d7c773aa46e021bdb574eaa0f2f7136002863e00a31bc8a90c901ef1272c054
|
File details
Details for the file xyz_strata-0.0.2-py3-none-any.whl.
File metadata
- Download URL: xyz_strata-0.0.2-py3-none-any.whl
- Upload date:
- Size: 380.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.15 {"installer":{"name":"uv","version":"0.11.15","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8f5839fffc789889611671454321fc47c1ee0982ebbe8860d24e7bfbf8b999f
|
|
| MD5 |
3e29aa829e71b844378a936e2b1d0240
|
|
| BLAKE2b-256 |
b18b9209555a596cafac249a802605de1a3a8bd43f6e265e1505967849e92ff9
|