controller

command
v1.20.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 7, 2026 License: AGPL-3.0 Imports: 35 Imported by: 0

Documentation

Overview

Command shardkeep runs the Shardkeep Controller: the control plane that owns desired state, serves the web UI and public API, and manages Agents.

Directories

Path Synopsis
internal
admin
Package admin implements the Controller's command-line administration: creating the first administrator on a fresh install and recovering an account whose owner is locked out.
Package admin implements the Controller's command-line administration: creating the first administrator on a fresh install and recovering an account whose owner is locked out.
agentsvc
Package agentsvc serves the Controller side of the Agent protocol: enrollment on its own listener, and (from the session milestone) the mTLS session every enrolled Agent holds open.
Package agentsvc serves the Controller side of the Agent protocol: enrollment on its own listener, and (from the session milestone) the mTLS session every enrolled Agent holds open.
api
Package api serves the Controller's public REST API, /api/v1.
Package api serves the Controller's public REST API, /api/v1.
api/apigen
Package apigen provides primitives to interact with the openapi HTTP API.
Package apigen provides primitives to interact with the openapi HTTP API.
artifacts
Package artifacts keeps the Controller's cache of software artifacts (server jars): files in the data directory named by their SHA-256, with a database record of what each one is.
Package artifacts keeps the Controller's cache of software artifacts (server jars): files in the data directory named by their SHA-256, with a database record of what each one is.
auth
Package auth holds the credential building blocks: Argon2id password hashing, random tokens stored only as hashes, and login rate limiting.
Package auth holds the credential building blocks: Argon2id password hashing, random tokens stored only as hashes, and login rate limiting.
ca
Package ca is the Controller's certificate authority.
Package ca is the Controller's certificate authority.
catalog
Package catalog answers the Controller's software questions from the stored catalog snapshot (synced and verified by catalogsync): which versions of a template exist, and which build, download URL and published checksum a version resolves to.
Package catalog answers the Controller's software questions from the stored catalog snapshot (synced and verified by catalogsync): which versions of a template exist, and which build, download URL and published checksum a version resolves to.
catalogsync
Package catalogsync keeps the Controller's copy of the central catalog: it fetches the signed snapshot index, verifies it against the trusted keys, refuses anything not newer than what it has, checks every object's hash and size, and stores the snapshot in one transaction.
Package catalogsync keeps the Controller's copy of the central catalog: it fetches the signed snapshot index, verifies it against the trusted keys, refuses anything not newer than what it has, checks every object's hash and size, and stores the snapshot in one transaction.
domain
Package domain holds the Controller's core types and the rules of the state machines in docs/design.md.
Package domain holds the Controller's core types and the rules of the state machines in docs/design.md.
localnode
Package localnode enrolls the Agent bundled with a Controller (the Compose install's) without anyone copying a token: the Controller creates that Node and keeps a fresh enrollment token in a file only the bundled Agent shares, until the Node is enrolled.
Package localnode enrolls the Agent bundled with a Controller (the Compose install's) without anyone copying a token: the Controller creates that Node and keeps a fresh enrollment token in a file only the bundled Agent shares, until the Node is enrolled.
provision
Package provision runs the PROVISIONING workflow's asynchronous part: placement and reservation happen when a server is created; this worker resolves the server's software to an exact build, makes sure the artifact is in the Controller's cache, records it on the server and pushes the spec to the Node.
Package provision runs the PROVISIONING workflow's asynchronous part: placement and reservation happen when a server is created; this worker resolves the server's software to an exact build, makes sure the artifact is in the Controller's cache, records it on the server and pushes the spec to the Node.
store
Package store persists the Controller's state in PostgreSQL: desired state, observed state and history.
Package store persists the Controller's state in PostgreSQL: desired state, observed state and history.
store/storetest
Package storetest runs integration tests against a real PostgreSQL.
Package storetest runs integration tests against a real PostgreSQL.
tlsserve
Package tlsserve provides the TLS configuration for the Controller's web UI and API.
Package tlsserve provides the TLS configuration for the Controller's web UI and API.
transfers
Package transfers runs the workflows that move data into a server: restoring a backup in place or as a new server, migrating a server to another Node, and cloning parts of one server into another.
Package transfers runs the workflows that move data into a server: restoring a backup in place or as a new server, migrating a server to another Node, and cloning parts of one server into another.
webui
Package webui serves the web UI (web/, built into build/app) embedded in the Controller binary: static files with long-lived caching for hashed names, index.html for the app's own routes, and a strict Content Security Policy with a fresh nonce for every page load.
Package webui serves the web UI (web/, built into build/app) embedded in the Controller binary: static files with long-lived caching for hashed names, index.html for the app's own routes, and a strict Content Security Policy with a fresh nonce for every page load.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL