sacloud / terraform-provider-sakuracloud

Terraform provider for SakuraCloud
https://docs.usacloud.jp/terraform
Apache License 2.0
71 stars 22 forks source link

ウェブアクセラレータ対応 #256

Closed yamamoto-febc closed 4 years ago

yamamoto-febc commented 6 years ago

2017/12に公開APIが追加されたため、サイト情報の参照や証明書の登録が可能となった。 参考: ウェブアクセラレータ 公開API

この追加されたAPIを利用してウェブアクセラレータ用のリソース/データリソースを追加する。

利用イメージ

# サイト情報をデータリソースで参照する
data sakuracloud_webaccel_site "site01" {
  # サイト名からサイト情報を検索
  name_selectors = ["your-site-name"]
}

resource sakuracloud_webaccel_certificate "site01cert" {
  # データリソースからサイトIDを参照
  site_id     = "${data.sakuracloud_webaccel_site.site01.id}"
  certificate = "${file("your-crt-file-path")}"
  private_key = "${file("your-key-file-path")}"
}

#===================================================================
# 応用例: ウェブアクセラレータで発行されたCNAME先を利用してDNSレコード登録
#===================================================================
#DNSゾーン
data sakuracloud_dns "zone" {
  filter = {
    name   = "Name"
    values = ["example.com"]
  }
}

#DNSレコード(ウェブアクセラレータで発行されたCNAMEレコードを登録)
resource sakuracloud_dns_record "records" {
  dns_id = "${data.sakuracloud_dns.zone.id}"
  name   = "www"
  type   = "CNAME"
  value  = "${sakuracloud_webaccel_site.site01.subdomain}."
  ttl    = 60
}
yamamoto-febc commented 6 years ago

現在は証明書の更新のみがサポートされている。 このため現状ではリソースとしての提供が難しい。

yamamoto-febc commented 4 years ago

証明書登録APIが公開され、libsacloudでもサポートした。 このため実装を検討する。

yamamoto-febc commented 4 years ago

Note: 新規リソースとなるためlibsacloud v2で実装することも検討したが、クライアントのファクトリをv2用に準備するのが面倒だったのでv1で実装し他のリソースと同様に今後のv2対応の際に修正する。