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
| Kaynaklar | Veri kaynakları |
|---|---|
dtcloud_ssh_key | dtcloud_ssh_key |
dtcloud_vm | dtcloud_ssh_keys |
dtcloud_vm_volume_attachment | dtcloud_vm |
dtcloud_vm_network_interface | dtcloud_vms |
dtcloud_network | dtcloud_vm_history |
dtcloud_security_group | dtcloud_vm_history_entry |
dtcloud_security_group_rule | dtcloud_network |
dtcloud_elastic_ip | dtcloud_networks |
dtcloud_volume | dtcloud_security_group |
dtcloud_snapshot | dtcloud_security_groups |
dtcloud_router | dtcloud_my_ip |
dtcloud_router_interface | dtcloud_elastic_ip |
dtcloud_router_static_route | dtcloud_elastic_ips |
dtcloud_lb | dtcloud_volume |
dtcloud_lb_listener | dtcloud_volumes |
dtcloud_lb_pool | dtcloud_volume_snapshots |
dtcloud_lb_member | dtcloud_storage_policies |
dtcloud_lb_health_monitor | dtcloud_snapshot |
dtcloud_lb_balancing_pool | dtcloud_snapshots |
dtcloud_image | dtcloud_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:
-
providerbloğu. Açıktır ve sürüm denetimindedir. Gizli anahtarı burada asla düz metin olarak yazmayın: varsayılanı olmayan birvariable'a başvurun, Terraform onu sorar; ya da git'e girmeyen birterraform.tfvarsdosyasına koyun. -
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. -
Yapılandırma dosyası. Hâlâ ayarlanmamış olan her şey bu makinenin yapılandırma dizinindeki
config.yamldosyasından okunur:İşletim sistemi Yol Linux ~/.config/terraform-provider-dtcloud/config.yamlmacOS ~/Library/Application Support/terraform-provider-dtcloud/config.yamlWindows %AppData%\terraform-provider-dtcloud\config.yamlapi:
access_key: "..."
secret_key: "..."
base_url: https://console.dt.net.tr/api/v1
region_id: 2Dosya 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ındefault_profiledeğeri, o da yoksadefaultkullanı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.