mirror of
https://gitlab.sarex.io/infra/terraform-contour-mirror.git
synced 2026-08-05 18:31:00 +03:00
- Add modules: yc-s3, yc-postgresql, k8s-namespace, k8s-secrets - Add live configuration for stage environment - Add GitLab CI with downstream pipelines - Implement best practices from theory.md
64 lines
1.8 KiB
HCL
64 lines
1.8 KiB
HCL
# Глобальная конфигурация Terragrunt
|
|
# Настройка удаленного бэкенда для хранения состояния
|
|
|
|
remote_state {
|
|
backend = "s3"
|
|
generate = {
|
|
path = "backend.tf"
|
|
if_exists = "overwrite_terragrunt"
|
|
}
|
|
config = {
|
|
endpoint = "storage.yandexcloud.net"
|
|
bucket = get_env("TF_STATE_BUCKET", "terraform-state-pulse")
|
|
key = "${path_relative_to_include()}/terraform.tfstate"
|
|
region = "ru-central1"
|
|
skip_region_validation = true
|
|
skip_credentials_validation = true
|
|
skip_requesting_account_id = true
|
|
skip_metadata_api_check = true
|
|
force_path_style = true
|
|
|
|
# Настройка блокировок состояний через Yandex Database (YDB)
|
|
dynamodb_endpoint = get_env("TF_STATE_DYNAMODB_ENDPOINT", "")
|
|
dynamodb_table = get_env("TF_STATE_DYNAMODB_TABLE", "terraform-locks")
|
|
}
|
|
}
|
|
|
|
# Генерация общего провайдера для Yandex Cloud
|
|
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 = get_env("YC_TOKEN", "")
|
|
cloud_id = get_env("YC_CLOUD_ID", "")
|
|
folder_id = get_env("YC_FOLDER_ID", "")
|
|
zone = "ru-central1-a"
|
|
}
|
|
|
|
provider "kubernetes" {
|
|
config_path = get_env("KUBECONFIG", "~/.kube/config")
|
|
config_context = get_env("KUBE_CONTEXT", "")
|
|
}
|
|
EOF
|
|
}
|