Asteris

Joyent

Joyent’s Triton had a problem: their users wanted to work seamlessly between Triton and their other service providers, manage DNS all in one place, and be able to share state within their teams. Terraform was a perfect fit for that, but there was no Terraform provider for Triton.

Seamless Integration

Terraform creates workflows so teams can coordinate their cloud infrastructure. Anything with an API can have a Terraform provider, and most everything should.

Coordinating multiple service providers in a Terraform provider is as easy as:

resource "triton_machine" "edge" {
  name    = "edge"
  package = "g4-general-4G"
  image   = "c20b4b7c-e1a6-11e5-9a4d-ef590901732e"
}

resource "cloudflare_record" "edge" {
  domain = "example.com"
  name   = "edge"
  value  = "${triton_machine.edge.primaryip}"
  type   = "A"
}

This bit of config would:

  1. Create a Triton node named “edge”
  2. Add the node’s primary IPV4 as “edge.example.com” in Cloudflare

Joyent wanted to give their customers these superpowers! Their customers should be able to build and change their entire infrastructure from one tool, and Terraform enables that. Integration with Terraform would let customers use Triton to improve their businesses.

Developing the Terraform Provider

Joyent partnered with Asteris to build their Terraform provider. We worked closely with Joyent to make their provider meet their requirements, keeping an eye on their customers needs. As with all our clients, we kept a tight feedback loop to make communication easier for everyone.

Improving the API

Triton is a product under active development. During our work with Joyent, they released fabrics, a software-defined network API for Triton.

We were able to work with Joyent to create add fabric support to gosdc,Triton’s Go bindings. Joyent’s commitment to open source means that this API client is available for anyone to develop further Go tools.

Open Source Release

Working together, Joyent and Asteris have submitted the Triton Terraform provider back upstream to Hashicorp. The provider is included in Terraform versions 0.6.14 and later, so clients and customers can simply plug their API credentials into Terraform and start creating resources.

The Response

Joyent’s customers are delighted by the new Terraform plugin.

We know that customers who discovered our Terraform provider are definitely happy they did. Our Terraform provider opens the doors for people who know those tools, and they can apply that familiarity to Triton.

– Casey Bisson, Joyent

Joyent’s customers can now orchestrate their entire cloud deployments, including Triton, from one tool. This gives them all the benefits of using Terraform, plus the power of Triton’s bare-metal containers. These DevOps tools let customers move faster, communicate better, and move their own businesses forward.

Want to Give Your Users Superpowers?

Asteris specializes in DevOps tools. We believe anything with an API on it can and should be scripted and automated to better serve your needs. Contact us to make your DevOps practice shine.