Files
terraform-cloudflare-tunnel…/outputs.tf
T
hcornet 04e0f318f4
Terraform Apply / Terraform Apply (push) Failing after 20s
Update 31-07-2026
2026-07-31 09:50:42 +02:00

119 lines
4.6 KiB
Terraform

# =============================================================================
# TUNNEL OUTPUTS
# =============================================================================
output "tunnel_id" {
description = "ID du tunnel Cloudflare"
value = cloudflare_zero_trust_tunnel_cloudflared.home_tunnel.id
}
output "tunnel_cname" {
description = "CNAME du tunnel Cloudflare"
value = "${cloudflare_zero_trust_tunnel_cloudflared.home_tunnel.id}.cfargotunnel.com"
}
output "tunnel_token" {
description = "Token pour l'agent cloudflared (SENSIBLE). Pour la haute dispo, installer PLUSIEURS replicas cloudflared avec ce même token (2 machines = bascule automatique)."
value = data.cloudflare_zero_trust_tunnel_cloudflared_token.home_tunnel_token.token
sensitive = true
}
# =============================================================================
# APPLICATIONS OUTPUTS
# =============================================================================
output "applications_urls" {
description = "URLs publiques de toutes les applications"
value = {
for app_name, app_config in var.applications :
app_name => "https://${app_config.subdomain}.${var.cloudflare_zone}"
}
}
output "applications_dns_records" {
description = "IDs des enregistrements DNS créés"
value = {
for app_name, dns_record in cloudflare_dns_record.applications :
app_name => dns_record.id
}
}
# =============================================================================
# BRIQUE SITES DISTANTS
# =============================================================================
output "remote_site_tunnel_tokens" {
description = "Token cloudflared de chaque site distant (SENSIBLE) — à installer sur le connecteur du site"
value = {
for site, token in data.cloudflare_zero_trust_tunnel_cloudflared_token.remote_sites :
site => token.token
}
sensitive = true
}
output "remote_site_virtual_networks" {
description = "ID du réseau virtuel de chaque site (pour warp-cli vnet <id>)"
value = {
for site, vnet in cloudflare_zero_trust_tunnel_cloudflared_virtual_network.remote_sites :
site => vnet.id
}
}
output "warp_connector_tokens" {
description = "Token d'installation de chaque WARP Connector (SENSIBLE) — brique inerte si aucun ID renseigné"
value = {
for site, resp in data.http.warp_connector_tokens :
site => try(jsondecode(resp.response_body).result, null)
}
sensitive = true
}
# =============================================================================
# BRIQUE SSH
# =============================================================================
output "ssh_classic_public_key" {
description = "Clé publique SSH (brique SSH par clé) — à déposer dans ~/.ssh/authorized_keys du serveur cible"
value = trimspace(tls_private_key.ssh_classic.public_key_openssh)
}
output "ssh_classic_private_key" {
description = "Clé privée SSH (SENSIBLE — présente dans le state). Récupération : terraform output -raw ssh_classic_private_key"
value = tls_private_key.ssh_classic.private_key_openssh
sensitive = true
}
output "ssh_ca_aws" {
description = "Clé publique de la CA de certificats éphémères (app SSH AWS) — à déposer dans /etc/ssh/ca.pub du serveur"
value = cloudflare_zero_trust_access_short_lived_certificate.aws_ssh_ca.public_key
}
output "ssh_ca_gcp" {
description = "Clé publique de la CA de certificats éphémères (app SSH GCP) — à déposer dans /etc/ssh/ca.pub du serveur"
value = cloudflare_zero_trust_access_short_lived_certificate.gcp_ssh_ca.public_key
}
# =============================================================================
# BRIQUE SERVICE TOKENS
# =============================================================================
output "service_token_gitea_ci_id" {
description = "Client ID du service token Gitea CI (en-tête CF-Access-Client-Id)"
value = cloudflare_zero_trust_access_service_token.gitea_ci.client_id
}
output "service_token_gitea_ci_secret" {
description = "Client Secret du service token Gitea CI (SENSIBLE, en-tête CF-Access-Client-Secret)"
value = cloudflare_zero_trust_access_service_token.gitea_ci.client_secret
sensitive = true
}
# =============================================================================
# BRIQUE IdP AZURE
# =============================================================================
output "azure_idp_id" {
description = "ID de l'identity provider Azure Entra ID (null si brique désactivée)"
value = var.azure_idp_enabled ? cloudflare_zero_trust_access_identity_provider.azure_entra_id[0].id : null
}