Yet provider

Your company as code — its Settings and its Cloud — planned, reviewed and applied like the rest of your infrastructure. Every name says its product, as AWS’s do: yet_cloud_server, yet_settings_person.

Quickstart

Declare the provider, and give it a key through the environment:

main.tf
terraform {
  required_providers {
    yet = {
      source = "yetcombr/yet"
    }
  }
}

provider "yet" {}

resource "yet_cloud_rack" "home" {
  name = "Home Rack"
  kind = "local"
}

resource "yet_cloud_server" "box" {
  name    = "box"
  rack_id = yet_cloud_rack.home.id
}

resource "yet_cloud_runtime" "k3s" {
  name      = "box-k3s"
  stack     = "local:traefik+k3s"
  server_id = yet_cloud_server.box.id
}

resource "yet_cloud_environment" "staging" {
  name       = "staging"
  runtime_id = yet_cloud_runtime.k3s.id
}
bash
export YET_API_KEY=yet_acme_…
terraform init
terraform apply
Actions — a backup, a release, a promotion — need Terraform 1.14 or later; the rest, any Terraform 1.x (import blocks, 1.5).

Every product of a Yet company — its Settings, its Cloud — as code. An API key, made in Yet in Preferences → API keys, names the company and acts as its person: the provider does what they may do, and nothing more.

Example Usage

terraform {
  required_providers {
    yet = {
      source = "yetcombr/yet"
    }
  }
}

# The key comes from YET_API_KEY when api_key is left out. Make one in Yet:
# Preferences → API keys.
provider "yet" {}

Schema

Optional

  • api_key (String, Sensitive) The API key, yet_<company>_<secret>. Falls back on YET_API_KEY.
  • base_domain (String) Yet's domain: yet.com.br unless set, or YET_BASE_DOMAIN.
  • cloud_url (String) Cloud's API, https://cloud.<base_domain> unless set, or YET_CLOUD_URL.
  • workspace_url (String) The company's address, https://<company>.<base_domain> unless set, or YET_WORKSPACE_URL.

Settings

IAM

Cloud