Spotinst raises $15M Series A Led By Intel Capital and Vertex Ventures Read The Official Press Release

Multai & Terraform Getting Started – Create Multai Load Balancer

Liran Polak
Chief Architect

How to install Spotinst plugin for Terraform

In this post, we will demonstrate how to create a load balancer using Spotinst Terraform plugin.

1. Download the binary file terraform-provider-spotinst.

Please download the proper binary file for your operating system and architecture and put it somewhere on your filesystem:

2. Configure Terraform to be able to find the binary file:

If you are on a Unix-like system, create a file named .terraformrc in your home directory:

~/.terraformrc

If you are on a Windows system, create a file named terraform.rc in the %APPDATA% directory:

%APPDATA%/terraform.rc

3. Edit the file and add the following content:

providers {
  spotinst = "/path/to/terraform-provider-spotinst"
}

4. Create a new Multai Load Balancer.

 

Save the entire configuration to a file named main.tf:

resource "spotinst_multai_balancer" "foo" {
   name = "foo"

   connection_timeouts {
      idle     = 60
      draining = 60
   }

   tags {
      env = "prod"
      app = "web"
   }
}

resource "spotinst_multai_listener" "foo" {
   balancer_id = "${spotinst_multai_balancer.foo.id}"
   protocol    = "http"
   port        = 1338

   tags {
      env = "prod"
      app = "web"
   }
}

resource "spotinst_multai_routing_rule" "foo" {
   balancer_id = "${spotinst_multai_balancer.foo.id}"
   listener_id = "${spotinst_multai_listener.foo.id}"
   route       = "Path(`/`)"

   target_set_ids = [
      "${spotinst_multai_target_set.foo.id}",
   ]

   tags {
      env = "prod"
      app = "web"
   }
}

resource "spotinst_multai_target_set" "foo" {
   balancer_id   = "${spotinst_multai_balancer.foo.id}"
   deployment_id = "dp-12345"
   name          = "foo"
   protocol      = "http"
   port          = 1337
   weight        = 1

   health_check {
      protocol            = "http"
      path                = "/"
      interval            = 30
      timeout             = 10
      healthy_threshold   = 2
      unhealthy_threshold = 2
   }

   tags {
      env = "prod"
      app = "web"
   }
}

resource "spotinst_multai_target" "foo" {
   balancer_id   = "${spotinst_multai_balancer.foo.id}"
   target_set_id = "${spotinst_multai_target_set.foo.id}"
   host          = "172.0.0.10"
   port          = "1337"
   weight        = 1

   tags {
      env = "prod"
      app = "web"
   }
}

Once you have everything setup correctly, you can execute your Terraform file and apply the changes. It should trigger an API call to Multai, and create a Load Balancer.

If you have any question or a comment, please feel free to reach us at support@spotinst.com

Best,
The Spotinst Team.

Liran Polak
Chief Architect

Stay current

Sign up for our newsletter, and we'll send you the latest updates on Spotinst, tips, tutorials and more cool stuff!