ReferințăReference
Cum funcționeazăHow it works
Keryn este un compilator și un executant: compilează keryn.yaml în obiecte Kubernetes deterministe și le aplică prin SSH, doar cu aprobare.
Keryn is a compiler and an executor: it compiles keryn.yaml into deterministic Kubernetes objects and applies them over SSH, only with approval.
StraturiLayers
| Strat | Componentă |
|---|---|
| Specificație | keryn.yaml, validat și normalizat |
| Generare | obiecte Kubernetes deterministe, cu amprentă |
| Execuție | SSH către gazde; aplicare pe server cu simulare prealabilă |
| Grup | k3s, Traefik, cert-manager, WireGuard opțional |
| Layer | Component |
|---|---|
| Spec | keryn.yaml, validated and normalised |
| Rendering | deterministic Kubernetes objects, with a digest |
| Execution | SSH to hosts; server-side apply with a prior dry run |
| Cluster | k3s, Traefik, cert-manager, optional WireGuard |
Obiectele generateGenerated objects
| Obiect | Când | Rol |
|---|---|---|
| Namespace | mereu | spațiu de nume cu Pod Security restricted |
| NetworkPolicy | mereu | refuz implicit, plus excepții: același spațiu de nume, controlerul de intrare, emiterea certificatelor |
| Deployment | aplicație permanentă | replici întărite, răspândite pe gazde |
| Service | aplicație cu port | adresă internă stabilă |
| PodDisruptionBudget | replici > 1 | minimum o replică activă |
| Ingress | domenii | HTTPS prin Traefik și cert-manager |
| PersistentVolumeClaim | volume | disc persistent |
| CronJob | schedule | execuție periodică |
| ClusterIssuer | tls.email | emitenți Let’s Encrypt de producție și de probă |
| Object | When | Role |
|---|---|---|
| Namespace | always | namespace with Pod Security restricted |
| NetworkPolicy | always | default deny, plus exceptions: same namespace, ingress controller, certificate issuance |
| Deployment | long-running app | hardened replicas, spread across hosts |
| Service | app with a port | stable internal address |
| PodDisruptionBudget | replicas > 1 | at least one replica running |
| Ingress | domains | HTTPS via Traefik and cert-manager |
| PersistentVolumeClaim | volumes | persistent disk |
| CronJob | schedule | periodic execution |
| ClusterIssuer | tls.email | Let’s Encrypt production and staging issuers |
AplicareaApplying
- Manifestul este încărcat pe server.
- Se asigură spațiul de nume, apoi se rulează o simulare pe serverul Kubernetes.
- Doar dacă simularea trece, obiectele se aplică efectiv.
- Keryn așteaptă finalizarea fiecărei actualizări și raportează rezultatul.
- The manifest is uploaded to the server.
- The namespace is ensured, then a dry run runs on the Kubernetes server.
- Only if the dry run passes are the objects actually applied.
- Keryn waits for each rollout to finish and reports the result.
EticheteLabels
Toate obiectele poartă app.kubernetes.io/managed-by: keryn-fleet și keryn.ma11ai.com/project, ca să poată fi găsite și auditate.
Every object carries app.kubernetes.io/managed-by: keryn-fleet and keryn.ma11ai.com/project, so it can be found and audited.