Open babidi34 opened 1 month ago
Hello @babidi34,
You must create the required resources before creating outscale_nat_service
Required resources
resource "outscale_net" "net01" {
ip_range = "10.0.0.0/16"
}
resource "outscale_subnet" "private" {
net_id = outscale_net.net01.net_id
ip_range = "10.0.0.0/18"
}
resource "outscale_route_table" "route_table01" {
net_id = outscale_net.net01.net_id
}
resource "outscale_route_table_link" "outscale_route_table_link01" {
subnet_id = outscale_subnet.private.subnet_id
route_table_id = outscale_route_table.route_table01.route_table_id
}
resource "outscale_internet_service" "internet_service01" {
}
resource "outscale_internet_service_link" "internet_service_link01" {
net_id = outscale_net.net01.net_id
internet_service_id = outscale_internet_service.internet_service01.internet_service_id
}
resource "outscale_route" "route01" {
destination_ip_range = "0.0.0.0/0"
gateway_id = outscale_internet_service.internet_service01.internet_service_id
route_table_id = outscale_route_table.route_table01.route_table_id
depends_on = [outscale_internet_service_link.internet_service_link01]
}
resource "outscale_public_ip" "nat_service" {
tags {
key = "name"
value = "nat-${terraform.workspace}"
}
}
outscale_nat_service
resource "outscale_nat_service" "nat_service" {
subnet_id = outscale_subnet.private.subnet_id
public_ip_id = outscale_public_ip.nat_service.public_ip_id
tags {
key = "name"
value = "nat-${terraform.workspace}"
}
depends_on = [outscale_public_ip.nat_service, outscale_route.route01]
}
Best Regards,
My resource route is after nat service because I use the nat_service_id in my route
resource "outscale_route_table" "route_table" {
net_id = outscale_net.vpc.net_id
tags {
key = "name"
value = "${terraform.workspace}"
}
}
resource "outscale_route_table_link" "route_table_link" {
route_table_id = outscale_route_table.route_table.route_table_id
subnet_id = outscale_subnet.private.subnet_id
}
resource "outscale_public_ip" "nat_service" {
tags {
key = "name"
value = "nat-${terraform.workspace}"
}
}
resource "outscale_nat_service" "nat_service" {
subnet_id = outscale_subnet.private.subnet_id
public_ip_id = outscale_public_ip.nat_service.public_ip_id
tags {
key = "name"
value = "nat-${terraform.workspace}"
}
depends_on = [outscale_public_ip.nat_service]
}
resource "outscale_route" "route_nat" {
nat_service_id = outscale_nat_service.nat_service.nat_service_id
destination_ip_range = "0.0.0.0/0"
route_table_id = outscale_route_table.route_table.route_table_id
depends_on = [outscale_nat_service.nat_service, outscale_route_table.route_table]
}
I also have the error via the API command :
osc-cli api CreateNatService --profile "default" \
--SubnetId "subnet-***" \
--PublicIpId "eipalloc-***"
osc_sdk.sdk.OscApiException: Error --> status = 409, code = 9045, Reason = ResourceConflict, request_id = 22466059-54ad-491e-b414-25da78f8bd94
I checked, I only have one NAT and it it's on another NET
You can try this:
....
resource "outscale_internet_service" "internet_service01" {
}
resource "outscale_internet_service_link" "internet_service_link01" {
net_id = outscale_net.vpc.net_id
internet_service_id = outscale_internet_service.internet_service01.internet_service_id
}
resource "outscale_route" "route_nat" {
gateway_id = outscale_internet_service.internet_service01.internet_service_id
destination_ip_range = "0.0.0.0/0"
route_table_id = outscale_route_table.route_table.route_table_id
depends_on = [outscale_internet_service_link.internet_service_link01]
}
resource "outscale_public_ip" "nat_service" {
tags {
key = "name"
value = "nat-${terraform.workspace}"
}
}
resource "outscale_nat_service" "nat_service" {
subnet_id = outscale_subnet.private.subnet_id
public_ip_id = outscale_public_ip.nat_service.public_ip_id
tags {
key = "name"
value = "nat-${terraform.workspace}"
}
depends_on = [outscale_public_ip.nat_service, outscale_route.route01]
}
And after, you can update route with nat_service
resource "outscale_route" "route_nat" {
nat_service_id = outscale_nat_service.nat_service.nat_service_id
destination_ip_range = "0.0.0.0/0"
route_table_id = outscale_route_table.route_table.route_table_id
depends_on = [outscale_nat_service.nat_service, outscale_route_table.route_table]
}
But I recommend that you contact outscale support.. You have the same problem with osc-cli, which means it's not a terrafrom-plugin issue.
Best Regards,
Hello,
I'm encountering a conflict error (409) when trying to create an outscale_nat_service resource in my Terraform configuration. This issue was not present earlier, and I was able to create the resource without any issues. However, now the same configuration results in a 409 Conflict error.
Steps Taken
I executed terraform destroy to remove all resources. I verified that there are no existing NAT Services present on the Outscale side. I attempted to re-run terraform apply with the same configuration.
Terraform Version
Terraform Configuration Files
Crash Output
╷ │ Error: Error creating Nat Service: 409 Conflict │ │ with outscale_nat_service.nat_service, │ on main.tf line 80, in resource "outscale_nat_service" "nat_service": │ 80: resource "outscale_nat_service" "nat_service" { │ ╵ 2024-06-05T20:14:20.280+0200 [DEBUG] provider.stdio: received EOF, stopping recv loop: err="rpc error: code = Unavailable desc = error reading from server: EOF" 2024-06-05T20:14:20.284+0200 [DEBUG] provider: plugin process exited: path=.terraform/providers/registry.terraform.io/outscale/outscale/0.12.0/linux_amd64/terraform-provider-outscale_v0.12.0 pid=185141 2024-06-05T20:14:20.284+0200 [DEBUG] provider: plugin exited
Steps to Reproduce
terraform apply