gpt4 book ai didi

kubernetes - 使用环境变量在 knative service.yaml 文件中设置值

转载 作者:行者123 更新时间:2023-12-02 11:31:43 49 4
gpt4 key购买 nike

有没有办法使用环境变量在 Knative service.yaml 文件中设置某些键的值?


更多细节

我正在尝试使用 GitLab CI 将 Knative 服务部署到 Kubernetes 集群。我的 service.yaml 文件中的一些变量取决于 GitLab CI 管道的项目和环境。有没有一种方法可以将这些值无缝地插入到我的 service.yaml 文件中,而无需求助于 sed -i ... 之类的 hack?

例如,给定以下脚本,我想要 $(KUBE_NAMESPACE)$(CI_ENVIRONMENT_SLUG)$(CI_PROJECT_PATH_SLUG)由相应命名的环境变量替换的值。

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
name: design
namespace: "$(KUBE_NAMESPACE)"
spec:
template:
metadata:
name: design-v1
annotations:
app.gitlab.com/env: "$(CI_ENVIRONMENT_SLUG)"
app.gitlab.com/app: "$(CI_PROJECT_PATH_SLUG)"
spec:
containers:
- name: user-container
image: ...
timeoutSeconds: 600
containerConcurrency: 8

最佳答案

我不认为有一个很好的方法可以在现有的 yaml 中扩展环境变量,但如果你不想使用 sed,你可以使用 envsubst :

envsubst < original.yaml > modified.yaml

在使用 yaml 扩展其中包含的环境变量之前,您只需运行此命令即可。

另外我认为你需要你的变量使用花括号,而不是圆括号,像这样:${KUBE_NAMESPACE} .

编辑:您也可以像这样使用内联:kubectl apply -f <(envsubst < service.yaml)

关于kubernetes - 使用环境变量在 knative service.yaml 文件中设置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62722297/

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