Vai al contenuto

Installazione

Tenax è un chart Helm e un'immagine. L'immagine contiene il binario tenax più i client tool di Postgres 15/16/17 e MySQL 8.4 che i data mover eseguono; lo stesso binario è anche la CLI.

Ottenere l'immagine e il chart

Le release vengono create solo dai tag: un tag v1.2.3 pubblica l'immagine <registry>/tenax/tenax:v1.2.3, il chart tenax:1.2.3 (OCI) e i binari della CLI per Linux e macOS nella release GitHub. Da main non viene pubblicato nulla.

helm install tenax oci://registry.example.com/helm/tenax --version 1.2.3 -n tenax-system --create-namespace \
  -f values.yaml

Da un checkout, helm install tenax charts/tenax … funziona allo stesso modo.

Valori minimi

values.yaml
image:
  repository: registry.example.com/tenax/tenax
  tag: v1.2.3
  pullSecrets: [registry-pull]        # also copied into sandbox namespaces
targetNamespaces: [team-a, team-b]    # where BackupTargets and their tenax-* secrets live
examplePolicies:                      # prod, dev and critical presets in tenax-system
  enabled: true
  store: main
metrics:
  serviceMonitor: { enabled: true }
  prometheusRule: { enabled: true }
  grafanaDashboard: { enabled: true }

Tenax non include valori predefiniti specifici di un'organizzazione: ogni endpoint, hostname e credenziale li imposti tu (ADR 0002). Tutti i valori: Valori Helm.

Autenticazione ed esposizione

Entrambe sono modulari e disattivate per impostazione predefinita.

Impostazione Valori Cosa fa
auth.provider none · cloudflare-access none: ogni richiesta alla console riceve auth.devRole (la console si raggiunge solo tramite tenax console, un kubectl port-forward). cloudflare-access: verifica il JWT di Cloudflare Access a ogni richiesta e associa utenti e gruppi ai ruoli; i port-forward ricevono auth.portForwardRole.
auth.roles viewer · operator · restorer · restorer-admin Chi può guardare, eseguire backup e ripristinare in una sandbox, ripristinare in un nuovo database o in un download, e ripristinare sul posto o bloccare backup.
expose.provider none · service · cloudflare Come si raggiungono le sandbox dall'esterno del cluster: none, tenax sandbox connect fa un port-forward tramite il kubeconfig; service, un Service Kubernetes per sandbox (load balancer, MetalLB, Tailscale, external-dns) a cui qualsiasi client di database si connette via TLS; cloudflare, un tunnel dietro un login di Access. Vedi Sandbox.
expose.cloudflared.enabled true / false Con cloudflare: esegue il connettore cloudflared per le route delle sandbox (e per la console, se consoleHostname è impostato).

Vedi Console, CLI e accesso per i dettagli.

Cosa viene installato

Oggetto Scopo
6 CRD BackupStore, BackupPolicy, BackupTarget, Backup, Restore, Sandbox (riferimento)
Deployment tenax-controller (2 repliche, leader election) pianifica i backup, esegue streamer, ripristini, sandbox, verifiche e garbage collection
Deployment tenax-api (2 repliche) e Service la console, l'API JSON e i server-sent events
RBAC lettura a livello di cluster delle risorse Tenax; per ogni namespace dei target, lettura dei soli secret tenax-*
PrometheusRule, ServiceMonitor, dashboard Grafana facoltativi, vedi Monitoraggio

I pod girano come non-root con un root filesystem in sola lettura, senza privilege escalation e con tutte le capability rimosse. I dati si spostano solo nei Job (mover, restorer) e nei Deployment streamer per target; il controller e l'API non trasportano mai dati di backup.

Aggiornamenti

helm upgrade sostituisce i CRD (installCRDs: true) e aggiorna il controller e l'API. I backup in corso terminano o vengono ritentati: ogni percorso dei dati è crash-only, e un backup esiste solo quando il suo manifest è stato scritto.