我有一个在覆盖中导入的基础资源,它在覆盖中也会使其他资源来自相同的基础,但具有不同的后缀。在overlay中,需要对基础资源进行修补,而不会影响其他新创建的资源。但是,这三个参数都已更改。我如何才能只修改我想要修改的内容?
下面是一个这样的例子。基本资源是具有1个复制副本的部署。在覆盖图中,基础被添加为资源,但我尝试修补它并将副本设置为0。不幸的是,所有部署的所有副本都设置为0。
基座
EX_HOME=$(mktemp -d)
BASE=$EX_HOME/base
mkdir $BASE
cat <<EOF >$BASE/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: example
labels:
app: example
spec:
replicas: 1
selector:
matchLabels:
app: example
template:
metadata:
labels:
app: example
spec:
containers:
- name: example
image: alpine:latest
command: ["sh","-c", "sleep 1h"]
EOF
cat <<EOF>$BASE/kustomization.yaml
resources:
- deployment.yaml
EOF覆盖
OVERLAYS=$EX_HOME/overlays
mkdir -p $OVERLAYS/srv0
mkdir -p $OVERLAYS/srv1
cat <<EOF>$OVERLAYS/kustomization.yaml
resources:
- svr0
- svr1
- ../base
patches:
- patch: |-
- op: replace
path: /spec/replicas
value: 0
target:
kind: Deployment
group: apps
version: v1
name: example
EOF
cat <<EOF>$OVERLAYS/svr0/kustomization.yaml
resources:
- ../../base
nameSuffix: -svr0
EOF
cat <<EOF>$OVERLAYS/svr0/kustomize.yaml
resources:
- ../../base
nameSuffix: -svr1
EOF发布于 2021-02-25 15:41:55
下面的方法应该是可行的。我擅自重新组织了一些目录结构,以使其更清晰。因为您只更新副本计数,所以我也切换到replicas转换器而不是补丁:
base/kustomization.yaml
resources:
- deployment.yamloverlays/svr0/kustomization.yaml
resources:
- ../../base
nameSuffix: -svr0overlays/svr1/kustomization.yaml
resources:
- ../../base
nameSuffix: -svr1
`overlays/all/kustomization.yaml`:
```yaml资源:
../../base../svr0../svr1
副本:
名称: example-svr0
计数:0名称:示例-svr1
计数: 0
On a side note: There is two ways to go about it. Here I add the `replicas` transformer at the top. You could also add it once in `overlays/svr0/kustomization.yaml` and once in `verlays/svr1/kustomization.yaml` instead. If you do so the transformer will become:
```javascript
replicas:
- name: example
count: 0https://stackoverflow.com/questions/66271235
复制相似问题