crossregion:
us:
public:
us-geo: s3.us.cloud-object-storage.appdomain.cloud
Dallas: s3.dal.us.cloud-object-storage.appdomain.cloud
Washington: s3.wdc.us.cloud-object-storage.appdomain.cloud
San Jose: s3.sjc.us.cloud-object-storage.appdomain.cloud
private:
us-geo: s3.private.us.cloud-object-storage.appdomain.cloud
Dallas: s3.private.dal.us.cloud-object-storage.appdomain.cloud
Washington: s3.private.wdc.us.cloud-object-storage.appdomain.cloud
San Jose: s3.private.sjc.us.cloud-object-storage.appdomain.cloud
direct:
us-geo: s3.direct.us.cloud-object-storage.appdomain.cloud
Dallas: s3.direct.dal.us.cloud-object-storage.appdomain.cloud
Washington: s3.direct.wdc.us.cloud-object-storage.appdomain.cloud
San Jose: s3.direct.sjc.us.cloud-object-storage.appdomain.cloud
eu:
public:
eu-geo: s3.eu.cloud-object-storage.appdomain.cloud
Amsterdam: s3.ams.eu.cloud-object-storage.appdomain.cloud
Frankfurt: s3.fra.eu.cloud-object-storage.appdomain.cloud
Milan: s3.mil.eu.cloud-object-storage.appdomain.cloud
private:
eu-geo: s3.private.eu.cloud-object-storage.appdomain.cloud
Amsterdam: s3.private.ams.eu.cloud-object-storage.appdomain.cloud
Frankfurt: s3.private.fra.eu.cloud-object-storage.appdomain.cloud
Milan: s3.private.mil.eu.cloud-object-storage.appdomain.cloud
direct:
eu-geo: s3.direct.eu.cloud-object-storage.appdomain.cloud
Amsterdam: s3.direct.ams.eu.cloud-object-storage.appdomain.cloud
我需要获取的值实际上是crossregion.us.private.us-geo
对于上面的values.yaml文件,我根据一个条件分配EndPointType
,值将是private or direct
,在本例中,regionSubstr将是us
,因此附加-geo
以获得最终的字符串,如crossregion.us.private.us-geo
ibm.io/object-store-endpoint: "https://{{ index $secondaryValueFile.crossregion $regionSubstr.$EndPointType.$regionSubstr }}-geo"
尽管尝试了许多组合,上面的模板仍然不起作用。我到底哪里错了?
发布于 2021-04-27 10:16:30
你需要在这里嵌套模板表达式。特别是,您需要将index
调用作为字段参数传递给index
。
将其分解为更小的部分:
{{- $regionGeo := printf "%s-geo" $regionSubstr -}}
{{- $hostname := index $secondaryValueFile.crossregion $regionSubstr $EndpointType $regionGeo -}}
ibm.io/object-store-endpoint: "https://{{ $hostname }}"
-geo
后缀需要在模板表达式中的某个位置;我使用printf
将us-geo
赋给另一个临时变量来计算它,然后它就可以进入嵌套的index
表达式,在它上面有各种地图图层。
内联它也是有效的
https://{{ index $secondaryValueFile ... (printf "%s-geo" $regionSubstr) }}
尽管这可能不太可读性。
https://stackoverflow.com/questions/67270898
复制相似问题