Runtime
Usa questa pagina per consultare store, broker, tracing, directory di lavoro e sandbox durevoli.
Il manifest Runtime
Un solo Runtime per cartella di configurazione nomina il plugin dello store e quello del broker,
con le variabili d'ambiente che contengono le stringhe di connessione. Un Runtime può invece
impostare solo workDir, sandbox o tracer — una corsa locale non ha bisogno di uno store:
apiVersion: afe.dev/v1alpha1
kind: Runtime
metadata:
name: prod
spec:
store:
type: postgres
dsnEnv: AFE_POSTGRES_DSN
broker:
type: redis
urlEnv: AFE_REDIS_URL
type nomina la porta stores o brokers di un plugin; dsnEnv/urlEnv nominano le variabili
d'ambiente, mai i loro valori. Le stringhe di connessione si leggono all'avvio e non compaiono mai
in un errore, in un log o in un evento. Uno store o un broker sconosciuto, una variabile vuota o una
connessione fallita fermano il processo prima che parta un ticket. Un broker senza uno store è
un errore di validazione: la coda e il lock hanno bisogno di uno store durevole.
export AFE_POSTGRES_DSN="postgresql://afe:afe@127.0.0.1:5434/afe"
export AFE_REDIS_URL="redis://127.0.0.1:6381/0"
afe serve -c ./config
afe worker -c ./config
Senza un Runtime il motore usa gli adattatori in memoria, esattamente come in V4, e
afe run --local fa girare un ticket nel suo processo.
Campi
RuntimeSpec (spec)
| Campo | Tipo | Predefinito | Significato |
|---|---|---|---|
store | StoreRef or null | null | Il plugin dello store e la sua variabile DSN; assente significa nessun dato durevole. |
broker | BrokerRef or null | null | Il plugin del broker e la sua variabile URL; un broker ha bisogno di uno store durevole. |
tracer | TracerRef or null | null | Dove si riportano le corse; assente significa che nulla viene tracciato. |
workDir | str | ~/.afe-work | Dove vivono i cloni e i worktree; ~ viene espanso. |
sandbox | SandboxRef | SandboxRef() | Il plugin della sandbox che apre un flow che esegue comandi. |
StoreRef (spec.store)
| Campo | Tipo | Predefinito | Significato |
|---|---|---|---|
type | str | required | Il tipo del plugin dello store, es. postgres. |
dsnEnv | str | required | La variabile d'ambiente che contiene la stringa di connessione. |
BrokerRef (spec.broker)
| Campo | Tipo | Predefinito | Significato |
|---|---|---|---|
type | str | required | Il tipo del plugin del broker, es. redis. |
urlEnv | str | required | La variabile d'ambiente che contiene l'URL del broker. |
TracerRef (spec.tracer)
| Campo | Tipo | Predefinito | Significato |
|---|---|---|---|
type | langfuse or otlp | required | Il tipo del plugin del tracer. |
hostEnv | str or null | null | langfuse: la variabile che contiene l'host. |
publicKeyEnv | str or null | null | langfuse: la variabile che contiene la chiave pubblica. |
secretKeyEnv | str or null | null | langfuse: la variabile che contiene la chiave segreta. |
endpointEnv | str or null | null | otlp: la variabile che contiene l'endpoint del collector. |
headersEnv | str or null | null | otlp: la variabile che contiene gli header dell'exporter. |
SandboxRef (spec.sandbox)
| Campo | Tipo | Predefinito | Significato |
|---|---|---|---|
type | str | docker | Il tipo del plugin della sandbox. |
namespace | str | afe-sandbox | Kubernetes: la namespace in cui vivono i Pod e i PVC dei ticket. |
storageClass | str or null | null | Kubernetes: lo storageClassName del PVC; non impostato significa il default del cluster. |
storage | str | 2Gi | Kubernetes: la dimensione richiesta del PVC, es. 5Gi; indipendente dal limite di memoria. |
runtimeClassName | str or null | null | Kubernetes: il runtimeClassName del Pod, es. kata; non impostato significa runc. gVisor è rifiutato (netlock richiede netfilter). |
envSecret | str or null | null | Kubernetes: la Secret da cui un nome env si risolve, per chiave; richiesta quando un progetto dichiara sandbox.env. |
Su Kubernetes i nomi in sandbox.env di un progetto si risolvono da envSecret (un
secretKeyRef per nome, mai un valore nel Pod spec), quindi un progetto con nomi env e senza
envSecret viene rifiutato. Gli altri campi li imposta l'operatore in V7c; un progetto git prende
sempre la sandbox Kubernetes.
Vedi anche
- Project per workspace e sandbox del progetto.
- Operations per endpoint di salute e metriche.