Skip to content

Commit 1b2edf2

Browse files
committed
fix: Fix creation of reverse DNS records for private IPV4 addresses
1 parent ae64d66 commit 1b2edf2

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ module "my_instance" {
4444
| [scaleway_instance_ip_reverse_dns.ipv6](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/instance_ip_reverse_dns) | resource |
4545
| [scaleway_instance_ip_reverse_dns.public_ipv4](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/instance_ip_reverse_dns) | resource |
4646
| [scaleway_instance_server.this](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/resources/instance_server) | resource |
47+
| [scaleway_instance_private_nic.this](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/data-sources/instance_private_nic) | data source |
48+
| [scaleway_ipam_ip.private_ipv4](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs/data-sources/ipam_ip) | data source |
4749

4850
## Inputs
4951

ipv4.tf

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,28 @@ resource "scaleway_instance_ip_reverse_dns" "public_ipv4" {
2929
zone = var.zone
3030
}
3131

32+
data "scaleway_instance_private_nic" "this" {
33+
count = length(var.private_networks)
34+
35+
server_id = scaleway_instance_server.this.id
36+
private_network_id = var.private_networks[count.index]
37+
}
38+
39+
40+
data "scaleway_ipam_ip" "private_ipv4" {
41+
count = length(var.private_networks)
42+
43+
type = "ipv4"
44+
resource {
45+
id = data.scaleway_instance_private_nic.this[count.index].id
46+
type = "instance_private_nic"
47+
}
48+
}
49+
3250
resource "scaleway_domain_record" "ipv4" {
33-
count = var.domainname != null ? 1 : 0
51+
count = var.enable_public_ipv4 && (var.domainname != null) ? 1 : length(var.private_networks)
3452

35-
data = var.enable_public_ipv4 ? scaleway_instance_server.this.public_ip : scaleway_instance_server.this.private_ip
53+
data = var.enable_public_ipv4 ? scaleway_instance_server.this.public_ip : data.scaleway_ipam_ip.private_ipv4[count.index].address
3654
dns_zone = var.domainname
3755
name = local.effective_hostname
3856
type = "A"

0 commit comments

Comments
 (0)