修补kubernetes仪表板
我正在尝试使用patch命令修改kubernetes仪表板部署。我需要用一个命令将“---enable skip login”arg添加到containers部分。 诸如此类:修补kubernetes仪表板,kubernetes,Kubernetes,我正在尝试使用patch命令修改kubernetes仪表板部署。我需要用一个命令将“---enable skip login”arg添加到containers部分。 诸如此类: kubectl -n kube-system patch deployment kubernetes-dashboard --patch '{"spec":{"template":{"spec":{"containers":{"- args":{"- --enable-skip-login"}}}}}}' 但这不起作用
kubectl -n kube-system patch deployment kubernetes-dashboard --patch '{"spec":{"template":{"spec":{"containers":{"- args":{"- --enable-skip-login"}}}}}}'
但这不起作用,我需要正确的语法在部署yaml中添加此arg。
容器和arg
都是数组,因此在JSON中表示如下:
{
"spec": {
"template": {
"spec": {
"containers": [
{
"name", "yourcontainername",
"args": [
"--enable-skip-login"
]
}
]
}
}
}
}
因此,您可以尝试:
$ kubectl -n kube-system patch deployment kubernetes-dashboard --patch \
'{"spec":{"template":{"spec":{"containers":[{"name": "yourcontainername","args": ["--enable-skip-login"]}]}}}}'
请注意,您需要“name”
,因为它是一个合并键。更多信息
(答案已在第节中更正):
最后,通过使用patch向数组中添加新元素,我得到了想要的结果:
kubectl -n kube-system patch deploy kubernetes-dashboard --type='json' -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--enable-skip-login"}]'
如果没有arg,或者您像这样传输数组中的所有arg,则前面的答案将非常有用:
kubectl -n kube-system patch deployment kubernetes-dashboard --patch \
'{"spec":{"template":{"spec":{"containers":[{"name": "kubernetes-dashboard","args": ["--auto-generate-certificates", "--enable-skip-login"]}]}}}}'
kubectl -n kube-system patch deployment kubernetes-dashboard --patch \
'{"spec":{"template":{"spec":{"containers":[{"name": "kubernetes-dashboard","args": ["--auto-generate-certificates", "--enable-skip-login"]}]}}}}'