Укажите пространство имен при создании kubernetes PV / PV C с Terraform - PullRequest
1 голос
/ 17 января 2020

Я пытаюсь создать PV / PV C в кластере kubernetes GKE, используя Terraform

Однако в документации не упоминается как Можно ли указать namespace, в котором должны быть созданы эти ресурсы.

Я пытался добавить его как в spec, так и в metadata раздел, но я получаю сообщение об ошибке:

resource "kubernetes_persistent_volume" "jenkins-persistent-volume" {
  metadata {
    name = "${var.kubernetes_persistent_volume_metadata_name}"
    # tried placing it here -->> namespace = "${var.kubernetes_jenkins_namespace}"

  }
  spec {
    # tried placing it here -->> namespace = "${var.kubernetes_jenkins_namespace}"
    capacity = {
      storage = "${var.kubernetes_persistent_volume_spec_capacity_storage}"
    }
    storage_class_name = "standard"
    access_modes = ["ReadWriteMany"]
    persistent_volume_source {
      gce_persistent_disk {
        fs_type = "ext4"
        pd_name = "${google_compute_disk.jenkins-disk.name}"
      }
    }
  }
}

Ошибка: module.jenkins.kubernetes_persistent_volume.jenkins-persistent-volume: spe c .0: неверный или неизвестный ключ: пространство имен

Где находится такая конфигурация?

1 Ответ

2 голосов
/ 17 января 2020

Постоянные тома являются объектами глобального кластера и не живут в указанных c пространствах имен. («Это ресурс в кластере, точно так же, как узел является ресурсом кластера».) Соответственно, вы не можете нигде включать имя пространства имен в kubernetes_persistent_volume ресурсе.

Если вы работаете в облачная среда (и здесь ваш PV создает том хранилища Google) обычно создает только постоянную заявку на том и позволяет кластеру выделять базовый том для вас. PVCs имеют область имен, а Terraform kubernetes_persistent_volume_claim ресурс явно документы , которые можно включить namespace в блок metadata.

...