<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Keystone</title><link>https://carlosprados.github.io/keystone/index.html</link><description>A lightweight edge orchestration agent. Processes first, containers when needed.</description><generator>Hugo</generator><language>en</language><atom:link href="https://carlosprados.github.io/keystone/index.xml" rel="self" type="application/rss+xml"/><item><title>Basics</title><link>https://carlosprados.github.io/keystone/basics/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://carlosprados.github.io/keystone/basics/index.html</guid><description>Start here. What Keystone is, the four words you need, how to install it, and your first deployment on your own machine.
What is Keystone?
The problem it solves, and what it deliberately is not.
The four words
Recipe, plan, component, agent — everything else is detail.
Install
Get the binaries, or build them from source.
Your first deployment
A two-component stack on your own machine, start to finish. {class=“children children-type-flat children-sort-”}</description></item><item><title>Core concepts</title><link>https://carlosprados.github.io/keystone/concepts/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://carlosprados.github.io/keystone/concepts/index.html</guid><description>The model Keystone works with: what you write, what it builds from it, and the rules it follows when reality and your plan disagree.
Recipes
The complete recipe format, field by field.
Plans
The device's desired state, and how applying one works.
Dependencies
Start order, restart cascades, and the three dependency types.
Component state
What each state means, and the liveness guarantees you can rely on.
Reconcile and reuse
Why re-applying a plan does not restart your stack.</description></item><item><title>Examples</title><link>https://carlosprados.github.io/keystone/examples/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://carlosprados.github.io/keystone/examples/index.html</guid><description>Complete, copy-pasteable deployments: the recipes, the plan, and the exact calls to get them onto a device over each control plane.
Everything here uses one fictional stack, built up across the pages: a time-series database, an HTTP API that depends on it, a telemetry agent, and a static web front end in a container. It is deliberately the shape of a real edge deployment rather than a hello-world.
A service from a GitHub release</description></item><item><title>How it works inside</title><link>https://carlosprados.github.io/keystone/internals/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://carlosprados.github.io/keystone/internals/index.html</guid><description>What the agent is made of, and what actually happens between “plan received” and “everything running”.
Architecture
The three interfaces the whole design hangs from.
Supervisor
The state machine and the layered, parallel start.
Runners
How processes and containers are actually started, watched and stopped.
Artifacts
Downloading, verifying and caching, on a network that drops.
State and recovery
What survives a reboot, and what happens when the agent is killed. {class=“children children-type-flat children-sort-”}</description></item><item><title>Security</title><link>https://carlosprados.github.io/keystone/security/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://carlosprados.github.io/keystone/security/index.html</guid><description>Keystone runs arbitrary software on machines you cannot physically reach. The security model is therefore not decoration — this chapter is the part to read before a device leaves your desk.
Secure by default
What is locked down out of the box, and the one escape hatch.
Signing
How trust reaches the device, and how to set it up.
API authentication
Why the agent refuses to listen on 0.0.0.0 without a token.</description></item><item><title>Control planes</title><link>https://carlosprados.github.io/keystone/control-planes/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://carlosprados.github.io/keystone/control-planes/index.html</guid><description>Three ways to drive the same agent. They are adapters over one shared CommandHandler, so any of them can do anything the others can — no feature drifts between transports.
Adapter Best for On by default HTTP Local management, debugging, Prometheus yes (loopback) MQTT IoT platforms, constrained devices, existing brokers no You can run several at once — HTTP on loopback for local debugging while MQTT carries fleet commands is a common combination:</description></item><item><title>Operations</title><link>https://carlosprados.github.io/keystone/operations/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://carlosprados.github.io/keystone/operations/index.html</guid><description>Running Keystone on real devices: what to watch, what to do when something is wrong, and how to install it properly.
Metrics and alerting
What Keystone exports, and the alerts actually worth having.
Troubleshooting
Symptoms, causes and the log line that tells you which.
Running under systemd
A hardened unit, and why the agent is confined too. {class=“children children-type-flat children-sort-”}</description></item><item><title>Reference</title><link>https://carlosprados.github.io/keystone/reference/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://carlosprados.github.io/keystone/reference/index.html</guid><description>Flags, environment variables, endpoints and the full TOML schemas. Look things up here; the reasoning lives in the other chapters.
Agent flags
Every flag the keystone agent accepts.
keystonectl
The command-line client: every command, its flags, and how to reach an agent over SSH.
Environment variables
Every KEYSTONE_* variable, grouped by what it affects.
HTTP API
Endpoints, parameters and response shapes.
TOML cheat sheet
The four constructs every recipe and plan is made of, and where a misspelled field shows up.</description></item></channel></rss>