Ana içeriğe geç

dtcloud Sağlayıcısı

DT Cloud (CMP) kaynaklarını Terraform ile yönetin: istediğiniz altyapıyı bir yapılandırma dosyasında tanımlayın, terraform apply çalıştırın; sağlayıcı platformu buna uygun hale getirir.

Sağlayıcı DT Cloud API'siyle dt-go SDK'sı üzerinden konuşur. Bu, dtctl komut satırı aracının kullandığı SDK'nın aynısıdır; bu yüzden iki araç da aynı API'yi görür ve aynı şekilde davranır.

Bu sağlayıcının yönettikleri​

KaynaklarVeri kaynakları
dtcloud_ssh_keydtcloud_ssh_key
dtcloud_vmdtcloud_ssh_keys
dtcloud_vm_volume_attachmentdtcloud_vm
dtcloud_vm_network_interfacedtcloud_vms
dtcloud_networkdtcloud_vm_history
dtcloud_security_groupdtcloud_vm_history_entry
dtcloud_security_group_ruledtcloud_network
dtcloud_elastic_ipdtcloud_networks
dtcloud_volumedtcloud_security_group
dtcloud_snapshotdtcloud_security_groups
dtcloud_routerdtcloud_my_ip
dtcloud_router_interfacedtcloud_elastic_ip
dtcloud_router_static_routedtcloud_elastic_ips
dtcloud_lbdtcloud_volume
dtcloud_lb_listenerdtcloud_volumes
dtcloud_lb_pooldtcloud_volume_snapshots
dtcloud_lb_memberdtcloud_storage_policies
dtcloud_lb_health_monitordtcloud_snapshot
dtcloud_lb_balancing_pooldtcloud_snapshots
dtcloud_imagedtcloud_router
dtcloud_routers
dtcloud_router_interfaces
dtcloud_router_static_routes
dtcloud_lb
dtcloud_lbs
dtcloud_lb_vms
dtcloud_lb_flavors
dtcloud_image
dtcloud_images
dtcloud_image_versions
dtcloud_flavors
dtcloud_regions
dtcloud_projects
dtcloud_project_quotas
dtcloud_project_limits

Her sayfa kendi örneklerini, davranış notlarını ve içe aktarma yönergelerini taşır.

Örnek Kullanım​

terraform {
required_providers {
dtcloud = {
source = "dtcloudnow/dtcloud"
version = "~> 26.0.0"
}
}
}

# Terraform, varsayılanı ve henüz değeri olmayan her değişkeni sorar.
# Değerleri commit etmediğiniz bir terraform.tfvars dosyasına koyun ya da
# bunun yerine DTCLOUD_* ortam değişkenlerini kullanın. Adresin varsayılanı
# üretim ortamıdır; başka her ortam için değerini verin.
variable "dtcloud_access_key" {
type = string
}

variable "dtcloud_secret_key" {
type = string
sensitive = true
}

variable "dtcloud_region_id" {
type = string
}

variable "dtcloud_api_url" {
type = string
default = "https://console.dt.net.tr/api/v1"
}

provider "dtcloud" {
access_key = var.dtcloud_access_key
secret_key = var.dtcloud_secret_key
region_id = var.dtcloud_region_id
api_endpoint = var.dtcloud_api_url
}

Kimlik Doğrulama​

Her istek bir erişim anahtarı ve bir gizli anahtar taşır ve tek bir bölgeyle sınırlıdır. Sağlayıcı access_key, secret_key, api_endpoint ve region_id değerlerinin her birini, onu sağlayan ilk kaynaktan alır:

  1. provider bloğu. Açıktır ve sürüm denetimindedir. Gizli anahtarı burada asla düz metin olarak yazmayın: varsayılanı olmayan bir variable'a başvurun, Terraform onu sorar; ya da git'e girmeyen bir terraform.tfvars dosyasına koyun.

  2. Ortam değişkenleri: DTCLOUD_ACCESS_KEY, DTCLOUD_SECRET_KEY, DTCLOUD_API_URL, DTCLOUD_REGION_ID. CI için doğru seçim budur: yapılandırma dosyasını geçersiz kılarlar, böylece bir derleme ajanı bir geliştiricinin hesabını asla sessizce devralmaz.

  3. Yapılandırma dosyası. Hâlâ ayarlanmamış olan her şey bu makinenin yapılandırma dizinindeki config.yaml dosyasından okunur:

    İşletim sistemiYol
    Linux~/.config/terraform-provider-dtcloud/config.yaml
    macOS~/Library/Application Support/terraform-provider-dtcloud/config.yaml
    Windows%AppData%\terraform-provider-dtcloud\config.yaml
    api:
    access_key: "..."
    secret_key: "..."
    base_url: https://console.dt.net.tr/api/v1
    region_id: 2

    Dosya bir gizli anahtar tutar, bu yüzden yalnızca sahibi tarafından okunabilir olmalıdır. Sağlayıcı kendi varsayılan yolundaki fazla izinli bir dosyanın izinlerini daraltır, başka bir yerdeki için uyarı verir.

Sağlayıcının çalıştırılabilir dosyası aynı zamanda kendi kurulum komutudur: terraform-provider-dtcloud configure access key, secret key ve bölgeyi sorar, kaydetmeden önce onları API'ye karşı doğrular ve dosyayı doğru izinlerle yazar. -profile prod ikinci bir hesap yazar; bu hesap profile argümanıyla ya da DTCLOUD_PROFILE ile seçilir.

Şema​

İsteğe Bağlı​

  • access_key (String) API erişim anahtarı; x-api-access-key başlığıyla gönderilir.
  • api_endpoint (String) DT Cloud API'sinin /api/v1 ile biten temel URL'si. Ayarlanmazsa SDK'nın varsayılanı kullanılır.
  • config_file (String) Yapılandırma dosyasının yolu. Varsayılan olarak bu makinenin yapılandırma dizininde, terraform-provider-dtcloud altındaki config.yaml dosyasıdır.
  • profile (String) Yapılandırma dosyasındaki hangi hesabın kullanılacağı. Varsayılan olarak dosyanın default_profile değeri, o da yoksa default kullanılır.
  • region_id (String) Bölge / sunucu kimliği; her istekte serverId sorgu parametresi olarak gönderilir.
  • secret_key (String, Sensitive) API gizli anahtarı; x-api-secret-key başlığıyla gönderilir.