Files
terraform-cloudflare-tunnel…/provider.tf
T
hcornet f8201d9d06
Terraform Apply / Terraform Apply (push) Successful in 2m26s
New update
2026-07-31 12:57:49 +02:00

65 lines
2.2 KiB
Terraform

terraform {
required_providers {
cloudflare = {
# Cap < 6.0.0 : on accepte les évolutions de la v5 mais jamais un saut
# de version majeure automatique (c'est un provider v5 non épinglé qui
# avait déclenché le crash cty avec Terraform 1.7.5).
source = "cloudflare/cloudflare"
version = ">= 5.12.0, < 6.0.0"
}
vault = {
source = "hashicorp/vault"
version = "~> 4.6"
}
# Génération de la paire de clés SSH pour la brique "accès SSH par clé"
tls = {
source = "hashicorp/tls"
version = "~> 4.0"
}
# Récupération des tokens WARP Connector via l'API Cloudflare
# (brique "sites distants")
http = {
source = "hashicorp/http"
version = "~> 3.4"
}
}
# >= 1.8.0 obligatoire : le provider Cloudflare v5 utilise des attributs
# dynamiques qui font CRASHER le core 1.7.x (bug cty corrigé en 1.8).
# La CI utilise 1.15.8.
required_version = ">= 1.8.0"
}
# Providers
provider "cloudflare" {
api_token = local.cloudflare_api_token
}
provider "vault" {
address = var.vault_url
skip_child_token = true
# CORRECTIF SÉCURITÉ : la vérification TLS est désormais activée par défaut.
# ACTION EXTERNE : vault.tips-of-mine.com doit présenter un certificat valide
# (Let's Encrypt, CA interne importée sur le runner CI, etc.).
# En dépannage uniquement : vault_skip_tls_verify = true dans le tfvars.
skip_tls_verify = var.vault_skip_tls_verify
# Deux modes d'authentification :
# - AppRole (recommandé pour la CI) : renseigner vault_role_id +
# vault_secret_id (secrets Gitea VAULT_ROLE_ID / VAULT_SECRET_ID) ->
# la CI obtient un token COURT à chaque run, plus de token statique
# longue durée qui traîne. Mise en place : voir ACTIONS_EXTERNES.md.
# - Token statique (mode historique, toujours fonctionnel) : vault_token.
token = var.vault_role_id != "" ? null : var.vault_token
dynamic "auth_login" {
for_each = var.vault_role_id != "" ? [1] : []
content {
path = "auth/approle/login"
parameters = {
role_id = var.vault_role_id
secret_id = var.vault_secret_id
}
}
}
}