Spec-Zone.ru › OpenTofu 1.10

Тип бэкенда: 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 — (Необязательный) Карта дополнительных меток, применяемых к секрету и аренде.
  • namespace — (Необязательный) Пространство имён для хранения секрета и аренды. Может задаваться из 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.10/language/settings/backends/kubernetes/

Spec-Zone.ru

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