Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

type: genesissecret

genesissecret Manifest は、別ファイルに書いた GenesisSecret YAML を読み込み、外部 Secret ストア(現バージョンでは 1Password)から取得した値で Kubernetes Secret を生成する Manifest type です。

tazuna.yaml 側でこの Manifest type が担うのは「どの GenesisSecret YAML を読むか」だけです。 中の spec.secrets / spec.outputs などの仕様は GenesisSecret スキーマ を参照してください。

path

他の Manifest type と違い、pathディレクトリではなく YAML ファイル 1 つを直接指しますtazuna.yaml 自身のディレクトリ起点 の相対パスで書きます。

manifests:
  - name: aws-credentials
    type: genesissecret
    path: ./genesissecrets/aws.yaml   # ← ファイルを直接指す

固有フィールド

manifests[].genesisSecret のオブジェクトに書きます。

現バージョンでは フィールドを持たない空オブジェクト です。 将来の拡張のために予約されているフィールド名です。

manifests:
  - name: aws-credentials
    type: genesissecret
    path: ./genesissecrets/aws.yaml
    # genesisSecret: {}  # 現状は中身が空のため書く必要なし

振る舞い

操作内部処理
BuildGenesisSecret YAML を読み込み、Provider から値を取得し、outputs[0].kubernetesSecret 1 件分の Secret YAML を標準出力に書く。
ApplyGenesisSecret YAML を読み込み、Provider から値を取得し、outputs[].kubernetesSecret の各エントリに対して Kubernetes Secret を CreateOrUpdate する。
DestroyGenesisSecret YAML を読み込み(Provider 取得も実行されます)、outputs[].kubernetesSecretnamespace / name に該当する Secret を削除する。

Buildoutputs の先頭 1 件のみを出力する点が Apply と異なります(複数 outputs を 書いていても、tazuna build の出力は 1 件分です)。詳細は GenesisSecret - 解決の流れ を参照してください。

State との関係

type: genesissecret から生成される Secret は、tazuna state diff 上で常に always-sync として扱われます。ContentHash で差分判定する対象ではなく、Provider 側を真実の源として 毎回同期されます。詳細は State の内部構造 - Diff typeGenesisSecret - State と always-sync を参照してください。

関連