Terraform + GCP をもう少しやってみる #4
Terraform + GCP の続き
HTTPS PROXY の証明書更新
HTTPS Proxy を作成した後、SSL証明書を再作成して適用したらどうなる?と思って試した。けど、terraform apply
をすると・・・
destroy and then create replacement
となりgoogle_compute_ssl_certificate
リソースが再作成になる。そしてdestroy
のタイミングでコケる(´・ω・`)- 調べたら Updating a google_compute_ssl_certificate fails if it is used by a google_compute_target_https_proxy #10546 で
name_prefix
、create_before_destroy
で出来ると書いてある。 - なので
name_prefix
で試したら、今度は WARNING とURLが表示されたので、そこを見てみた > Deprecate name_prefix
結論としては name_prefix
ではなく、${random_id.rand.dec}
を使えば良いらしいという事がわかった。 random
はプロバイダープラグインだったので再度 init > plan > apply を実行、暫くして証明書が更新された事を確認した。
最終的にうまくいった内容は以下の通り。
resource "random_id" "rand" { byte_length = 11 } resource "google_compute_ssl_certificate" "target_https_proxy_certficate" { name = "defailt-ssl-certificate-${random_id.rand.dec}" private_key = "${file("private.key")}" certificate = "${file("certificate.crt")}" lifecycle { create_before_destroy = true } }
GitHub に置いた
もっとこうしたい、もっと良いやり方があるはず・・・とは思うけど、とりあえず今出来ているところで一旦 GitHub に置いた。
https://github.com/pochio/terraform-gcp-example
あとで見る
- Terraform職人入門: 日々の運用で学んだ知見を淡々とまとめる
- Terraform Document : Built-in Functions
- デバッグログの出力:
TF_LOG=DEBUG terraform init
とかTF_LOG=DEBUG
を付ける
以上