terraform-provider-docker icon indicating copy to clipboard operation
terraform-provider-docker copied to clipboard

No static IP address is set (via networks_advanced).

Open TelaDi opened this issue 2 years ago • 1 comments
trafficstars

Hi, unable to set static ip for docker container. the setting is ignored and the first available IP from the pool is set.

terraform -v
Terraform v1.3.9 on linux_amd64
+ provider registry.terraform.io/kreuzwerker/docker v3.0.1

Terraform Test file

terraform {
  required_providers {
    docker = {
      source = "kreuzwerker/docker"
      version = "3.0.1"
    }
  }
  required_version = ">= 1.3.1"
}

variable "ip" {}
variable "ssh_private_key" {}


provider "docker" {
  host     = "ssh://root@${var.ip}:22"
  ssh_opts = ["-o", "StrictHostKeyChecking=no", "-o", "UserKnownHostsFile=/dev/null", "-q", "-i", "${var.ssh_private_key}"]
}


resource "docker_image" "mosquitto" {
  name = "eclipse-mosquitto:2.0.15"
}

resource "docker_network" "n10g" {
  name  = "n10g"
  //attachable = true
  //check_duplicate = true
  //driver = "ipvlan"
  driver = "macvlan"
  
  ipam_config  {
    subnet = "192.168.0.0/16"
    gateway = "192.168.11.1"    
  }
  options = {
    parent = "ens160"
  }
}

resource "docker_container" "mqtt" {
  
  attach = false
  name  = "mqtt"
  image = docker_image.mosquitto.image_id
  hostname = "mqtt.home.lan"
  
  network_mode = docker_network.n10g.name
 
  networks_advanced  {
    name = docker_network.n10g.name
    ipv4_address = "192.168.10.70"
  }

  publish_all_ports = true
  restart = "always"
  
}

output "out_ip" {
  value = docker_container.mqtt.network_data[0].ip_address
}
output "desired_ip"{
  value =  "192.168.10.70"
}

Trace log terraform apply:

 "Id": "529e63755cd661ec5ecf412998a1a587ad6c33167e1634a35cad639b18f7b840",
        "Created": "2023-03-06T17:44:50.18672656Z",
...
        "NetworkSettings": {
                ...
                "EndpointID": "",
                "Gateway": "",
                "GlobalIPv6Address": "",
                "GlobalIPv6PrefixLen": 0,
                "IPAddress": "",
                "IPPrefixLen": 0,
                "IPv6Gateway": "",
                "MacAddress": "",
                "Networks": {
                        "n10g": {
                                "IPAMConfig": null,
                                "Links": null,
                                "Aliases": [
                                        "529e63755cd6",
                                        "mqtt.home.lan"
                                ],
                                "NetworkID": "9be27d7b2584fbd46a0a0d5ab4df1217258368732624ae3bb3046aeaf99ccfb3",
                                "EndpointID": "cf8bf78034ab37c4c073579688f75ea80f2e3e6afb0460b973333a6f1c6a7f44",
                                "Gateway": "192.168.11.1",
                                **"IPAddress": "192.168.0.1",**
                                "IPPrefixLen": 16,
                                "IPv6Gateway": "",
                                "GlobalIPv6Address": "",
                                "GlobalIPv6PrefixLen": 0,
                                "MacAddress": "02:42:c0:a8:00:01",
                                "DriverOpts": null
                        }
                }
        }

TelaDi avatar Mar 06 '23 17:03 TelaDi

Any update? I'm facing this issue:

Error: Unable to start container: Error response from daemon: failed to create the macvlan port: operation not supported

tutods avatar Mar 08 '24 23:03 tutods