tes*_*tbg 2 kubernetes kubectl kubernetes-deployment
kubectl当我使用命令应用部署文件时,我想将参数传递给 Kubernetes 部署。
示例:在我的部署 .yaml 中,我有如下参数,我想在运行时传递参数值kubectl apply - f <my-deployment>.yaml
因此,在下面的示例中,我想在运行上述 kubectl 命令时覆盖 args - userid 和 role。
spec:
containers:
- name: testimage
image: <my image name>:<tag>
args:
- --userid=testuser
- --role=manager
Run Code Online (Sandbox Code Playgroud)
简单的答案是。你不能那样做。
kubectl不是模板引擎。正如一些人提到的,您可以使用 Helm 或 Kustomize 等选项来解决此问题。我鼓励您研究 Helm3,因为它可以使用类似 的命令很好地解决您的问题helm upgrade --install ... --set userid=xxx --set role=yyy。
如果您只使用 kubectl,您可能想使用它从 stdin 获取 yaml 的能力,并首先通过任何类型的模板传递 yaml。IE。如下 :
...
args:
- --userid=$USER
- --role=$ROLE
...
Run Code Online (Sandbox Code Playgroud)
cat resource.yaml | USER=testuser ROLE=manager envsubst | kubectl apply -f -
Run Code Online (Sandbox Code Playgroud)
显然任何其他字符串替换方法都可以(sed、awk 等)
| 归档时间: |
|
| 查看次数: |
10282 次 |
| 最近记录: |