Terraform sağlayıcısı
Sunucu, veritabanı, fonksiyon ve DNS kaydını altyapı-kod olarak yönetin.
Sağlayıcı Terraform Registry'de haizora/haizora adıyla yayında; kaynak kodu GitHub'da.
Kurulum ve kimlik
terraform {
required_providers {
haizora = {
source = "haizora/haizora"
}
}
}
# Token from the HAIZORA_TOKEN environment variable (write scope)
provider "haizora" {}| Ayar | Açıklama |
|---|---|
token | Yazma kapsamlı API anahtarı (HAIZORA_TOKEN). Hassas. |
api_url | API adresi; varsayılan https://api.haizora.com/v1 (HAIZORA_API_URL). |
haizora_server
Bulut sunucu (VPS). Oluşturmak sipariş verir (abonelik + fatura); sunucu fatura ödendikten sonra hazırlanır, IP ve SSH bilgileri sonraki yenilemede dolar. Silmek aboneliği dönem sonunda iptal eder (cancel_immediately = true ise hemen; iade yok).
resource "haizora_server" "web" {
plan_key = "vps-business"
}| Alan | Açıklama |
|---|---|
plan_key | Zorunlu. Katalog planı, ör. vps-business (GET /v1/catalog). |
region | İsteğe bağlı. Yalnız konumlu planlarda (Global VPS) planın konum kodlarından biri. |
cancel_immediately | İsteğe bağlı. Silince aboneliği hemen iptal et. |
ipv4, ipv6, ssh_host, ssh_port, ssh_user | Salt okunur. Sunucu hazırlanınca dolar. |
status, subscription_status, invoice_id, server_id | Salt okunur. |
haizora_database
Yönetilen PostgreSQL, MySQL ya da Redis. Oluşturmak sipariş verir. İlk parola tek seferlik bir gizli değerdir ve state'e düşmesin diye sağlayıcı tarafından OKUNMAZ; panelden alın.
resource "haizora_database" "pg" {
plan_key = "pg-mini"
}| Alan | Açıklama |
|---|---|
plan_key | Zorunlu. Yönetilen veritabanı planı. |
cancel_immediately | İsteğe bağlı. |
engine, host, port, database, username, sslmode | Salt okunur. Bağlantı bilgileri. |
haizora_function
Sunucusuz fonksiyon (ES modül: export default { async fetch(request, env) { ... } }). Kod, dil ya da gizli değer değişince yeni sürüm yayınlanır; yalnız env değişirse değişkenler yerinde güncellenir.
resource "haizora_function" "hello" {
name = "hello"
code = file("${path.module}/worker.js")
env = {
GREETING = "merhaba"
}
}| Alan | Açıklama |
|---|---|
name | Zorunlu. 3-32 karakter: küçük harf, rakam, tire. Adresin parçasıdır. |
code | Zorunlu. Kaynak kod, ör. file("worker.js"). |
language | İsteğe bağlı. js ya da ts. |
env | İsteğe bağlı. Düz ortam değişkenleri. |
secrets | İsteğe bağlı, hassas. API tarafında yalnız yazılır; geri okunmadığı için sapma algılanmaz. |
url, active_version, status | Salt okunur. |
haizora_dns_record
Haizora'da kayıtlı bir alan adının DNS kaydı. Her değişiklik kaydı yeniden oluşturur.
data "haizora_domain" "main" {
name = "example.com"
}
resource "haizora_dns_record" "api" {
domain_id = data.haizora_domain.main.id
type = "CNAME"
name = "api"
value = "hello.example.haizora.page"
ttl = 300
}| Alan | Açıklama |
|---|---|
domain_id | Zorunlu. Alan adı kimliği (data.haizora_domain). |
type | Zorunlu. A, AAAA, CNAME, MX, TXT ya da CAA. |
value | Zorunlu. |
name | İsteğe bağlı. Ana alan için @. |
ttl | İsteğe bağlı. 60-86400 saniye. |
priority | İsteğe bağlı. Yalnız MX. |
İçe aktarma: <domain_id>/<TYPE>/<name>/<value>
terraform import haizora_dns_record.api 123/CNAME/api/hello.example.haizora.pagedata.haizora_domain
Bu hesapta kayıtlı bir alan adını adından bulur; id, status ve expires_at döndürür.