Spec-Zone.ru › OpenTofu 1.12

Тип backend: kubernetes

Примечание

Размер этого backend ограничен максимальным размером секрета Kubernetes — 1 МБ. Подробности см. в разделе Ограничения секретов.

Сохраняет состояние в секрете Kubernetes.

Этот backend поддерживает блокировку состояния, которая выполняется с помощью ресурса Lease.

Пример конфигурации​

Блок кода
terraform {
  backend "kubernetes" {
    secret_suffix    = "state"
    config_path      = "~/.kube/config"
  }
}

Предполагается, что у пользователя или учетной записи службы, от имени которых запущен OpenTofu, есть разрешения на чтение и запись секретов в пространстве имен, используемом для хранения секрета.

Если задан атрибут config_path или config_paths, backend попытается использовать файл kubeconfig для доступа к кластеру.

Если задан флаг in_cluster_config, backend попытается использовать учетную запись службы для доступа к кластеру. Это можно использовать, если OpenTofu запускается внутри пода в кластере Kubernetes.

В большинстве случаев необходимо задать один из параметров: in_cluster_config, config_path или config_paths. Если заданы все флаги, будет использована конфигурация из config_path.

Для учетных данных доступа рекомендуем использовать частичную конфигурацию.

Пример ссылки​

Блок кода
data "terraform_remote_state" "foo" {
  backend = "kubernetes"
  config = {
    secret_suffix    = "state"
    load_config_file = true
  }
}

Переменные конфигурации​

Предупреждение

Рекомендуем передавать учетные данные и другие конфиденциальные данные с помощью переменных среды. Если вы используете -backend-config или указываете эти значения непосредственно в конфигурации, OpenTofu включит их в подкаталог .terraform и в файлы плана. Подробности см. в разделе Учетные данные и конфиденциальные данные.

Поддерживаются следующие параметры конфигурации:

  • secret_suffix — (Обязательно) Суффикс, используемый при создании секретов. Имена секретов будут иметь следующий формат: tfstate-{workspace}-{secret_suffix}.
  • labels — (Необязательно) Карта дополнительных меток, применяемых к секрету и Lease.
  • namespace — (Необязательно) Пространство имен для хранения секрета и Lease. Можно задать с помощью KUBE_NAMESPACE.
  • in_cluster_config — (Необязательно) Используется для аутентификации в кластере из пода. Можно задать с помощью KUBE_IN_CLUSTER_CONFIG.
  • host — (Необязательно) Имя хоста (в формате URI) главного узла Kubernetes. Можно задать с помощью KUBE_HOST. По умолчанию используется https://localhost.
  • username — (Необязательно) Имя пользователя для базовой HTTP-аутентификации при обращении к конечной точке главного узла Kubernetes. Можно задать с помощью KUBE_USER.
  • password — (Необязательно) Пароль для базовой HTTP-аутентификации при обращении к конечной точке главного узла Kubernetes. Можно задать с помощью KUBE_PASSWORD.
  • insecure — (Необязательно) Следует ли обращаться к серверу без проверки сертификата TLS. Можно задать с помощью KUBE_INSECURE. По умолчанию используется false.
  • client_certificate — (Необязательно) Сертификат клиента в формате PEM для аутентификации TLS. Можно задать с помощью KUBE_CLIENT_CERT_DATA.
  • client_key — (Необязательно) Ключ сертификата клиента в формате PEM для аутентификации TLS. Можно задать с помощью KUBE_CLIENT_KEY_DATA.
  • cluster_ca_certificate — (Необязательно) Пакет корневых сертификатов в формате PEM для аутентификации TLS. Можно задать с помощью KUBE_CLUSTER_CA_CERT_DATA.
  • config_path — (Необязательно) Путь к файлу конфигурации kube. Можно задать с помощью KUBE_CONFIG_PATH.
  • config_paths — (Необязательно) Список путей к файлам конфигурации kube. Можно задать с помощью KUBE_CONFIG_PATHS.
  • config_context — (Необязательно) Контекст, выбираемый из файла конфигурации. Можно задать с помощью KUBE_CTX.
  • config_context_auth_info — (Необязательно) Контекст сведений аутентификации конфигурации kube (имя пользователя kubeconfig, флаг --user в kubectl). Можно задать с помощью KUBE_CTX_AUTH_INFO.
  • config_context_cluster — (Необязательно) Контекст кластера конфигурации kube (имя кластера kubeconfig, флаг --cluster в kubectl). Можно задать с помощью KUBE_CTX_CLUSTER.
  • token — (Необязательно) Токен учетной записи службы. Можно задать с помощью KUBE_TOKEN.
  • exec — (Необязательно) Блок конфигурации для использования плагина учетных данных на основе exec, например для вызова внешней команды, возвращающей учетные данные пользователя.
    • api_version — (Обязательно) Версия API, используемая при декодировании ресурса ExecCredentials, например client.authentication.k8s.io/v1beta1.
    • command — (Обязательно) Команда для выполнения.
    • args — (Необязательно) Список аргументов, передаваемых плагину при запуске.
    • env — (Необязательно) Карта переменных среды, задаваемых при запуске плагина.

Copyright (c) The OpenTofu Authors
Copyright (c) 2014 HashiCorp, Inc.
Mozilla Public License, version 2.0
https://opentofu.org/docs/v1.12/language/settings/backends/kubernetes/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API