Spec-Zone.ru › OpenTofu 1.11

Тип бэкенда: 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.11/language/settings/backends/kubernetes/

Spec-Zone.ru

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