dtcloud_router (Kaynak)
Sanal bir yönlendiriciyi yönetir: özel ağlara internete çıkış ve birbirlerine erişim veren şey.
Bir yönlendiricinin her zaman bir dış ağ geçidi vardır. Platformda geçitsiz yönlendirici oluşturan bir uç nokta yoktur; bu yüzden external_network_id isteğe bağlı değil zorunludur ve her yönlendirici projenin kotasından bir public adres tüketir.
Bir yönlendiriciye ait olan iki şey burada argüman değildir, çünkü her birinin kendi yaşam döngüsü vardır: ona bağlanan özel ağlar (dtcloud_router_interface) ve statik rotaları (dtcloud_router_static_route).
Örnek Kullanım
# Dış ağ kimlikle verilmek zorundadır ve platformda hangi ağın dış ağ
# olduğunu belirten bir işaret yoktur — bölgeyi işleten kişiye sorun ya
# da var olan bir yönlendiricinin dış ağ adını dtcloud_routers ile okuyup
# dtcloud_networks içinde arayın.
variable "external_network_id" {
type = string
}
resource "dtcloud_router" "main" {
name = "edge"
external_network_id = var.external_network_id
enable_snat = true
}
resource "dtcloud_network" "app" {
name = "app"
ipam_enabled = true
cidr = "10.0.10.0/24"
}
# Uygulama ağına çıkış yolu verin.
resource "dtcloud_router_interface" "app" {
router_id = dtcloud_router.main.id
network_id = dtcloud_network.app.id
}
Şema
Zorunlu
external_network_id(String) Yönlendiricinin dışarıya eriştiği dış ağın kimliği. Her yönlendiricinin bir tane vardır. Yerinde değiştirilebilir.name(String) Yönlendiricinin adı. Yerinde değiştirilebilir.
İsteğe Bağlı
enable_snat(Boolean) Geçidin, arkasındaki özel ağlardan gelen trafiği maskeleyip maskelemeyeceği. Yerinde değiştirilebilir.timeouts(Block, Optional) (bkz. aşağıdaki iç içe şema)
Salt Okunur
admin_state_up(Boolean) Yönlendiricinin yönetimsel olarak etkin olup olmadığı.created_at(String) Platformun bildirdiğine göre yönlendiricinin oluşturulma zamanı.description(String) Platformun tuttuğu açıklama. Bu API üzerinden açıklama ayarlamanın bir yolu yoktur; bu yüzden bildirilir ama yönetilmez.external_fixed_ip(List of Object) Dış ağın geçide tahsis ettiği adresler. Oluşturma uç noktası her zaman IPv4 ister ve belirli bir adresi asla kabul etmez; bu yüzden bunlar salt okunurdur. (bkz. aşağıdaki iç içe şema)id(String) Bu kaynağın kimliği.project_id(String) Yönlendiricinin ait olduğu projenin kimliği.status(String) Platformun bildirdiği durum. Kararlı durumACTIVE'tir.updated_at(String) Yönlendiricinin son değişiklik zamanı.
timeouts için iç içe şema
İsteğe Bağlı:
create(String)delete(String)update(String)
external_fixed_ip için iç içe şema
Salt Okunur:
ip_address(String)subnet_id(String)
Bilinmesi Gerekenler
- Geçidin adresi istenmez, atanır.
external_fixed_ipsalt okunurdur: oluşturma dış ağdan bir adres ister ve verileni alır. Bir hizmetin önünde sabit ve bilinen bir public adres gerekiyorsa, yönlendirici geçidi yerine kayan IP kullanın. - Dış ağı belirleyen hiçbir şey yok. Ağ listesinde bunun için bir işaret yoktur ve bir bölge, yalnızca biri yönlendirilebilir olan birden çok
Physicalağ barındırabilir — yanidtcloud_networks'ü türe göre süzüp ilkini almak, er geç yanlış çıkacak bir tahmindir. Bölgeyi işleten kişiye sorun ya da var olan bir yönlendiricinin dış ağ adınıdtcloud_routersile okuyup o adıdtcloud_networksiçinde arayın. - Bir yönlendirici bir public adrese mal olur, ayrıca yönlendirici kotasından bir yönlendiriciye ve dış ağda adres alanına. Kalanı
dtcloud_project_quotasgösterir. - Ad değişikliği ile geçit değişikliği iki ayrı istektir. Platform bunları farklı gövdelerle alır; bu yüzden ikisini tek apply'da değiştirmek iki çağrı gönderir. Bunun planda hiçbir görünürlüğü yoktur.
- Yeniden başlatma sunulmuyor. Platformun yeniden başlatma eylemi hiçbir iş yapmadan yanıt verir, işi yirmi saniye sonra arka planda yapar ve ne başarıyı ne başarısızlığı bildirir — bir kaynağın tutabileceği bir tutamak yoktur. Ayrıca bir durum değil bir olaydır;
dtcloud_vm'inrebootargümanının olmamasının nedeni de aynıdır. - Terraform dışında kaldırılan bir geçit geri gelir.
external_network_idboş okunur ve bir sonraki plan onu geri koymayı önerir; bu da tam olarak bir planın göstermesi gereken farktır.
Zaman Aşımları
create, update ve delete varsayılan olarak 10'ar dakikadır. Oluşturma, platform ACTIVE bildirene kadar dönmez; yok etme de yönlendirici çözümlenmeyi bırakana kadar dönmez — böylece bağımlı bir kaynağa henüz trafik taşıyamayan bir yönlendirici verilmez ve yok etme, tuttuğu public adresi ücretlendirilir hâlde bırakmaz.
İçe Aktarma
terraform import dtcloud_router.main 3f2a1c9e-77b4-4a01-9d3e-2b6c81f4e5a7
Her şey geri gelir. name, external_network_id ve enable_snat bildirilir; bu yüzden içe aktarmanın ardından gelen plan boştur.
Bağlı arayüzler ve statik rotalar yönlendiriciyle birlikte içe aktarılmaz: her birini kendi kaynağı olarak içe aktarın ya da dtcloud_router_interfaces ve dtcloud_router_static_routes ile yönetmeden okuyun.