gpt4 book ai didi

Skaffold Kustomize 将外部环境变量传入 kustomization.yaml

转载 作者:行者123 更新时间:2023-12-04 17:30:12 25 4
gpt4 key购买 nike

有没有办法可以将外部环境变量从 Skaffold 传递给 kustomization.yaml .

假设我在下面有一个 kustomization 文件

  resources:
- ./deployment.yaml
- ./service.yaml

images:
- name: abc
newName: <external environment>
newTag: <external environment>

我有使用图像名称和标签导出的环境,并想传递到 kustomization.yaml执行时 skaffold deploydev
有没有办法做到这一点,或者是否有任何解决方案或解决方法可以将外部环境变量传递给 kustomization.yaml ?

我知道我实际上可以使用 kustomize edit set image但很难看,因为我需要设置旧的图像名称,我尽量避免。我想要一个更简单的解决方案。我找不到任何说 kustomize 的地方可以使用来自系统的环境变量,如 docker-compose使用 ${VAR}skaffold使用 {{.VAR}}尝试访问系统环境变量时

最佳答案

基本上,Kustomize 只能在其设计的地方解析/替换环境变量。它不是“系统范围”功能,据我所知,它仅适用于配置映射生成器。
说有解决办法
例如,如果您在/overlays/staging 文件夹中有 kustomization.yaml

  resources:
- ./deployment.yaml
- ./service.yaml

images:
- name: abc
newName: $IMAGE_NAME
newTag: $IMAGE_TAG
你可以,从 bash
export $IMAGE_NAME=my-app-image
export $IMAGE_TAG=latest
kubectl kustomize overlays/staging | envsubst | kubectl apply -f -
或等效的oneliner。
诀窍是使用 kubectl kustomize要生成完整的 kustomization(仍然包括未赋值的变量名称),它将在 stdout 上输出并在 envsubst 中通过管道将其输出这将取代以前的每一个 export输入文本中的 ed 变量,然后再次输出到 kubectl apply -f ,这一次将应用它与尾随 - (这将使它从标准输入读取 yaml)

关于Skaffold Kustomize 将外部环境变量传入 kustomization.yaml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60517464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com