コンテンツにスキップ

インストール

Tenax はひとつの Helm チャートとひとつのイメージです。イメージには tenax バイナリと、データムーバーが実行する Postgres 15/16/17 および MySQL 8.4 のクライアントツールが含まれます。同じバイナリが CLI でもあります。

イメージとチャートを入手する

リリースはタグからのみビルドされます。タグ v1.2.3 により、イメージ <registry>/tenax/tenax:v1.2.3、チャート tenax:1.2.3 (OCI)、そして GitHub リリース上の Linux と macOS 用 CLI バイナリが公開されます。main からは何も公開されません。

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

チェックアウトからは、helm install tenax charts/tenax … で同じようにインストールできます。

最小構成の values

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 には組織固有のデフォルト値はありません。エンドポイント、ホスト名、認証情報はすべて自分で設定します (ADR 0002)。すべての値: Helm values。

認証と公開

どちらもプラグイン方式で、デフォルトでは無効です。

設定 値 動作
auth.provider none · cloudflare-access none: すべてのコンソールリクエストに auth.devRole が付与されます (コンソールには kubectl port-forward である tenax console 経由でのみアクセスします)。cloudflare-access: すべてのリクエストで Cloudflare Access の JWT を検証し、ユーザーとグループをロールに対応付けます。port-forward には auth.portForwardRole が付与されます。
auth.roles viewer · operator · restorer · restorer-admin 閲覧できる人、バックアップとサンドボックスへの復元ができる人、新しいデータベースやダウンロードへ復元できる人、インプレース復元やピン留めができる人。
expose.provider none · service · cloudflare クラスター外からサンドボックスに到達する方法: none では tenax sandbox connect が kubeconfig 経由で port-forward します。service ではサンドボックスごとに Kubernetes Service (ロードバランサー、MetalLB、Tailscale、external-dns) を作り、任意のデータベースクライアントが TLS で接続します。cloudflare では Access ログインの背後のトンネルを使います。サンドボックス を参照してください。
expose.cloudflared.enabled true / false cloudflare の場合: サンドボックスのルート (consoleHostname を設定していればコンソールも) 用に cloudflared コネクターを実行します。

詳しくは コンソール、CLI とアクセス を参照してください。

インストールされるもの

オブジェクト 目的
6 つの CRD BackupStore、BackupPolicy、BackupTarget、Backup、Restore、Sandbox (リファレンス)
tenax-controller Deployment (2 レプリカ、リーダー選出) バックアップのスケジュール、ストリーマー、復元、サンドボックス、検証、ガベージコレクションの実行
tenax-api Deployment (2 レプリカ) と Service コンソール、JSON API、Server-Sent Events
RBAC Tenax リソースのクラスター全体の読み取り。ターゲットの Namespace ごとに tenax-* Secret の読み取りのみ
PrometheusRule、ServiceMonitor、Grafana ダッシュボード オプション。モニタリング を参照

Pod は非 root で、読み取り専用のルートファイルシステム、権限昇格なし、すべての capability を削除した状態で動きます。 データは Job (ムーバー、リストアラー) とターゲットごとのストリーマー Deployment の中でのみ移動し、コントローラーと API が バックアップデータを扱うことはありません。

アップグレード

helm upgrade は CRD を置き換え (installCRDs: true)、コントローラーと API をロールアウトします。実行中のバックアップは 完了するか再試行されます。すべてのデータパスはクラッシュオンリーであり、バックアップはマニフェストが書き込まれて初めて存在します。