如何使用terraform调用gcloud命令



由于terraform还没有redis tls支持,我们计划通过terraform调用gcloud命令来创建启用tls的redis。我是新的地形,所以在网上寻找一些资源。但没找到多少。有人能帮我做一个工作样品吗?任何gcloud命令调用都可以。

感谢

Terraform构建在底层REST api之上,不直接使用云SDK (gcloud)。由于这个原因,在没有提供程序支持资源的情况下,直接调用gcloud命令并不简单。

我不熟悉Terraform,但我希望(!?)直接调用shell命令(例如gcloud redis instances create ...)是不鼓励的。而且,虽然也有可能直接调用REST api,但您需要注意身份验证。

也就是说,google-beta支持TLS。

transit_encryption_mode = "SERVER_AUTHENTICATION"

terraform {
required_providers {
google-beta = {
source = "hashicorp/google-beta"
version = "3.58.0"
}
}
}
variable "project" {}
variable "region" {}
variable "zone" {}
variable "key" {}
variable "instance" {}
provider "google-beta" {
credentials = file(var.key)
project = var.project
region  = var.region
zone    = var.zone
}
resource "google_redis_instance" "cache" {
provider = google-beta
name = var.instance
tier = "BASIC"
memory_size_gb = 1
location_id = var.zone
transit_encryption_mode = "SERVER_AUTHENTICATION"
}

然后确认启用tls:

gcloud redis instances describe ${INSTANCE} 
--region=${REGION} 
--project=${PROJECT} 
--format="value(transitEncryptionMode)"
SERVER_AUTHENTICATION

最新更新