Search code examples
terraformibm-cloud

How to create an IBM Cloud VSI using a custom image


I want to use Terraform to create a new virtual server using an existing Customer Image, just like manually under https://cloud.ibm.com/vpc-ext/compute/images. I used an example code snippet and only replaced the name of the image (r010-...).

data "ibm_is_image" "centos" {
   name = "r010-489ff05b-1494-4a05-8b12-c6f44a958859"
}

# Virtual Server Insance
resource "ibm_is_instance" "vsi1" {
   name    = "${local.BASENAME}-vsi1"
   vpc     = ibm_is_vpc.vpc-instance.id
   keys    = [data.ibm_is_ssh_key.ssh_key_id.id]
   zone    = local.ZONE
   image   = data.ibm_is_image.centos.id
   profile = "cx2-2x4"
   
   # References to the subnet and security groups
   primary_network_interface {
     subnet          = ibm_is_subnet.subnet1.id
     security_groups = [ibm_is_security_group.sg1.id]
   }
}

The error message is:

Error: No image found with name  r010-489ff05b-1494-4a05-8b12-c6f44a958859

It seems that only public AWS images can be used.


Solution

  • Seems like you're using id in place of name here

    data "ibm_is_image" "centos" {
       name = "r010-489ff05b-1494-4a05-8b12-c6f44a958859"
    }
    

    try using the name of the image