Open Credo

Verified Terraform Provider Development

UpCloud is a European cloud service provider offering the world’s fastest cloud servers on an hourly billed infrastructure-as-a-service from its 11 data centres in Amsterdam, Chicago, Frankfurt, Helsinki, New York City, London, Madrid, San Jose, Singapore, and Warsaw.

The Challenge

UpCloud has seen many of their clients embracing infrastructure-as-code, with a specific move to standardise on Terraform for infrastructure deployment management.

Whilst UpCloud already had both a Go Client Library and Terraform Provider available for use, both were out of date and lagging behind the UpCloud RESTful API. Recognising a fully supported and updated Terraform Provider (with verified status, sanctioned by HashiCorp) was essential to compete with other cloud providers, UpCloud engaged OpenCredo to help make this happen.

The Solution

We began with a three-way analysis of the UpCloud RESTful API, the existing Go Client Library and Terraform Provider to understand the current functionality as well as the new and updated functionality provided by the API. Our analysis and proposed options for moving forward ensured both the DevEx (Developer Experience) and future maintenance considerations were taken into account. Where points of clarification or DevEx choices needed to be made, these were discussed and agreed with the UpCloud Team.

We updated the existing UpCloud Go Client Library to align with the latest version of the UpCloud API. This included a migration from XML to JSON, as well as adding additional functionality to reflect new UpCloud features since the last update.

The UpCloud Terraform provider was updated to use the latest UpCloud Go Client Library as well as being refactored to meet the latest provider best practices. Additional resources supporting new UpCloud features were added, and unit and acceptance tests were expanded ensuring full and appropriate testing coverage was attained.

Work was done iteratively across the provider and the Go Client Library ensuring both were kept in a fully working and tested state throughout the development process. At all stages of the engagement, UpCloud were kept fully informed of progress through transparent stand-ups and regular weekly meetings.

The Terraform Provider Documentation was expanded and improved with many examples helping new users get started with UpCloud services quickly. Finally we worked with UpCloud and HashiCorp to publish the Terraform Provider to the Terraform Registry and to acquire Verified status.

The Outcome

Through our partnership we delivered:

  • A Trusted & Supported Provider – Terraform Verified status achieved
  • Improved Developer Experience – Ability to use latest Terraform and UpCloud features, as well as clear documentation with examples for getting up and running quickly.


“A growing number of our customers have started to use Infrastructure As Code (IaC) to manage their UpCloud projects and when it comes to IaC tools, Terraform is one of the most exciting ones. Therefore it was important for us to choose a partner with a deep understanding of Terraform and other Hashicorp products. Thanks to OpenCredo we are now listed as a verified Terraform provider. Cooperation with OpenCredo and their team of highly skilled professionals has been a pleasure so far.”

-Juha-Pekka Järvenpää, Head of Product