Provider Terraform

Zarządzaj projektami, kluczami SSH i maszynami wirtualnymi hostd Public Cloud za pomocą Terraform.

Provider Terraform hostd zarządza Twoim Public Cloud jako kodem: projektami, kluczami SSH i maszynami wirtualnymi. Korzysta z tego samego API i tego samego klucza API.

Provider: hostdcloud/hostd w Terraform Registry — tam opisano każdy zasób i argument.

Podłączenie

Utwórz klucz API w portalu w Ustawienia → Klucze API i wyeksportuj go:

export HOSTD_API_KEY=<your-api-key>
terraform {
  required_providers {
    hostd = {
      source = "hostdcloud/hostd"
    }
  }
}

provider "hostd" {}

Dostęp

Provider działa z Twoim kluczem API, więc ma taki sam dostęp jak klucz (szczegóły):

  • hostd_ssh_key wymaga dostępu Write do kluczy SSH.
  • hostd_project wymaga klucza, który może tworzyć projekty; klucz dostaje Full do projektów, które utworzy. Aby użyć istniejącego projektu, wpisz jego UUID w project_id.
  • hostd_vm wymaga dostępu Write do projektu; usunięcie VM wymaga Full.
  • Odczyt stanu i hostd_os_images wymagają Read.

Przykład

resource "hostd_project" "main" {
  name         = "production"
  cluster_name = "waw-1"
}

resource "hostd_ssh_key" "admin" {
  name           = "admin"
  public_ssh_key = file("~/.ssh/id_ed25519.pub")
}

data "hostd_os_images" "available" {
  project_id = hostd_project.main.id
}

resource "hostd_vm" "web" {
  project_id  = hostd_project.main.id
  hostname    = "web-01"
  os_image    = "debian-12-amd64.qcow2"
  ssh_key_ids = [hostd_ssh_key.admin.id]
  cores       = 2
  ram_gb      = 4
  os_disk_gb  = 20
}

output "web_ipv4" {
  value = hostd_vm.web.ipv4
}

Nazwy obrazów zależą od klastra: hostd_os_images zwraca obrazy dostępne w projekcie. Do VM logujesz się dołączonymi kluczami SSH; provider ustawia losowe hasło i go nie ujawnia.

Zasoby

NazwaCzym zarządza
hostd_projectProjekt w klastrze (strefie)
hostd_ssh_keyPubliczny klucz SSH na koncie
hostd_vmVM: CPU, RAM, dysk, klasa CPU, sieci publiczna i prywatne
hostd_os_images (źródło danych)Obrazy systemów dostępne w projekcie

Limity

  • Provider przestrzega limitów API: po osiągnięciu limitu czeka czas z nagłówka Retry-After i ponawia żądanie.
  • CPU lub RAM VM można zmniejszyć tylko przy zatrzymanej VM (najpierw zatrzymaj ją w portalu) i dopiero 24 godziny po jej utworzeniu lub ostatnim zwiększeniu.
  • Zmiana sieci publicznej VM między ipv4, ipv6 i dual odbywa się przez off.
  • Sieci prywatne podłączasz po nazwie (lan_vnets); najpierw utwórz je w portalu.

On this page