Skip to content

CloudAutomator/terraform-provider-cloudautomator

Terraform Provider For Cloud Automator

Terraform provider for Cloud Automator

Building The Provider

Prerequisites

  • Go 1.25 or later
  • GNU Make

Clone the repository:

$ git clone [email protected]:CloudAutomator/terraform-provider-cloudautomator.git
$ cd terraform-provider-cloudautomator

Build the provider binary. The build writes terraform-provider-cloudautomator_v<VERSION> into ./bin/:

$ make build VERSION=<release-version>

Install the built binary into the Terraform plugin directory for your OS/architecture:

$ make install VERSION=<release-version>

Development Commands

The project uses a GNUmakefile for common development tasks.

Testing

Run unit tests:

$ make test

Run acceptance tests (requires valid Cloud Automator API credentials):

$ make testacc

Code Formatting

Format Terraform example files:

$ make fmt

Documentation

Generate provider documentation from schema definitions:

$ make docs-generate

Verify documentation is up to date:

$ make test-docs

Cleanup

Remove installed provider binaries:

$ make clean VERSION=<release-version>

Authentication and Configuration

Cloud Automator Provider authentication settings are applied in the following order.

  1. Parameters in the provider configuration
  2. Environment variables

Provider Configuration

provider "cloudautomator" {
  api_key = "abcdefghijklmnopqrstuvwxyz"
}

Environment Variables

provider "cloudautomator" {}
$ export CLOUD_AUTOMATOR_API_KEY="abcdefghijklmnopqrstuvwxyz"
$ terraform plan

Custom Endpoint Configuration

Cloud Automator Provider can be customized to connect to non-default endpoints and is applied in the following order.

  1. Parameters in the provider configuration
  2. Environment variables

Provider Configuration

provider "cloudautomator" {
  ...

  api_endpoint = "http://localhost:3000/api/v1/"
}

Environment Variables

provider "cloudautomator" {}
$ export CLOUD_AUTOMATOR_API_ENDPOINT="http://localhost:3000/api/v1/"
$ terraform plan

Usage Example

# Configure the Cloud Automator Provider
terraform {
  required_providers {
    cloudautomator = {
      source = "CloudAutomator/cloudautomator"
      version = "0.3.1"
    }
  }
}

provider "cloudautomator" {}

resource "cloudautomator_job" "example-job" {
  name = "example-job"

  group_id       = 10

  rule_type = "cron"
  cron_rule_value {
    hour          = "9"
    minutes       = "30"
    schedule_type = "weekly"
    weekly_schedule = [
      "monday",
      "sunday"
    ]
    time_zone                 = "Tokyo"
    dates_to_skip             = ["2022-12-31"]
    national_holiday_schedule = "true"
  }

  action_type = "delay"
  delay_action_value {
    delay_minutes = 1
  }

  completed_post_process_id = [100]
  failed_post_process_id    = [200]
}

Provider Documentation

The provider ships with auto-generated documentation under docs/. Run make docs-generate after updating schemas to refresh the content.

For detailed usage examples of specific actions, see the examples/ directory which contains over 70 sample configurations for various Cloud Automator job actions.

Resources

Data Sources

About

Terraform provider for Cloud Automator.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Contributors 7