Тип backend: kubernetes
Размер этого backend ограничен максимальным размером секрета Kubernetes — 1 МБ. Подробности см. в разделе Ограничения секретов.
Сохраняет состояние в секрете Kubernetes.
Этот backend поддерживает блокировку состояния, которая выполняется с помощью ресурса Lease.
Пример конфигурации
terraform {
backend "kubernetes" {
secret_suffix = "state"
config_path = "~/.kube/config"
}
}Предполагается, что у пользователя или учетной записи службы, от имени которых запущен OpenTofu, есть разрешения на чтение и запись секретов в пространстве имен, используемом для хранения секрета.
Если задан атрибут config_path или config_paths, backend попытается использовать файл kubeconfig для доступа к кластеру.
Если задан флаг in_cluster_config, backend попытается использовать учетную запись службы для доступа к кластеру. Это можно использовать, если 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.12/language/settings/backends/kubernetes/