mirror of
https://gitlab.sarex.io/infra/terraform-contour-mirror.git
synced 2026-08-05 18:31:00 +03:00
93 lines
2.6 KiB
HCL
93 lines
2.6 KiB
HCL
# Глобальная конфигурация Terragrunt
|
|
# Настройка удаленного бэкенда для хранения состояния
|
|
|
|
remote_state {
|
|
backend = "s3"
|
|
generate = {
|
|
path = "backend.tf"
|
|
if_exists = "overwrite_terragrunt"
|
|
}
|
|
config = {
|
|
endpoint = "storage.yandexcloud.net"
|
|
bucket = "tfstate-terragrunt-stage"
|
|
key = "${path_relative_to_include()}/terraform.tfstate"
|
|
region = "ru-central1"
|
|
access_key = get_env("S3_ACCESS_KEY", get_env("AWS_ACCESS_KEY_ID", ""))
|
|
secret_key = get_env("S3_SECRET_KEY", get_env("AWS_SECRET_ACCESS_KEY", ""))
|
|
skip_region_validation = true
|
|
skip_credentials_validation = true
|
|
skip_metadata_api_check = true
|
|
force_path_style = true
|
|
}
|
|
}
|
|
|
|
# Генерация общего провайдера для всех модулей
|
|
generate "provider" {
|
|
path = "provider.tf"
|
|
if_exists = "overwrite_terragrunt"
|
|
contents = <<EOF
|
|
terraform {
|
|
required_version = ">= 1.0"
|
|
|
|
required_providers {
|
|
yandex = {
|
|
source = "yandex-cloud/yandex"
|
|
version = "~> 0.100"
|
|
}
|
|
kubernetes = {
|
|
source = "hashicorp/kubernetes"
|
|
version = "~> 2.23"
|
|
}
|
|
random = {
|
|
source = "hashicorp/random"
|
|
version = "~> 3.1"
|
|
}
|
|
}
|
|
}
|
|
|
|
provider "yandex" {
|
|
token = var.yc_token != "" ? var.yc_token : null
|
|
cloud_id = var.yc_cloud_id != "" ? var.yc_cloud_id : null
|
|
folder_id = var.yc_folder_id != "" ? var.yc_folder_id : null
|
|
zone = "ru-central1-a"
|
|
}
|
|
|
|
provider "kubernetes" {
|
|
# Если kubeconfig_path не указан, провайдер использует дефолтный путь ~/.kube/config
|
|
# Если указан, берем только первый путь (KUBECONFIG может содержать несколько путей через :)
|
|
config_path = var.kubeconfig_path != "" ? split(":", var.kubeconfig_path)[0] : null
|
|
config_context = var.kube_context != "" ? var.kube_context : null
|
|
}
|
|
|
|
variable "yc_token" {
|
|
type = string
|
|
default = ""
|
|
description = "Yandex Cloud token"
|
|
}
|
|
|
|
variable "yc_cloud_id" {
|
|
type = string
|
|
default = ""
|
|
description = "Yandex Cloud ID"
|
|
}
|
|
|
|
variable "yc_folder_id" {
|
|
type = string
|
|
default = ""
|
|
description = "Yandex Cloud folder ID"
|
|
}
|
|
|
|
variable "kubeconfig_path" {
|
|
type = string
|
|
default = ""
|
|
description = "Path to kubeconfig file"
|
|
}
|
|
|
|
variable "kube_context" {
|
|
type = string
|
|
default = ""
|
|
description = "Kubernetes context"
|
|
}
|
|
EOF
|
|
}
|