我要像下面这样运行kubernetes
部署:
apiVersion: v1
kind: Deployment
metadata:
name: my-deployment
namespace: my-namespace
spec:
replicas: 1
template:
spec:
containers:
- name: my-app
image: our-own-registry.com/somerepo/my-app:${IMAGE_TAG}
env:
- name: FOO
value: "BAR"
这将交付给开发人员,以便他们可以使用自己喜欢的图像标签按需执行部署。
传递标记变量的最佳方法/推荐模式是什么?
在命令行上执行导出以使其在运行kubectl
命令的shell上作为env var可用?
答案 0 :(得分:2)
不幸的是,通过本地kubernetes工具是不可能的。来自here:
kubectl将永远不支持变量替换。
但是,该问题案例也有一些不错的解决方法。最好的方法是通过Helm
charts using templates
答案 1 :(得分:0)
对于简单的用例,envsubst会很好:
IMAGE_TAG=1.2 envsubst < deployment.yaml | kubectl apply -f -`