用于 aks 上的 azurefile 的 terraform kubernetes_storage_class

terraform kubernetes_storage_class for azurefile on aks

我正在将一些 kubernetes yaml 文件转换为 terraform。我几乎所有的东西都在工作,但我被我的 storageClass 困住了。我需要使用 azurefile,但我不知道如何设置挂载的文件权限。

据我所知,这是受支持的语法:

resource "kubernetes_storage_class" "azurefile" {
  metadata {
    name = "azurefile"
  }
  storage_provisioner = "kubernetes.io/azure-file"
  reclaim_policy = "Retain"
  parameters {
    skuName = "Standard_LRS"
  }
}

但是我不知道在哪里可以指定挂载选项。

这是我开始使用的 yaml:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: azurefile
provisioner: kubernetes.io/azure-file
mountOptions:
  - dir_mode=0777
  - file_mode=0777
  - uid=1000
  - gid=1000
parameters:
  skuName: Standard_LRS

是否有任何支持的方式来添加挂载选项?如果没有,我将无法使用 azure 文件。有没有人能够做到这一点,如果不能,您有解决方法吗?

我知道我可以使用 local_exec(我已经这样做了)但这正是我想要摆脱的。

是的,看看 this terraform 似乎还不支持 mountOptions。

只是为了更新线程,mount_options 现在可以在最新版本的 terraform 中使用(截至 2020 年 2 月)。 terraform_provider_kubernetes v1.11.0 及以上 mount_options 可用。

resource "kubernetes_storage_class" "azurefile" {
  metadata {
    name = "azurefile"
  }
  storage_provisioner = "kubernetes.io/azure-file"
  reclaim_policy = "Retain"
  parameters {
    skuName = "Standard_LRS"
  }
  mount_options = ["file_mode=0777", "dir_mode=0777", "uid=1000", "gid=1000"]
}