由于 terraform 尚不支持 redis tls,因此计划调用 gcloud 命令通过 terraform 创建启用 tls 的 redis。我是 terraform 的新手,所以一直在网上寻找一些资源。但找不到太多。有人可以帮忙提供一份工作样本吗?任何 gcloud 命令调用都可以。
谢谢
答案 0 :(得分:0)
Terraform 基于底层 REST API 构建,不直接使用 Cloud 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