Тип бэкенда: 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/