Passa al contenuto principale

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)​

CampoTipoPredefinitoSignificato
storeStoreRef or nullnullIl plugin dello store e la sua variabile DSN; assente significa nessun dato durevole.
brokerBrokerRef or nullnullIl plugin del broker e la sua variabile URL; un broker ha bisogno di uno store durevole.
tracerTracerRef or nullnullDove si riportano le corse; assente significa che nulla viene tracciato.
workDirstr~/.afe-workDove vivono i cloni e i worktree; ~ viene espanso.
sandboxSandboxRefSandboxRef()Il plugin della sandbox che apre un flow che esegue comandi.

StoreRef (spec.store)​

CampoTipoPredefinitoSignificato
typestrrequiredIl tipo del plugin dello store, es. postgres.
dsnEnvstrrequiredLa variabile d'ambiente che contiene la stringa di connessione.

BrokerRef (spec.broker)​

CampoTipoPredefinitoSignificato
typestrrequiredIl tipo del plugin del broker, es. redis.
urlEnvstrrequiredLa variabile d'ambiente che contiene l'URL del broker.

TracerRef (spec.tracer)​

CampoTipoPredefinitoSignificato
typelangfuse or otlprequiredIl tipo del plugin del tracer.
hostEnvstr or nullnulllangfuse: la variabile che contiene l'host.
publicKeyEnvstr or nullnulllangfuse: la variabile che contiene la chiave pubblica.
secretKeyEnvstr or nullnulllangfuse: la variabile che contiene la chiave segreta.
endpointEnvstr or nullnullotlp: la variabile che contiene l'endpoint del collector.
headersEnvstr or nullnullotlp: la variabile che contiene gli header dell'exporter.

SandboxRef (spec.sandbox)​

CampoTipoPredefinitoSignificato
typestrdockerIl tipo del plugin della sandbox.
namespacestrafe-sandboxKubernetes: la namespace in cui vivono i Pod e i PVC dei ticket.
storageClassstr or nullnullKubernetes: lo storageClassName del PVC; non impostato significa il default del cluster.
storagestr2GiKubernetes: la dimensione richiesta del PVC, es. 5Gi; indipendente dal limite di memoria.
runtimeClassNamestr or nullnullKubernetes: il runtimeClassName del Pod, es. kata; non impostato significa runc. gVisor è rifiutato (netlock richiede netfilter).
envSecretstr or nullnullKubernetes: 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.