小编jmk*_*ite的帖子

每个“for”资源都具有多个属性的 Terraform 输出对象?

我有 terraform,其中使用for. 通常,此资源的每个实例都有几个属性。目前我有这个资源组的一系列映射输出,但每个输出只包含一个键值对。我希望我的 terraform 输出包含地图或对象的列表或地图,其中包含按资源实例分组的所有属性。我如何在不使用的情况下做到这一点flattenzipmap等从我当前的输出构建它们?这个例子是,aws_route53_record但这是一个通用查询:

当前代码

output "r53record_zonal_fqdn" {
  value = {
    for entry in aws_route53_record.zonal :
    entry.name => entry.fqdn
  }
}
output "r53record_zonal_records" {
  value = {
    for entry in aws_route53_record.zonal :
    entry.name => entry.records
  }
}
output "r53record_zonal_zone_id" {
  value = {
    for entry in aws_route53_record.zonal :
    entry.name => entry.zone_id
  }
}
Run Code Online (Sandbox Code Playgroud)

如您所料,这将渲染三个地图,aws_route53_record.zonal.name以键为键,以其他属性为值。

我想要的是让这些输出按资源分组,每个值都有一个预定义的键,例如(伪代码):

output "r53record_zonal_zone_id" {
    value = {
        for entry in aws_route53_record.zonal : {
            instance[count.index] { …
Run Code Online (Sandbox Code Playgroud)

for-loop terraform terraform0.12+

2
推荐指数
1
解决办法
1785
查看次数

尝试使用 EFS 在 AWS EKS(仅限 Fargate)上运行 Prometheus 时出现权限错误

我有一个仅限 Fargate 的 EKS 集群。我真的不想自己管理实例。我想将 Prometheus 部署到它 - 这需要一个持久卷。截至两个月前,这应该可以使用 EFS(托管 NFS 共享)我觉得我快到了,但我无法弄清楚当前的问题是什么

我做了什么:

  • 设置 EKS fargate 集群和合适的 fargate 配置文件
  • 使用适当的安全组设置 EFS
  • 根据AWS 演练安装 CSI 驱动程序并验证 EFS

到目前为止一切都很好

我设置了持久卷声明(我知道必须静态完成):

kubectl apply -f pvc/
Run Code Online (Sandbox Code Playgroud)

在哪里

tree pvc/
pvc/
??? two_pvc.yml
??? ten_pvc.yml
Run Code Online (Sandbox Code Playgroud)

cat pvc/*

apiVersion: v1
kind: PersistentVolume
metadata:
  name: efs-pv-two
spec:
  capacity:
    storage: 2Gi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: efs-sc
  csi:
    driver: efs.csi.aws.com
    volumeHandle: fs-ec0e1234
apiVersion: v1
kind: PersistentVolume
metadata:
  name: efs-pv-ten
spec: …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services kubernetes prometheus amazon-efs amazon-eks

1
推荐指数
1
解决办法
1163
查看次数