メインコンテンツにスキップ

バックエンドタイプ: kubernetes

状態をKubernetes シークレットに保存します。

このバックエンドは状態ロックをサポートしており、ロックはリースリソースを使用して行われます。

設定例

コードブロック
terraform {
backend "kubernetes" {
secret_suffix = "state"
config_path = "~/.kube/config"
}
}

これは、OpenTofu を実行しているユーザー/サービスアカウントが、シークレットを保存するために使用される名前空間内でシークレットを読み書きするための権限を持っていることを前提としています。

config_path または config_paths 属性が設定されている場合、バックエンドはkubeconfig ファイルを使用してクラスターへのアクセスを試みます。

in_cluster_config フラグが設定されている場合、バックエンドはサービスアカウントを使用してクラスターへのアクセスを試みます。これは、Kubernetes クラスター内で実行されているポッド内から OpenTofu が実行されている場合に使用できます。

ほとんどのユースケースでは、in_cluster_configconfig_path、または config_paths のいずれかを設定する必要があります。すべてのフラグが設定されている場合は、config_path の設定が使用されます。

アクセス認証情報については、部分的な構成を使用することをお勧めします。

参照例

コードブロック
data "terraform_remote_state" "foo" {
backend = "kubernetes"
config = {
secret_suffix = "state"
load_config_file = true
}
}

構成変数

次の構成オプションがサポートされています。

  • secret_suffix - (必須) シークレットの作成時に使用される接尾辞。シークレットは tfstate-{workspace}-{secret_suffix} の形式で命名されます。
  • labels - (オプション) シークレットとリースに適用される追加のラベルのマップ。
  • namespace - (オプション) シークレットとリースを保存する名前空間。KUBE_NAMESPACE から取得できます。
  • in_cluster_config - (オプション) ポッド内からクラスターへの認証に使用されます。KUBE_IN_CLUSTER_CONFIG から取得できます。
  • host - (オプション) Kubernetes マスターのホスト名 (URI 形式)。KUBE_HOST から取得できます。デフォルトは https:// です。
  • username - (オプション) Kubernetes マスターエンドポイントへのアクセス時に HTTP 基本認証に使用するユーザー名。KUBE_USER から取得できます。
  • password - (オプション) Kubernetes マスターエンドポイントへのアクセス時に HTTP 基本認証に使用するパスワード。KUBE_PASSWORD から取得できます。
  • insecure - (オプション) TLS 証明書を検証せずにサーバーにアクセスするかどうか。KUBE_INSECURE から取得できます。デフォルトは false です。
  • client_certificate - (オプション) TLS 認証用の PEM エンコードされたクライアント証明書。KUBE_CLIENT_CERT_DATA から取得できます。
  • client_key - (オプション) TLS 認証用の PEM エンコードされたクライアント証明書キー。KUBE_CLIENT_KEY_DATA から取得できます。
  • cluster_ca_certificate - (オプション) TLS 認証用の PEM エンコードされたルート証明書バンドル。KUBE_CLUSTER_CA_CERT_DATA から取得できます。
  • config_path - (オプション) kube config ファイルへのパス。KUBE_CONFIG_PATH から取得できます。
  • config_paths - (オプション) kube config ファイルへのパスのリスト。KUBE_CONFIG_PATHS から取得できます。
  • config_context - (オプション) 設定ファイルから選択するコンテキスト。KUBE_CTX から取得できます。
  • config_context_auth_info - (オプション) kube config の認証情報コンテキスト (kubeconfig ユーザーの名前、kubectl--user フラグ)。KUBE_CTX_AUTH_INFO から取得できます。
  • config_context_cluster - (オプション) kube config のクラスターコンテキスト (kubeconfig クラスターの名前、kubectl--cluster フラグ)。KUBE_CTX_CLUSTER から取得できます。
  • token - (オプション) サービスアカウントのトークン。KUBE_TOKEN から取得できます。
  • exec - (オプション)exec ベースの認証情報プラグインを使用する構成ブロック。例: 外部コマンドを呼び出してユーザー認証情報を受け取ります。
    • api_version - (必須) ExecCredentials リソースのデコード時に使用する API バージョン (例: client.authentication.k8s.io/v1beta1)。
    • command - (必須) 実行するコマンド。
    • args - (オプション) プラグインの実行時に渡す引数のリスト。
    • env - (オプション) プラグインの実行時に設定する環境変数のマップ。