Ichor
Ichor manages Talos Linux clusters from Kubernetes.
Nodes, machine configuration, upgrades and etcd backups are Kubernetes
resources, and you work with them through the ichor CLI, the ichor-ui web UI,
or by writing the resources yourself.
Status: alpha (v0.1.0). Exercised end to end on Talos v1.14 test clusters, not yet on bare metal.
The commands in these docs are written as if their tools are on your PATH.
Run nix develop in a checkout to get them all, or install them yourself:
Before you begin lists which and
at what versions.
What Ichor manages
- Clusters and machines. A node that sits in Talos maintenance mode is discovered, approved by a person in the UI or the CLI, installed and joined to a cluster. Existing Talos clusters can be adopted, and machines that another cluster configured can be reclaimed. See Clusters and machines.
- Machine configuration. Patches are typed resources built on the Talos machinery types, with no raw YAML. The controller renders and applies them and reports drift.
- Operations. Talos, Kubernetes and Ichor upgrades, reboot-requiring
configuration changes, node actions, shutdown, etcd restore, and rotation of
CAs and keys are
TalosOperationresources that run one node at a time with etcd quorum in mind. See Operations and CA and key rotation. - etcd backups. Scheduled or on-demand, encrypted, stored in S3-compatible storage; restore into a running cluster, or rebuild a cluster from the secrets bundle and a snapshot alone.
- Cilium. The only CNI Ichor supports, kept as a Helm release. It is the one thing Ichor installs on the cluster besides itself. See CNI and Cilium.
Ichor does not boot machines (get them to maintenance mode by ISO, PXE or whatever you like), does not manage storage or monitoring, knows nothing about GitOps tools, and does not target air-gapped installs.
How the pieces fit
Ichor runs inside the cluster it manages, and every change goes through the Kubernetes API as a custom resource.
| Piece | Role |
|---|---|
| Custom resources | The API. TalosCluster, TalosMachine, TalosConfigPatch, TalosOperation, TalosEtcdBackup, TalosStorage, MachineReclaim, TalosCredentialRequest, IchorInstallation and IchorUser. See the CRD reference. |
ichor-controller | The only component that writes to Talos nodes. It reconciles the resources, keeps the state machine of long-running work in resource status, and never changes spec. |
ichor CLI | Bootstraps the first node (ichor init), adopts existing clusters, and does everything the UI does. See the CLI reference. |
ichor-ui | A Preact web UI with its Go backend. It changes the world only by writing resources, reads node state from the Talos API read-only, and holds no CA key. |
Every write, from the UI, the CLI or your own tooling, is a change to a custom resource, so validation, RBAC and audit are the same whichever way it arrived. The design is in the architecture document, and every decision is recorded.
What is in v0.1.0
- Discovery and approval of machines, with NIC, addressing and disk roles set at approval.
- Typed machine configuration with drift reporting, and reboot-requiring changes rolled out as one operation.
- Talos, Kubernetes, Cilium and Ichor upgrades, with the pause on failure and
resumemodel described in Operations. A first install uses Talos v1.14.5, Kubernetes v1.36.6 and Cilium 1.20.4. - CA rotation (Talos API, Kubernetes API, and optionally etcd and aggregator) and service-account and secretbox key rotation.
- etcd backup, restore and full-loss recovery.
- Optional Ichor-owned users with the roles viewer, operator and admin, and personal kubeconfigs with no secret in them.
- Admission that enforces the UI's checks on hand-written resources, an admin-only right to change Cilium's values, and an encrypted local secrets bundle. See Security model.
- Typed, off-by-default hardening for the clusters Ichor creates (SecureBoot, kernel lockdown, kubelet serving certificates).
The complete list is in the changelog.
Where to go next
- Getting started: from a build to a one-node cluster and the first sign-in.
- Install with Helm and Adopt and reclaim: install Ichor on an existing cluster, or bring existing Talos machines in.
- Users and login, Settings and Hardening.
- Rotating the service-account and secretbox keys.
- Concepts: Clusters and machines, Operations, CNI and Cilium, Security model, CA and key rotation.
- Reference: every
ichorcommand and every field of every custom resource.