Skip to content

archestra-ai/terraform-provider-archestra

Repository files navigation

Archestra Terraform Provider

Thank you for your interest in contributing to the Archestra Terraform Provider!

Development

Prerequisites

  • Go >= 1.24
  • Terraform
    • We recommend using tenv to manage your terraform installations
  • Make (optional, for convenience)

Local Development

To use a locally-built provider, you'll need to configure Terraform's development overrides. Create or edit ~/.terraformrc:

provider_installation {
  dev_overrides {
    "archestra-ai/archestra" = "<your-path-to-this-repo-on-your-machine>"
  }

  direct {}
}

Then you can run Terraform commands in the examples/ directory.

Building the Provider

make build

Testing

Run the provider tests:

make test

Codegen

Terraform docs

make generate

Archestra API Client

The API client is generated from the Archestra platform's OpenAPI spec and is pinned to a specific version of Archestra. To regenerate/bump the client:

  1. Run the Archestra platform locally at the desired version. The easiest way is using Docker:

    docker run -p 9000:9000 -p 3000:3000 \
      -e ARCHESTRA_ENTERPRISE_LICENSE_ACTIVATED=true \
      -v archestra-postgres-data:/var/lib/postgresql/data \
      -v archestra-app-data:/app/data \
      archestra/platform:<version-tag>

    Note: The -e ARCHESTRA_ENTERPRISE_LICENSE_ACTIVATED=true flag is required to ensure the OpenAPI spec includes all routes and types.

    See the Archestra Platform Quickstart for more details.

  2. Generate the client from the running platform's OpenAPI spec (served at http://localhost:9000/openapi.json):

    make codegen-api-client
  3. Update the ARCHESTRA_VERSION env var in .github/workflows/on-pull-request.yml to match the version you generated the client from. This ensures CI acceptance tests run against the same version.

Code Style

Run the formatter before committing:

make lint  # requires golangci-lint installed (see https://golangci-lint.run/docs/welcome/install/)
make fmt

Release Process

Releases are automated via GitHub Actions using release-please

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 10