#terraform #google-kubernetes-engine #snapshot #policy
#terraform #google-kubernetes-engine #снимок #политика
Вопрос:
Я создал инфраструктуру веб-сервера с terraform (версия 0.12.21) в Gcloud для развертывания большого количества веб-сайтов.
Я создал постоянное утверждение объема для каждого развертывания (по 1 ГБ каждое):
Я использовал этот код для их создания:
resource "kubernetes_persistent_volume_claim" "wordpress_volumeclaim" {
for_each = var.wordpress_site
metadata {
name = "wordpress-volumeclaim-${terraform.workspace}-${each.value.name}"
namespace = "default"
}
spec {
access_modes = ["ReadWriteOnce"]
resources {
requests = {
storage = each.value.disk
resource_policies = google_compute_resource_policy.policy.name
}
}
}
}
resource "kubernetes_deployment" "wordpress" {
for_each = var.wordpress_site
metadata {
name = each.value.name
labels = { app = each.value.name }
}
spec {
replicas = 1
selector {
match_labels = { app = each.value.name }
}
template {
metadata {
labels = { app = each.value.name }
}
spec {
volume {
name = "wordpress-persistent-storage-${terraform.workspace}-${each.value.name}"
persistent_volume_claim {
claim_name = "wordpress-volumeclaim-${terraform.workspace}-${each.value.name}"
}
}
[...]
Но теперь мне нужно сделать резервную копию всех этих дисков, и моя лучшая идея — использовать функцию моментального снимка Gcloud, и она должна быть динамической, поскольку создание этих дисков является динамическим.
Прежде всего, я создал политику моментальных снимков:
resource "google_compute_resource_policy" "policy" {
name = "my-resource-policy"
region = "zone-region-here"
project = var.project
snapshot_schedule_policy {
schedule {
daily_schedule {
days_in_cycle = 1
start_time = "04:00"
}
}
retention_policy {
max_retention_days = 7
on_source_disk_delete = "KEEP_AUTO_SNAPSHOTS"
}
}
}
И теперь я хочу добавить ее к моему утверждению о постоянном объеме. Но я не знаю как, потому что эта строка вообще не работает:
resource_policies = google_compute_resource_policy.policy.name
Все мои попытки привели к ошибкам. Не могли бы вы мне здесь помочь?
Комментарии:
1. Политики ресурсов, похоже, напрямую не поддерживаются утверждением о объеме terraform или следующим уровнем kubernetes. Я предполагаю, что вам нужно будет получить базовые ресурсы gcloud (возможно, через метаданные имени?) и прикрепить политики непосредственно к ним.