Spec-Zone.ru › OpenTofu 1.9

Тип бэкенда: kubernetes

Примечание

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

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

Этот бэкенд поддерживает блокировку состояния; для блокировки используется ресурс Lease.

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

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

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

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

Если задан флаг in_cluster_config, бэкенд попытается использовать учетную запись службы для доступа к кластеру. Это можно использовать, если 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.9/language/settings/backends/kubernetes/

Spec-Zone.ru

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