Files
terraform-cloudflare-tunnel…/networks_routes.tf
Hubert Cornet 0767668e45
All checks were successful
Terraform Apply / Terraform Apply (push) Successful in 56s
Update networks_routes.tf
2025-11-18 10:10:02 +01:00

99 lines
3.3 KiB
HCL

# =============================================================================
# CLOUDFLARE : Networks : Routes
# =============================================================================
#
resource "cloudflare_zero_trust_tunnel_cloudflared_route" "home_tunnel_route" {
account_id = local.cloudflare_account_id
network = var.tunnel_network
tunnel_id = cloudflare_zero_trust_tunnel_cloudflared.home_tunnel.id
comment = var.tunnel_network_comment
}
#
#data "cloudflare_zero_trust_tunnel_cloudflared_route" "home_tunnel_route_token" {
# account_id = "699d98642c564d2e855e9661899b7252"
# route_id = cloudflare_zero_trust_tunnel_cloudflared_route.home_tunnel_route.id
#}
# =============================================================================
# DNS RECORDS (un par application)
# =============================================================================
resource "cloudflare_dns_record" "applications" {
for_each = var.applications
zone_id = local.cloudflare_zone_id
name = each.value.subdomain
content = "${cloudflare_zero_trust_tunnel_cloudflared.home_tunnel.id}.cfargotunnel.com"
type = "CNAME"
ttl = var.dns_ttl
proxied = var.dns_proxied
comment = "Managed by Terraform - ${each.key} via Cloudflare Tunnel"
}
# =============================================================================
# TUNNEL CONFIGURATION
# =============================================================================
resource "cloudflare_zero_trust_tunnel_cloudflared_config" "home_tunnel_config" {
account_id = local.cloudflare_account_id
tunnel_id = cloudflare_zero_trust_tunnel_cloudflared.home_tunnel.id
config = {
warp_routing = {
enabled = var.tunnel_warp_routing_enabled
}
ingress = local.ingress_rules
}
lifecycle {
# Ignorer les changements manuels dans Cloudflare Dashboard
ignore_changes = [config]
}
}
# =============================================================================
# CLOUDFLARE : Networks : Routes : virtual network
# =============================================================================
#
resource "cloudflare_zero_trust_tunnel_cloudflared_virtual_network" "zero_trust_tunnel_cloudflared_virtual_network_aws" {
account_id = local.cloudflare_account_id
name = "aws-vpc"
comment = "AWS VPC for data science"
is_default = false
is_default_network = false
}
#
resource "cloudflare_zero_trust_tunnel_cloudflared_virtual_network" "zero_trust_tunnel_cloudflared_virtual_network_azure" {
account_id = local.cloudflare_account_id
name = "azzure-vpc"
comment = "AZURE VPC for data science"
is_default = false
is_default_network = false
}
#
resource "cloudflare_zero_trust_tunnel_cloudflared_virtual_network" "zero_trust_tunnel_cloudflared_virtual_network_gcp" {
account_id = local.cloudflare_account_id
name = "gcp-vpc"
comment = "GCP VPC for data science"
is_default = false
is_default_network = false
}
#
resource "cloudflare_zero_trust_tunnel_cloudflared_virtual_network" "zero_trust_tunnel_cloudflared_virtual_network_ovh" {
account_id = local.cloudflare_account_id
name = "ovh-vpc"
comment = "OVH VPC for data science"
is_default = false
is_default_network = false
}