Configuration Management
That Evolves With Your Infastructure
Pattern-Driven Configuration
Define your infrastructure as code with the expressive power of Jsonnet. Achieve consistency and reduce errors.
Robust Verification
Lint, test, and validate your Patterns before deployment, ensuring they function as intended. Prevent costly downtime.
Flexible Deployment Models
Choose deployment strategies that fit your needs. Push for centralized control, pull for decentralized environments.
Dynamic Automation
Trigger commands and Patterns based on webhooks and events. Streamline workflows and respond rapidly to changes.
Universal Device Access
Securely connect to any device via HTTP-based shell. Manage your entire infrastructure from a centralized interface.
Write Your Configurations Using Real Code
No more YAML, no more Jinja
local makeApp = import '../lib/myorg/makeApp.libsonnet';
local runApp = import '../lib/myorg/runApp.libsonnet';
{
build: [
makeApp(myapp1),
makeApp(myapp2),
],
run: [
runApp(runApp1),
runApp(runApp2),
]
}
Deploy Configurations Once, Read From Many
Manage thousands of devices quickly and efficiently
$ etcha build mypattern.jsonnet mypattern.jwt
$ s3 cp mypattern.jwt s3://mybucket/mypattern.jwt
$ etcha listen
INFO Updating config for myapplication
INFO Always changed write a file [100ms]
Event Driven Automation
Create bespoke webook integrations to quickly prototype or define new workflows
$ etcha listen
INFO Always changed trigger event [1ms]
INFO Changed trigger event [200ms]
INFO Running source myapp for event trigger from ID trigger event