gpt4 book ai didi

arrays - kustomize 修补特定容器而不是通过数组 (/containers/0)

转载 作者:行者123 更新时间:2023-12-02 11:41:59 26 4
gpt4 key购买 nike

我试图看看是否有一种方法可以将 kustomize patchTransformer 应用于 pod 中的特定容器,而不是使用其数组索引。例如,如果我在一个 pod 中有 3 个容器 (0, 1, 2) 并且我想修补容器“1”,我通常会做这样的事情:

patch: |-
- op: add
path: /spec/containers/1/command
value: ["sh", "-c", "tail -f /dev/null"]
这在很大程度上取决于保持静态的容器顺序。如果容器“1”因任何原因被移除,阵列会重新洗牌,容器“2”突然变成容器“1”,使我的补丁不再适用。
有没有办法按名称修补,或定位标签/注释,或其他一些机制?
path: /spec/containers/${NAME_OF_CONTAINER}/command
任何见解都非常感谢。

最佳答案

这更像是一个 Json6902补丁限制以及容器在 K8s pod 中定义为数组而不是哈希的事实,这样的事情可以工作:

path: /spec/containers/${NAME_OF_CONTAINER}/command
你可以试试 StrategicMergePatch .这基本上是什么 kubectl apply做。
cat <<EOF > deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
selector:
matchLabels:
run: my-app
replicas: 2
template:
metadata:
labels:
run: my-app
spec:
containers:
- name: my-container
image: myimage
ports:
- containerPort: 80
EOF
cat <<EOF > set_command.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-nginx
spec:
template:
spec:
containers:
- name: my-app
command: ["sh", "-c", "tail -f /dev/null"]
EOF
cat <<EOF >./kustomization.yaml
resources:
- deployment.yaml
patchesStrategicMerge:
- set_command.yaml
EOF
✌️

关于arrays - kustomize 修补特定容器而不是通过数组 (/containers/0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63927916/

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