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