/terraform-provider-bunny

bunny.net CDN Terraform Provider

Primary LanguageGoMozilla Public License 2.0MPL-2.0

Bunny.Net Terraform Provider

terraformregistry

This repository provides a Terraform provider for the Bunny.net CDN platform.
It supports to manage Pull and Storage Zones.

Development

Using the Local Provider with Terraform

  1. Build and install the provider binary via:

    make install
  2. Use the Development Overrides for Provider Developers feature to enforce using the local terraform-provider-bunny binary.
    Run:

    make gen-dev-tftrc

    to generate a terraform config with dev_overrides statement, referencing the directory make install installed the binary to.

  3. Instruct Terraform to use the new config file instead of the default one by setting the TF_CLI_CONFIG_FILE to the path of the generated bunny-dev.tftrc file. For example:

    export TF_CLI_CONFIG_FILE="/home/fho/tf-provider-bunny-dev.tftrc"

Running Integration Tests

To run the integration tests a bunny.net account is needed. The integration tests will create, modify and delete real resources. Therefore a bunny.net account should be used that does not manage resources used in production.

To run the integration tests set the BUNNY_API_KEY to your bunny.net API key:

export BUNNY_API_KEY=MY-TOKEN

Then run:

make testacc

Sweeper

To cleanup resources that might have been left over by running tests, run:

make sweep

Generating Documentation

make docs

Creating a Release

  1. Ensure the entry for the version in CHANGELOG.md is uptodate.
    (Keep the (Unreleased) marker.)

  2. Run:

    scripts/create-release.sh VERSION

    To finalize the CHANGELOG.md file, create a signed git tag, build the release binaries create a GitHub draft release with the binaries.

  3. Publish the draft release on github.

Missing Features

  • unsupported Pull Zone features:
    • burst_size
    • dns_record_id
    • dns_zone_id
    • enable_cookie_vary
    • enable_query_string_ordering
    • limit_rate_after
    • limit_rate_per_second
    • origin_shield_enable_concurrent_limit
    • origin_shield_max_concurrent_requests
    • origin_shield_max_queued_requests
    • origin_shield_queue_max_wait_time
    • use_stale_while_offline
    • use_stale_while_updating
    • limits block:
      • limit_rate_per_second
      • limit_rate_after
      • burst_size
  • Pull Zone fields with missing write support:
    • blocked_referrers
    • all enable_geo_zone_* fields

Status

The provider is under initial development and should be considered as unstable.
Breaking API changes can happen anytime.