×

Terraform

Limelight integrates with HashiCorp’s Terraform provisioning platform

Eveline_Carr_Headshot

Blog Post by Eveline Carr, Developer Community Manager

October 28th, 2020

Limelight recently completed an integration with HashiCorp’s Terraform platform, an open-source tool for provisioning and managing cloud services. Limelight customers in Ops and DevOps roles can now manage key Limelight services directly from Terraform.

 

Limelight is also a Verified Provider for Terraform, so customers can access and install the open-source integration software (known as a Terraform provider) via the Terraform Registry. The new provider is also available via Limelight's public GitHub.

 

Limelight’s Terraform provider supports provisioning and management of two key Limelight services: Content Delivery and EdgeFunctions. Using Terraform, customers can create, update and delete both Content Delivery configurations and EdgeFunctions code instances.

For the Content Delivery service, new configurations can be created from scratch or imported from existing configurations. The functionality in the following Content Delivery API endpoints is supported:

  • Create a new delivery service instance - POST https://apis.llnw.com/config-api/v1/svcinst/delivery
  • Retrieve an existing delivery service instance - GET https://apis.llnw.com/config-api/v1/svcinst/delivery/{id}
  • Update an existing delivery service instance - PUT https://apis.llnw.com/config-api/v1/svcinst/delivery/{id}
  • Delete an existing delivery svc instance - DELETE https://apis.llnw.com/config-api/v1/svcinst/delivery/{id}

 

For the EdgeFunctions service, EdgeFunctions can be created, updated and deleted. All of the EdgeFunctions API endpoints are supported.

 

In the near future, the Limelight Terraform provider will also enable slot provisioning and management for Limelight's Realtime Streaming service, with support for additional services planned in the coming months.

$ terraform apply

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # limelight_delivery.new_config will be created
  + resource "limelight_delivery" "new_config" {
      + shortname          = "example"
      + service_profile    = "LLNW-Generic"
      + source_hostname    = "origin.example.com"
      + source_path        = "/"
      + published_hostname = "published.example.com"
      + published_path     = "/"
      + id                 = (known after apply)
      + version_number     = (known after apply)
      + protocol_set {
          + source_protocol    = "https"
          + published_protocol = "https"
        }
    }

Plan: 1 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

limelight_delivery.new_config: Creating...
limelight_delivery.new_config: Creation complete after 6s [id=47ad5644-82e3-4999-9ee4-e4e6248c2346]

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.